summaryrefslogtreecommitdiff
path: root/archaeological_files_pdl/forms.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@proxience.com>2015-10-27 03:03:51 +0100
committerÉtienne Loks <etienne.loks@proxience.com>2015-10-27 03:03:51 +0100
commit2ad4d7f66ee7d4159733e809759bc828674027d1 (patch)
tree4d50ee8b814c84069bab176d043ddd4a888451bb /archaeological_files_pdl/forms.py
parentefa8eed7fa549aee3bd127fc605bb49e9fa509ec (diff)
downloadIshtar-2ad4d7f66ee7d4159733e809759bc828674027d1.tar.bz2
Ishtar-2ad4d7f66ee7d4159733e809759bc828674027d1.zip
Archaeological files forms: automatically manage instruction date
Diffstat (limited to 'archaeological_files_pdl/forms.py')
-rw-r--r--archaeological_files_pdl/forms.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/archaeological_files_pdl/forms.py b/archaeological_files_pdl/forms.py
index f71bf6a8a..fab2b982b 100644
--- a/archaeological_files_pdl/forms.py
+++ b/archaeological_files_pdl/forms.py
@@ -317,6 +317,12 @@ class FileFormInstruction(forms.Form):
c_year = datetime.date.today().year
if 'year' in kwargs:
c_year = kwargs.pop('year')
+ saisine_type = None
+ if 'saisine_type' in kwargs:
+ saisine_type = kwargs.pop('saisine_type')
+ reception_date = None
+ if 'reception_date' in kwargs:
+ reception_date = kwargs.pop('reception_date')
if 'data' in kwargs and kwargs['data']:
kwargs['data'][kwargs.get('prefix', '') + '-year'] = c_year
@@ -335,6 +341,17 @@ class FileFormInstruction(forms.Form):
self.fields['numeric_reference'].initial = c_num + 1
if self.numeric_reference_is_readonly:
self.fields['numeric_reference'].widget.attrs['readonly'] = True
+ if reception_date and saisine_type:
+ if type(reception_date) in (unicode, str):
+ try:
+ reception_date = datetime.datetime.strptime(
+ reception_date, '%d/%m/%Y')
+ self.fields['instruction_deadline'].initial = \
+ (reception_date + datetime.timedelta(
+ days=saisine_type.delay or 0)
+ ).strftime('%Y-%m-%d')
+ except ValueError:
+ pass
def clean_numeric_reference(self):
if self.numeric_reference_is_readonly: