summaryrefslogtreecommitdiff
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
commitefa8eed7fa549aee3bd127fc605bb49e9fa509ec (patch)
treee12798c71bfbc66f4aa6c9f1a306d17ac8e081d1
parentf98cebff19b6f15aae988380693617d8832a1d52 (diff)
downloadIshtar-efa8eed7fa549aee3bd127fc605bb49e9fa509ec.tar.bz2
Ishtar-efa8eed7fa549aee3bd127fc605bb49e9fa509ec.zip
Archaeological files: numerical index is readonly on creation then writable
-rw-r--r--archaeological_files_pdl/forms.py21
-rw-r--r--archaeological_files_pdl/views.py2
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={