diff options
Diffstat (limited to 'archaeological_operations/models.py')
-rw-r--r-- | archaeological_operations/models.py | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py index 8b083d4be..c6e55f03b 100644 --- a/archaeological_operations/models.py +++ b/archaeological_operations/models.py @@ -573,14 +573,7 @@ class AdministrativeAct(BaseHistorizedItem, OwnPerms, ValueGetter): template = q.all()[0] return template.publish(self) - def save(self, *args, **kwargs): - if not self.signature_date: - return super(AdministrativeAct, self).save(*args, **kwargs) - self.year = self.signature_date.year - - if not self.act_type.indexed: - return super(AdministrativeAct, self).save(*args, **kwargs) - + def _get_index(self): if not self.index: c_index = 1 q = AdministrativeAct.objects.filter(act_type__indexed=True, @@ -595,8 +588,21 @@ class AdministrativeAct(BaseHistorizedItem, OwnPerms, ValueGetter): if self.pk: conflict = conflict.exclude(pk=self.pk) if conflict.count(): - raise ValidationError(_(u"This index already exists for " - u"this year")) + if self.pk: + raise ValidationError(_(u"This index already exists for " + u"this year")) + else: + self._get_index() + + def save(self, *args, **kwargs): + if not self.signature_date: + return super(AdministrativeAct, self).save(*args, **kwargs) + self.year = self.signature_date.year + + if not self.act_type.indexed: + return super(AdministrativeAct, self).save(*args, **kwargs) + + self._get_index() super(AdministrativeAct, self).save(*args, **kwargs) class Parcel(LightHistorizedItem): |