diff options
author | Étienne Loks <etienne.loks@proxience.com> | 2015-10-27 02:06:47 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@proxience.com> | 2015-10-27 02:06:47 +0100 |
commit | efa8eed7fa549aee3bd127fc605bb49e9fa509ec (patch) | |
tree | e12798c71bfbc66f4aa6c9f1a306d17ac8e081d1 /archaeological_files_pdl | |
parent | f98cebff19b6f15aae988380693617d8832a1d52 (diff) | |
download | Ishtar-efa8eed7fa549aee3bd127fc605bb49e9fa509ec.tar.bz2 Ishtar-efa8eed7fa549aee3bd127fc605bb49e9fa509ec.zip |
Archaeological files: numerical index is readonly on creation then writable
Diffstat (limited to 'archaeological_files_pdl')
-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={ |