summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@proxience.com>2014-09-28 17:12:09 +0200
committerÉtienne Loks <etienne.loks@proxience.com>2014-09-28 17:12:09 +0200
commite0ebcc6921064645c45b44d378ee2a80fd9c44a1 (patch)
tree2f8879b1840b5d7db0bb713c22e5201b3c2e8b18
parenta21a86e28acd34206472c54bc1c1dd6a687e6c8f (diff)
downloadIshtar-e0ebcc6921064645c45b44d378ee2a80fd9c44a1.tar.bz2
Ishtar-e0ebcc6921064645c45b44d378ee2a80fd9c44a1.zip
Improve parcel sort and display (refs #1973)
-rw-r--r--archaeological_operations/models.py17
1 files changed, 13 insertions, 4 deletions
diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py
index 10008cdfd..0a83dbdfc 100644
--- a/archaeological_operations/models.py
+++ b/archaeological_operations/models.py
@@ -628,6 +628,12 @@ class AdministrativeAct(BaseHistorizedItem, OwnPerms, ValueGetter):
self.associated_file.update_has_admin_act()
self.associated_file.update_short_menu_class()
+def strip_zero(value):
+ for idx, nb in enumerate(value):
+ if nb != '0':
+ return value[idx:]
+ return value
+
class Parcel(LightHistorizedItem):
if FILES_AVAILABLE:
associated_file = models.ForeignKey('archaeological_files.File',
@@ -656,17 +662,20 @@ class Parcel(LightHistorizedItem):
@staticmethod
def grouped_parcels(parcels):
- sortkeyfn = lambda s:(getattr(s, 'year'), getattr(s, 'town'),
- getattr(s, 'section'))
- parcels.sort(key=sortkeyfn)
+ sortkeyfn = lambda s:(getattr(s, 'town_id'),
+ getattr(s, 'section'), getattr(s, 'year'))
+ parcels = sorted(parcels, key=sortkeyfn)
grouped = []
for keys, parcel_grp in groupby(parcels, key=sortkeyfn):
for idx, parcel in enumerate(parcel_grp):
if not idx:
grouped.append(parcel)
grouped[-1].parcel_numbers = []
- grouped[-1].parcel_numbers.append(parcel.parcel_number)
+ grouped[-1].parcel_numbers.append(
+ u"0"*(12-len(parcel.parcel_number)) + parcel.parcel_number)
grouped[-1].parcel_numbers.sort()
+ grouped[-1].parcel_numbers = [strip_zero(nb)
+ for nb in grouped[-1].parcel_numbers]
return grouped
def long_label(self):