summaryrefslogtreecommitdiff
path: root/chimere/forms.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2017-11-30 17:48:23 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2017-11-30 17:49:36 +0100
commitae157646c5be0112f0ab92eb623b3162a9ed08a9 (patch)
treebf22c40dac082d0f9c752fc0792efe731591f713 /chimere/forms.py
parenta4ed744071a475926e620b605d0c6cece19e7143 (diff)
downloadChimère-ae157646c5be0112f0ab92eb623b3162a9ed08a9.tar.bz2
Chimère-ae157646c5be0112f0ab92eb623b3162a9ed08a9.zip
Propose form: Filter keywords - FIx property field ordering
Diffstat (limited to 'chimere/forms.py')
-rw-r--r--chimere/forms.py11
1 files changed, 8 insertions, 3 deletions
diff --git a/chimere/forms.py b/chimere/forms.py
index 6881f42..375e13b 100644
--- a/chimere/forms.py
+++ b/chimere/forms.py
@@ -20,6 +20,7 @@
"""
Forms
"""
+import collections
from django import forms
from django.conf import settings
@@ -266,7 +267,7 @@ class CategoryAdminForm(forms.ModelForm):
def get_properties(queryset):
# As we have dynamic fields, it's cleaner to make the class dynamic too
- fields = {}
+ fields = collections.OrderedDict()
for prop in queryset:
key = "property_%d_%d" % (prop.order, prop.id)
if prop.type == 'C':
@@ -307,13 +308,15 @@ class MarkerAdminFormBase(forms.ModelForm):
@classmethod
def _set_cls_fields(cls):
fields = get_properties(
- PropertyModel.objects.filter(**cls._PROPERTY_FILTERS).all())
+ PropertyModel.objects.filter(
+ **cls._PROPERTY_FILTERS).order_by('order').all())
for key in fields:
setattr(cls, key, fields[key])
def _set_fields(self):
fields = get_properties(
- PropertyModel.objects.filter(**self._PROPERTY_FILTERS).all())
+ PropertyModel.objects.filter(
+ **self._PROPERTY_FILTERS).order_by('order').all())
for key in fields:
self.fields[key] = fields[key]
@@ -352,6 +355,8 @@ class MarkerAdminFormBase(forms.ModelForm):
self.fields['end_date'].widget = DatePickerWidget()
if self.is_admin:
return
+ if 'keywords' in self.fields:
+ self.fields.pop("keywords")
if subcategories:
self.fields['categories'].choices = subcategories
elif subcategories is None: