summaryrefslogtreecommitdiff
path: root/archaeological_operations/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'archaeological_operations/models.py')
-rw-r--r--archaeological_operations/models.py23
1 files changed, 14 insertions, 9 deletions
diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py
index 1f4108c28..44f7a529e 100644
--- a/archaeological_operations/models.py
+++ b/archaeological_operations/models.py
@@ -37,7 +37,7 @@ from ishtar_common.models import GeneralType, BaseHistorizedItem, \
SourceType, Person, Organization, Town, Dashboard, IshtarUser, ValueGetter,\
DocumentTemplate, ShortMenuItem, DashboardFormItem, GeneralRelationType,\
GeneralRecordRelations, post_delete_record_relation, OperationType, \
- get_external_id, ImageModel, post_save_cache
+ get_external_id, ImageModel, post_save_cache, ExternalIdManager
class RemainType(GeneralType):
@@ -815,6 +815,15 @@ def operation_post_save(sender, **kwargs):
# manage parcel association
for parcel in operation.parcels.all():
parcel.copy_to_file()
+
+ # external id update
+ for parcel in operation.parcels.all():
+ parcel.update_external_id()
+
+ for cr in operation.context_record.all():
+ cr.update_external_id()
+
+
post_save.connect(operation_post_save, sender=Operation)
@@ -839,6 +848,7 @@ class RecordRelations(GeneralRecordRelations, models.Model):
verbose_name_plural = _(u"Operation record relations")
ordering = ('left_record', 'relation_type')
+
post_delete.connect(post_delete_record_relation, sender=RecordRelations)
@@ -1245,7 +1255,9 @@ def strip_zero(value):
return value
-class Parcel(LightHistorizedItem):
+class Parcel(ExternalIdManager, LightHistorizedItem):
+ EXTERNAL_ID_KEY = 'parcel_external_id'
+
associated_file = models.ForeignKey(
'archaeological_files.File',
related_name='parcels', verbose_name=_(u"File"),
@@ -1426,13 +1438,6 @@ def parcel_post_save(sender, **kwargs):
parcel.delete()
return
- if not parcel.external_id or parcel.auto_external_id:
- external_id = get_external_id('parcel_external_id', parcel)
- if external_id != parcel.external_id:
- updated = True
- parcel._updated_id = True
- parcel.auto_external_id = True
- parcel.external_id = external_id
if updated:
parcel.save()
return