summaryrefslogtreecommitdiff
path: root/archaeological_files_pdl/forms.py
diff options
context:
space:
mode:
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
commitdd633b6452d4ffacb850de227d847188ab5877bb (patch)
treee12798c71bfbc66f4aa6c9f1a306d17ac8e081d1 /archaeological_files_pdl/forms.py
parentbab101689061541e1792d83cfa9b2f60744f0f2b (diff)
downloadIshtar-dd633b6452d4ffacb850de227d847188ab5877bb.tar.bz2
Ishtar-dd633b6452d4ffacb850de227d847188ab5877bb.zip
Archaeological files: numerical index is readonly on creation then writable
Diffstat (limited to 'archaeological_files_pdl/forms.py')
-rw-r--r--archaeological_files_pdl/forms.py21
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