summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--archaeological_operations/forms.py18
-rw-r--r--archaeological_operations/models.py2
2 files changed, 11 insertions, 9 deletions
diff --git a/archaeological_operations/forms.py b/archaeological_operations/forms.py
index 8c72222cd..a144d8bd5 100644
--- a/archaeological_operations/forms.py
+++ b/archaeological_operations/forms.py
@@ -694,10 +694,6 @@ class OperationFormGeneral(forms.Form):
initial=lambda: datetime.datetime.now().year,
validators=[validators.MinValueValidator(1900),
validators.MaxValueValidator(2100)])
- operation_code = forms.IntegerField(
- label=_(u"Operation code"),
- initial=models.Operation.get_available_operation_code,
- widget=OperationCodeInput(attrs={'readonly': 'readonly'}))
scientist = forms.IntegerField(
label=_("Head scientist"),
widget=widgets.JQueryAutoComplete(
@@ -779,10 +775,12 @@ class OperationFormGeneral(forms.Form):
models.ReportState.get_help()
self.fields['record_quality'].choices = \
[('', '--')] + list(models.QUALITY)
- # data POSTED
- if kwargs and kwargs['data'] \
- and 'readonly' in self.fields['operation_code'].widget.attrs:
- self.fields['operation_code'].widget.attrs.pop('readonly')
+ if 'operation_code' in self.fields:
+ self.fields.keyOrder = list(self.fields.keyOrder)
+ self.fields.keyOrder.pop(self.fields.keyOrder.index(
+ 'operation_code'))
+ self.fields.keyOrder.insert(self.fields.keyOrder.index('year'),
+ 'operation_code')
def clean(self):
cleaned_data = self.cleaned_data
@@ -798,7 +796,9 @@ class OperationFormGeneral(forms.Form):
_(u"The excavation end date cannot be before the start "
u"date."))
year = self.cleaned_data.get("year")
- operation_code = cleaned_data.get("operation_code")
+ operation_code = cleaned_data.get("operation_code", None)
+ if not operation_code:
+ return self.cleaned_data
ops = models.Operation.objects.filter(year=year,
operation_code=operation_code)
# manage unique operation ID
diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py
index 945af21a4..d0a010d6a 100644
--- a/archaeological_operations/models.py
+++ b/archaeological_operations/models.py
@@ -427,6 +427,8 @@ class Operation(BaseHistorizedItem, OwnPerms, ValueGetter, ShortMenuItem,
# put a default year if start_date is defined
if self.start_date and not self.year:
self.year = self.start_date.year
+ if self.operation_code is None:
+ self.operation_code = self.get_available_operation_code(self.year)
return super(Operation, self).save(*args, **kwargs)
m2m_changed.connect(cached_label_changed, sender=Operation.towns.through)