diff options
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 |
commit | ae157646c5be0112f0ab92eb623b3162a9ed08a9 (patch) | |
tree | bf22c40dac082d0f9c752fc0792efe731591f713 | |
parent | a4ed744071a475926e620b605d0c6cece19e7143 (diff) | |
download | Chimère-ae157646c5be0112f0ab92eb623b3162a9ed08a9.tar.bz2 Chimère-ae157646c5be0112f0ab92eb623b3162a9ed08a9.zip |
Propose form: Filter keywords - FIx property field ordering
-rw-r--r-- | chimere/forms.py | 11 | ||||
-rw-r--r-- | chimere/templatetags/startswith.py | 10 | ||||
-rw-r--r-- | chimere/widgets.py | 3 |
3 files changed, 19 insertions, 5 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: diff --git a/chimere/templatetags/startswith.py b/chimere/templatetags/startswith.py new file mode 100644 index 0000000..4baafe6 --- /dev/null +++ b/chimere/templatetags/startswith.py @@ -0,0 +1,10 @@ +from django import template + +register = template.Library() + + +@register.filter('startswith') +def startswith(text, starts): + if isinstance(text, str): + return text.startswith(starts) + return False diff --git a/chimere/widgets.py b/chimere/widgets.py index 4db4f35..0ace46f 100644 --- a/chimere/widgets.py +++ b/chimere/widgets.py @@ -813,8 +813,7 @@ class MultiSelectWidget(forms.SelectMultiple): $("#id_%(name)s").chosen({placeholder_text_multiple: "%(title)s"}); </script> <style> -.form-row, -.related-widget-wrapper { +.form-row, .related-widget-wrapper { overflow: visible; } </style> |