diff options
| 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 | 
| commit | f46de1b6d4cbf832ce6f22fe82a5377b5e0ed6a4 (patch) | |
| tree | fd072535b325d65f12e415e6582cf7a073775999 /archaeological_operations/models.py | |
| parent | 782b857248435767cc4868a472ce27211596614a (diff) | |
| download | Ishtar-f46de1b6d4cbf832ce6f22fe82a5377b5e0ed6a4.tar.bz2 Ishtar-f46de1b6d4cbf832ce6f22fe82a5377b5e0ed6a4.zip | |
Fix external id generation for finds
Diffstat (limited to 'archaeological_operations/models.py')
| -rw-r--r-- | archaeological_operations/models.py | 23 | 
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 | 
