diff options
| author | Étienne Loks <etienne.loks@peacefrogs.net> | 2012-08-20 20:11:10 +0200 | 
|---|---|---|
| committer | Étienne Loks <etienne.loks@peacefrogs.net> | 2012-08-20 20:11:10 +0200 | 
| commit | 9aeef754fcdb2231619b2ede08d7683863f24e80 (patch) | |
| tree | 29365e2485560f5f13aaa89eb180cdd2880cbcb2 /chimere/forms.py | |
| parent | c8fcf14626873ad4bbe91788aadb60cfa488beda (diff) | |
| download | Chimère-9aeef754fcdb2231619b2ede08d7683863f24e80.tar.bz2 Chimère-9aeef754fcdb2231619b2ede08d7683863f24e80.zip  | |
Model: Add mandatory field for model properties
Diffstat (limited to 'chimere/forms.py')
| -rw-r--r-- | chimere/forms.py | 18 | 
1 files changed, 17 insertions, 1 deletions
diff --git a/chimere/forms.py b/chimere/forms.py index e3486c0..d877a22 100644 --- a/chimere/forms.py +++ b/chimere/forms.py @@ -124,10 +124,11 @@ class MarkerAdminFormBase(forms.ModelForm):          """          Custom initialization method in order to manage properties          """ +        self.pms = [pm for pm in PropertyModel.objects.filter(available=True)]          if 'instance' in keys and keys['instance']:              instance = keys['instance']              property_dct = {} -            for pm in PropertyModel.objects.filter(available=True): +            for pm in self.pms:                  property  = instance.getProperty(pm)                  if property:                      property_dct[pm.getNamedId()] = property.value @@ -147,6 +148,8 @@ class MarkerAdminFormBase(forms.ModelForm):      def clean(self):          '''          Verify that a start date is provided when an end date is set +        Verify the mandatory properties (to be check manualy because it depends +        on the checked categories)          '''          if not settings.CHIMERE_DAYS_BEFORE_EVENT:              return self.cleaned_data @@ -155,6 +158,19 @@ class MarkerAdminFormBase(forms.ModelForm):              msg = _(u"End date has been set with no start date")              self._errors["end_date"] = self.error_class([msg])              del self.cleaned_data['end_date'] + +        for pm in self.pms: +            if not pm.mandatory or self.cleaned_data[pm.getNamedId()]: +                continue +            pm_cats = pm.subcategories.all() +            print self.cleaned_data['categories'] +            print pm_cats +            if not pm_cats or \ +               [submited_cat for submited_cat in self.cleaned_data['categories'] +                             if submited_cat in pm_cats]: +                msg = _(u"This field is mandatory for the selected categories") +                self._errors[pm.getNamedId()] = self.error_class([msg]) +                #raise forms.ValidationError()          return self.cleaned_data      def save(self, *args, **keys):  | 
