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