diff options
| author | Étienne Loks <etienne.loks@iggdrasil.net> | 2020-12-02 13:05:11 +0100 | 
|---|---|---|
| committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2021-02-28 12:15:20 +0100 | 
| commit | 17f003cc39904a424b53c98c05a566bec8e73b44 (patch) | |
| tree | 2adfc46153e4ab380544172df3f9ac1fe8f296e0 | |
| parent | 6e618dd23cde06ad0de944347beb037a8e36fbaa (diff) | |
| download | Ishtar-17f003cc39904a424b53c98c05a566bec8e73b44.tar.bz2 Ishtar-17f003cc39904a424b53c98c05a566bec8e73b44.zip  | |
Archaeological files: fix parcel clean on save
| -rw-r--r-- | archaeological_files/models.py | 4 | ||||
| -rw-r--r-- | archaeological_operations/models.py | 28 | 
2 files changed, 17 insertions, 15 deletions
diff --git a/archaeological_files/models.py b/archaeological_files/models.py index 328e2c658..fbea67c81 100644 --- a/archaeological_files/models.py +++ b/archaeological_files/models.py @@ -38,7 +38,7 @@ from ishtar_common.models import GeneralType, BaseHistorizedItem, \      SearchAltName, SearchVectorConfig, DocumentItem  from archaeological_operations.models import get_values_town_related, \ -    ClosedItem +    ClosedItem, ParcelItem  class FileType(GeneralType): @@ -85,7 +85,7 @@ if settings.COUNTRY == 'fr':  class File(ClosedItem, DocumentItem, BaseHistorizedItem, OwnPerms, ValueGetter, -           ShortMenuItem, DashboardFormItem): +           ShortMenuItem, DashboardFormItem, ParcelItem):      SLUG = 'file'      SHOW_URL = 'show-file'      DELETE_URL = 'delete-file' diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py index 368b2e33c..d0de32be2 100644 --- a/archaeological_operations/models.py +++ b/archaeological_operations/models.py @@ -682,9 +682,23 @@ class ClosedItem(object):          return {'date': date, 'user': user} +class ParcelItem: +    def clean_parcel_duplicates(self): +        parcels = [] +        for p in self.parcels.order_by('pk').all(): +            if p.associated_file: +                continue +            key = (p.section, p.parcel_number, p.year, p.town.pk, +                   p.public_domain) +            if key in parcels: +                p.delete() +            else: +                parcels.append(key) + +  class Operation(ClosedItem, DocumentItem, BaseHistorizedItem, QRCodeItem,                  GeoItem, OwnPerms, ValueGetter, MainItem, -                DashboardFormItem, RelationItem): +                DashboardFormItem, RelationItem, ParcelItem):      SLUG = 'operation'      APP = "archaeological-operations"      MODEL = "operation" @@ -1739,18 +1753,6 @@ class Operation(ClosedItem, DocumentItem, BaseHistorizedItem, QRCodeItem,          res['mode'] = " ; ".join([str(m) for m in mode(finds)])          return res -    def clean_parcel_duplicates(self): -        parcels = [] -        for p in self.parcels.order_by('pk').all(): -            if p.associated_file: -                continue -            key = (p.section, p.parcel_number, p.year, p.town.pk, -                   p.public_domain) -            if key in parcels: -                p.delete() -            else: -                parcels.append(key) -      def save(self, *args, **kwargs):          # put a default year if start_date is defined          if self.start_date and not self.year:  | 
