diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2021-01-27 13:24:25 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2021-02-28 12:15:24 +0100 |
commit | f53b0fec14bc4a5aef2527bc70597fa112fdda43 (patch) | |
tree | eb0e09d72e58d4cd71e363ad22a6c2a7c7fe1abc /archaeological_operations/models.py | |
parent | 53036766f9968fa9be995efe53ad3e3f802ec38f (diff) | |
download | Ishtar-f53b0fec14bc4a5aef2527bc70597fa112fdda43.tar.bz2 Ishtar-f53b0fec14bc4a5aef2527bc70597fa112fdda43.zip |
Operation parcel: fix add/modification
Diffstat (limited to 'archaeological_operations/models.py')
-rw-r--r-- | archaeological_operations/models.py | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py index 246934d91..0c4f6330b 100644 --- a/archaeological_operations/models.py +++ b/archaeological_operations/models.py @@ -685,16 +685,16 @@ class ClosedItem(object): class ParcelItem: def clean_parcel_duplicates(self): - parcels = [] + 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() + parcels[key].merge(p) else: - parcels.append(key) + parcels[key] = p class Operation(ClosedItem, DocumentItem, BaseHistorizedItem, @@ -1399,10 +1399,10 @@ class Operation(ClosedItem, DocumentItem, BaseHistorizedItem, return self.towns.values('numero_insee').all()[0]['numero_insee'][:2] def grouped_parcels(self): - return Parcel.grouped_parcels(list(self.parcels.all())) + return Parcel.grouped_parcels(list(self.parcels.distinct().all())) def render_parcels(self): - return Parcel.render_parcels(list(self.parcels.all())) + return Parcel.render_parcels(list(self.parcels.distinct().all())) def get_town_centroid(self): q = self.towns.filter(center__isnull=False).annotate( @@ -2511,8 +2511,11 @@ class Parcel(LightHistorizedItem): grouped[-1].parcel_numbers = [] nb = "" if parcel.parcel_number: - nb = "0" * (12 - len(parcel.parcel_number)) + \ - parcel.parcel_number + if parcel.parcel_number == "0": + nb = "0" + else: + nb = "0" * (12 - len(parcel.parcel_number)) + \ + parcel.parcel_number if parcel.public_domain: if nb: nb += " " @@ -2542,7 +2545,7 @@ class Parcel(LightHistorizedItem): res += parcels.section + ' ' res += ", ".join(parcels.parcel_numbers) if parcels.year: - res += " (%s)" % str(parcels.year) + res += " ({})".format(parcels.year) return res def long_label(self): |