From 0f62b35fc726e773f24068789eeede745f8cca75 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Sun, 28 Sep 2014 17:12:09 +0200 Subject: Improve parcel sort and display (refs #1973) --- archaeological_operations/models.py | 17 +++++++++++++---- 1 file 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): -- cgit v1.2.3