From efa8eed7fa549aee3bd127fc605bb49e9fa509ec Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Tue, 27 Oct 2015 02:06:47 +0100 Subject: Archaeological files: numerical index is readonly on creation then writable --- archaeological_files_pdl/forms.py | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) (limited to 'archaeological_files_pdl/forms.py') 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"
(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 -- cgit v1.2.3