diff options
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 |
commit | 0f62b35fc726e773f24068789eeede745f8cca75 (patch) | |
tree | 2f8879b1840b5d7db0bb713c22e5201b3c2e8b18 /archaeological_operations/models.py | |
parent | 29a1728059c9c31500510a6a5c2161f930a40390 (diff) | |
download | Ishtar-0f62b35fc726e773f24068789eeede745f8cca75.tar.bz2 Ishtar-0f62b35fc726e773f24068789eeede745f8cca75.zip |
Improve parcel sort and display (refs #1973)
Diffstat (limited to 'archaeological_operations/models.py')
-rw-r--r-- | archaeological_operations/models.py | 17 |
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): |