From 0c205b2a43bc5cc2cfdaea1596982c44467a6e2f Mon Sep 17 00:00:00 2001 From: Felix Stupp Date: Sun, 7 Nov 2021 01:50:10 +0100 Subject: [PATCH] MediaCollectionLink: Extract sort_key as replacement for natural_sort --- server/entertainment_decider/models.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/server/entertainment_decider/models.py b/server/entertainment_decider/models.py index b972aab..0559b6f 100644 --- a/server/entertainment_decider/models.py +++ b/server/entertainment_decider/models.py @@ -305,10 +305,18 @@ class MediaCollectionLink(db.Entity): def element_release_date(self): return self.element.release_date + @staticmethod + def sort_key(link: MediaCollectionLink) -> Tuple: + return ( + link.season, + link.episode, + link.element.release_date, + link.element.id, + ) + @staticmethod def sorted(iterable: Iterable[MediaCollectionLink]) -> List[MediaCollectionLink]: - return sorted(iterable, key=lambda m: (m.season, m.episode, m.element_release_date, m.element_id)) - natural_order = (season, episode, element_release_date, element_id) # unusuable due to ponyorm, see https://github.com/ponyorm/pony/issues/612 + return sorted(iterable, key=MediaCollectionLink.sort_key) ## Media Elements