diff options
-rw-r--r-- | archaeological_operations/forms.py | 18 | ||||
-rw-r--r-- | archaeological_operations/models.py | 2 |
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) |