Skip to content
Snippets Groups Projects
Verified Commit 4270bf98 authored by Jake's avatar Jake :speech_balloon:
Browse files

added prio to pages for sorting tags

parent 3e78fded
No related branches found
No related tags found
No related merge requests found
Pipeline #318864 passed
...@@ -218,7 +218,14 @@ class Page: ...@@ -218,7 +218,14 @@ class Page:
return res return res
def __lt__(self, other): def get_prio(self):
if 'prio' in self.metadata:
return self.metadata['prio']
else:
return 0
prio = property(get_prio, None, None)
def __lt__(self, other): # for sorting by date modified (default)
if not self.initialized: if not self.initialized:
raise Exception("Page not initialized.") raise Exception("Page not initialized.")
return self.date_modified < other.date_modified return self.date_modified < other.date_modified
...@@ -245,10 +252,11 @@ class Tag: ...@@ -245,10 +252,11 @@ class Tag:
self.name = name self.name = name
self.lang = lang self.lang = lang
self._config = None self._config = None
self.pages = set() self.pages_tuple = []
self.is_category = False self.is_category = False
self._link = None self._link = None
self._factories = factories self._factories = factories
self._pages_cache = []
def get_config(self): def get_config(self):
...@@ -291,11 +299,23 @@ class Tag: ...@@ -291,11 +299,23 @@ class Tag:
return return
if page.lang != self.lang: if page.lang != self.lang:
raise Exception("Page has different lang than Tag.", page.lang, tag.lang) raise Exception("Page has different lang than Tag.", page.lang, tag.lang)
self.pages.add(page) if page not in self.pages:
self.pages_tuple.append((page.prio, page))
self.pages_tuple.sort(key=lambda x: x[0])
self.pages_tuple.reverse()
if is_category: if is_category:
self.is_category = is_category self.is_category = is_category
def get_pages(self):
if len(self._pages_cache) != len(self.pages_tuple):
res = []
for prio, page in self.pages_tuple:
res.append(page)
self._pages_cache = res
return self._pages_cache
pages = property(get_pages, None, None)
class Date: class Date:
def __init__(self, dt, config): def __init__(self, dt, config):
if isinstance(dt, str): if isinstance(dt, str):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment