diff options
| -rw-r--r-- | archaeological_files_pdl/forms.py | 21 | ||||
| -rw-r--r-- | archaeological_files_pdl/views.py | 2 | 
2 files changed, 15 insertions, 8 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 diff --git a/archaeological_files_pdl/views.py b/archaeological_files_pdl/views.py index b3acc12b1..d03fd958d 100644 --- a/archaeological_files_pdl/views.py +++ b/archaeological_files_pdl/views.py @@ -72,7 +72,7 @@ file_modification_wizard = FileModificationWizard.as_view([      ('generalcontractor-file_modification', forms.FileFormGeneralContractor),      ('planningservice-file_modification', forms.FileFormPlanningService),      ('research-file_modification', ref_forms.FileFormResearch), -    ('instruction-file_modification', forms.FileFormInstruction), +    ('instruction-file_modification', forms.FileFormInstructionEdit),      ('final-file_modification', ref_forms.FinalForm)],      label=_(u"File modification"),      condition_dict={  | 
