Skip to content
Snippets Groups Projects
Verified Commit 4270bf98 authored by Jake's avatar Jake
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.
Finish editing this message first!
Please register or to comment