diff options
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): |