|
|
@@ -1,16 +1,10 @@
|
|
|
from django import forms
|
|
|
from django.contrib import admin
|
|
|
+from django.contrib.contenttypes.models import ContentType
|
|
|
|
|
|
-from utilities.forms import LaxURLField
|
|
|
+from utilities.forms import ContentTypeChoiceField, ContentTypeMultipleChoiceField, LaxURLField
|
|
|
from .models import CustomField, CustomLink, ExportTemplate, JobResult, Webhook
|
|
|
-
|
|
|
-
|
|
|
-def order_content_types(field):
|
|
|
- """
|
|
|
- Order the list of available ContentTypes by application
|
|
|
- """
|
|
|
- queryset = field.queryset.order_by('app_label', 'model')
|
|
|
- field.choices = [(ct.pk, '{} > {}'.format(ct.app_label, ct.name)) for ct in queryset]
|
|
|
+from .utils import FeatureQuery
|
|
|
|
|
|
|
|
|
#
|
|
|
@@ -18,6 +12,10 @@ def order_content_types(field):
|
|
|
#
|
|
|
|
|
|
class WebhookForm(forms.ModelForm):
|
|
|
+ content_types = ContentTypeMultipleChoiceField(
|
|
|
+ queryset=ContentType.objects.all(),
|
|
|
+ limit_choices_to=FeatureQuery('webhooks')
|
|
|
+ )
|
|
|
payload_url = LaxURLField(
|
|
|
label='URL'
|
|
|
)
|
|
|
@@ -26,12 +24,6 @@ class WebhookForm(forms.ModelForm):
|
|
|
model = Webhook
|
|
|
exclude = ()
|
|
|
|
|
|
- def __init__(self, *args, **kwargs):
|
|
|
- super().__init__(*args, **kwargs)
|
|
|
-
|
|
|
- if 'content_types' in self.fields:
|
|
|
- order_content_types(self.fields['content_types'])
|
|
|
-
|
|
|
|
|
|
@admin.register(Webhook)
|
|
|
class WebhookAdmin(admin.ModelAdmin):
|
|
|
@@ -70,6 +62,10 @@ class WebhookAdmin(admin.ModelAdmin):
|
|
|
#
|
|
|
|
|
|
class CustomFieldForm(forms.ModelForm):
|
|
|
+ content_types = ContentTypeMultipleChoiceField(
|
|
|
+ queryset=ContentType.objects.all(),
|
|
|
+ limit_choices_to=FeatureQuery('custom_fields')
|
|
|
+ )
|
|
|
|
|
|
class Meta:
|
|
|
model = CustomField
|
|
|
@@ -84,11 +80,6 @@ class CustomFieldForm(forms.ModelForm):
|
|
|
)
|
|
|
}
|
|
|
|
|
|
- def __init__(self, *args, **kwargs):
|
|
|
- super().__init__(*args, **kwargs)
|
|
|
-
|
|
|
- order_content_types(self.fields['content_types'])
|
|
|
-
|
|
|
|
|
|
@admin.register(CustomField)
|
|
|
class CustomFieldAdmin(admin.ModelAdmin):
|
|
|
@@ -127,6 +118,10 @@ class CustomFieldAdmin(admin.ModelAdmin):
|
|
|
#
|
|
|
|
|
|
class CustomLinkForm(forms.ModelForm):
|
|
|
+ content_type = ContentTypeChoiceField(
|
|
|
+ queryset=ContentType.objects.all(),
|
|
|
+ limit_choices_to=FeatureQuery('custom_links')
|
|
|
+ )
|
|
|
|
|
|
class Meta:
|
|
|
model = CustomLink
|
|
|
@@ -143,13 +138,6 @@ class CustomLinkForm(forms.ModelForm):
|
|
|
'link_url': 'Jinja2 template code for the link URL. Reference the object as <code>{{ obj }}</code>.',
|
|
|
}
|
|
|
|
|
|
- def __init__(self, *args, **kwargs):
|
|
|
- super().__init__(*args, **kwargs)
|
|
|
-
|
|
|
- # Format ContentType choices
|
|
|
- order_content_types(self.fields['content_type'])
|
|
|
- self.fields['content_type'].choices.insert(0, ('', '---------'))
|
|
|
-
|
|
|
|
|
|
@admin.register(CustomLink)
|
|
|
class CustomLinkAdmin(admin.ModelAdmin):
|
|
|
@@ -176,18 +164,15 @@ class CustomLinkAdmin(admin.ModelAdmin):
|
|
|
#
|
|
|
|
|
|
class ExportTemplateForm(forms.ModelForm):
|
|
|
+ content_type = ContentTypeChoiceField(
|
|
|
+ queryset=ContentType.objects.all(),
|
|
|
+ limit_choices_to=FeatureQuery('custom_links')
|
|
|
+ )
|
|
|
|
|
|
class Meta:
|
|
|
model = ExportTemplate
|
|
|
exclude = []
|
|
|
|
|
|
- def __init__(self, *args, **kwargs):
|
|
|
- super().__init__(*args, **kwargs)
|
|
|
-
|
|
|
- # Format ContentType choices
|
|
|
- order_content_types(self.fields['content_type'])
|
|
|
- self.fields['content_type'].choices.insert(0, ('', '---------'))
|
|
|
-
|
|
|
|
|
|
@admin.register(ExportTemplate)
|
|
|
class ExportTemplateAdmin(admin.ModelAdmin):
|