diff options
Diffstat (limited to 'chimere/forms.py')
-rw-r--r-- | chimere/forms.py | 24 |
1 files changed, 9 insertions, 15 deletions
diff --git a/chimere/forms.py b/chimere/forms.py index 301677b..54dfd43 100644 --- a/chimere/forms.py +++ b/chimere/forms.py @@ -272,25 +272,27 @@ def get_properties(queryset): fields = collections.OrderedDict() for prop in queryset: key = "property_%d_%d" % (prop.order, prop.id) - required = prop.mandatory + label = prop.name + if prop.mandatory: + label += " *" if prop.type == 'C': choices = PropertyModelChoice.objects.filter(propertymodel=prop, available=True ).order_by('value') fields[key] = forms.ChoiceField( - label=prop.name, choices=[('', '--')] + + label=label, choices=[('', '--')] + [(choice.pk, str(choice)) for choice in choices], - required=required) + required=False) elif prop.type == 'A': widget = PropertyModel.TYPE_WIDGET[prop.type] widget = widget(slug=prop.slug) - fields[key] = forms.CharField(label=prop.name, widget=widget, - required=required) + fields[key] = forms.CharField(label=label, widget=widget, + required=False) else: widget = PropertyModel.TYPE_WIDGET[prop.type] fields[key] = forms.CharField( - label=prop.name, widget=widget, - required=required) + label=label, widget=widget, + required=False) return fields @@ -308,14 +310,6 @@ class MarkerAdminFormBase(forms.ModelForm): model = Marker exclude = [] - @classmethod - def _set_cls_fields(cls): - fields = get_properties( - 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( |