From 82b3a96a833618133e6a441d0527d0a605a5b104 Mon Sep 17 00:00:00 2001 From: Chris Hill-Scott Date: Tue, 1 Feb 2022 11:34:39 +0000 Subject: [PATCH] Use SortByName mixin where possible Implementing `__lt__` makes objects sortable. Rather than reimplementing `__lt__` each time we want to make an object sortable by name, we can inherit from the extant `SortByNameMixin`. --- app/broadcast_areas/models.py | 8 ++------ app/models/organisation.py | 3 --- 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/app/broadcast_areas/models.py b/app/broadcast_areas/models.py index d9286988a..48f30d8f7 100644 --- a/app/broadcast_areas/models.py +++ b/app/broadcast_areas/models.py @@ -8,21 +8,17 @@ from rtreelib import Rect from werkzeug.utils import cached_property from app.formatters import square_metres_to_square_miles +from app.models import SortByNameMixin from .populations import CITY_OF_LONDON from .repo import BroadcastAreasRepository, rtree_index -class SortableMixin: +class SortableMixin(SortByNameMixin): def __repr__(self): return f'{self.__class__.__name__}(<{self.id}>)' - def __lt__(self, other): - # Implementing __lt__ means any classes inheriting from this - # method are sortable - return self.name < other.name - def __eq__(self, other): return self.id == other.id diff --git a/app/models/organisation.py b/app/models/organisation.py index cb9aa53ac..79e185d41 100644 --- a/app/models/organisation.py +++ b/app/models/organisation.py @@ -64,9 +64,6 @@ class Organisation(JSONModel, SortByNameMixin): return cls({}) return cls(organisations_client.get_organisation(org_id)) - def __lt__(self, other): - return self.name.lower() < other.name.lower() - @classmethod def from_domain(cls, domain): return cls(organisations_client.get_organisation_by_domain(domain))