diff options
Diffstat (limited to 'archaeological_files_pdl/forms.py')
| -rw-r--r-- | archaeological_files_pdl/forms.py | 21 | 
1 files changed, 14 insertions, 7 deletions
| diff --git a/archaeological_files_pdl/forms.py b/archaeological_files_pdl/forms.py index e511f091e..f71bf6a8a 100644 --- a/archaeological_files_pdl/forms.py +++ b/archaeological_files_pdl/forms.py @@ -310,30 +310,37 @@ class FileFormInstruction(forms.Form):                                            validators.MaxValueValidator(2100)])      numeric_reference = forms.IntegerField(label=_("Numeric reference"),                                             required=False) +    numeric_reference_is_readonly = True      end_date = forms.DateField(widget=widgets.JQueryDate, required=False)      def __init__(self, *args, **kwargs):          c_year = datetime.date.today().year          if 'year' in kwargs:              c_year = kwargs.pop('year') -        if 'data' in kwargs: -            if not kwargs['data']: -                kwargs['data'] = {} +        if 'data' in kwargs and kwargs['data']:              kwargs['data'][kwargs.get('prefix', '') + '-year'] = c_year          super(FileFormInstruction, self).__init__(*args, **kwargs)          self.fields['year'].initial = c_year          self.fields['year'].widget.attrs.update({'readonly': 'readonly'}) -        c_num, lasts = 0, "" +        c_num = 0          q = models.File.objects.filter(numeric_reference__isnull=False,                                         year=c_year                                         ).order_by('-numeric_reference')          if q.count():              c_num = q.all()[0].numeric_reference -            lasts = u"SRA %s-%d" % (unicode(c_year), c_num)          lbl = self.fields['numeric_reference'].label -        if lasts: -            lbl += u"<br/>(dernière entrée : %s)" % lasts          self.fields['numeric_reference'].label = mark_safe(lbl)          self.fields['numeric_reference'].initial = c_num + 1 +        if self.numeric_reference_is_readonly: +            self.fields['numeric_reference'].widget.attrs['readonly'] = True + +        def clean_numeric_reference(self): +            if self.numeric_reference_is_readonly: +                return self.fields['numeric_reference'].initial +            return self.cleaned_data['numeric_reference'] + + +class FileFormInstructionEdit(FileFormInstruction): +    numeric_reference_is_readonly = False | 
