summaryrefslogtreecommitdiff
path: root/archaeological_context_records
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2017-09-20 13:45:27 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2017-09-20 13:45:27 +0200
commitf46de1b6d4cbf832ce6f22fe82a5377b5e0ed6a4 (patch)
treefd072535b325d65f12e415e6582cf7a073775999 /archaeological_context_records
parent782b857248435767cc4868a472ce27211596614a (diff)
downloadIshtar-f46de1b6d4cbf832ce6f22fe82a5377b5e0ed6a4.tar.bz2
Ishtar-f46de1b6d4cbf832ce6f22fe82a5377b5e0ed6a4.zip
Fix external id generation for finds
Diffstat (limited to 'archaeological_context_records')
-rw-r--r--archaeological_context_records/models.py22
-rw-r--r--archaeological_context_records/tests.py1
2 files changed, 5 insertions, 18 deletions
diff --git a/archaeological_context_records/models.py b/archaeological_context_records/models.py
index 70858ea31..8dd082e7b 100644
--- a/archaeological_context_records/models.py
+++ b/archaeological_context_records/models.py
@@ -33,7 +33,7 @@ from ishtar_common.utils import cached_label_changed
from ishtar_common.models import GeneralType, BaseHistorizedItem, \
HistoricalRecords, OwnPerms, ShortMenuItem, Source, GeneralRelationType,\
GeneralRecordRelations, post_delete_record_relation, get_external_id, \
- ImageModel, post_save_cache, ValueGetter, BulkUpdatedItem
+ ImageModel, post_save_cache, ValueGetter, BulkUpdatedItem, ExternalIdManager
from archaeological_operations.models import Operation, Period, Parcel
@@ -189,10 +189,12 @@ class CRBulkView(object):
"""
-class ContextRecord(BulkUpdatedItem, BaseHistorizedItem, ImageModel, OwnPerms,
- ValueGetter, ShortMenuItem):
+class ContextRecord(ExternalIdManager, BulkUpdatedItem, BaseHistorizedItem,
+ ImageModel, OwnPerms, ValueGetter, ShortMenuItem):
SHOW_URL = 'show-contextrecord'
SLUG = 'contextrecord'
+ EXTERNAL_ID_KEY = 'context_record_external_id'
+ EXTERNAL_ID_DEPENDENCIES = ['base_finds']
TABLE_COLS = ['label', 'operation__common_name', 'parcel__town__name',
'parcel__label', 'unit']
if settings.COUNTRY == 'fr':
@@ -518,20 +520,6 @@ class ContextRecord(BulkUpdatedItem, BaseHistorizedItem, ImageModel, OwnPerms,
from archaeological_finds.models import FindSource
return FindSource.objects.filter(find__base_finds__context_record=self)
- def save(self, *args, **kwargs):
- returned = super(ContextRecord, self).save(*args, **kwargs)
- updated = False
- if not self.external_id or self.auto_external_id:
- external_id = get_external_id('context_record_external_id', self)
- if external_id != self.external_id:
- updated = True
- self.auto_external_id = True
- self.external_id = external_id
- if updated:
- self._cached_label_checked = False
- self.save()
- return returned
-
def fix(self):
"""
Fix redundant m2m dating association (usually after imports)
diff --git a/archaeological_context_records/tests.py b/archaeological_context_records/tests.py
index e29c37511..89b15fbbf 100644
--- a/archaeological_context_records/tests.py
+++ b/archaeological_context_records/tests.py
@@ -382,7 +382,6 @@ class ContextRecordTest(ContextRecordInit, TestCase):
self.assertEqual(obj.datings.count(), 2)
-
class ContextRecordSearchTest(ContextRecordInit, TestCase):
fixtures = CONTEXT_RECORD_TOWNS_FIXTURES