summaryrefslogtreecommitdiff
path: root/archaeological_operations/models.py
diff options
context:
space:
mode:
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
commit25879f5ea9fbcbc0100625a82f0c9d19ff679455 (patch)
treeeb0e09d72e58d4cd71e363ad22a6c2a7c7fe1abc /archaeological_operations/models.py
parent9782817d3b77a8dd1485909923723e0b90c1282f (diff)
downloadIshtar-25879f5ea9fbcbc0100625a82f0c9d19ff679455.tar.bz2
Ishtar-25879f5ea9fbcbc0100625a82f0c9d19ff679455.zip
Operation parcel: fix add/modification
Diffstat (limited to 'archaeological_operations/models.py')
-rw-r--r--archaeological_operations/models.py19
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):