0.5.9 documentation prev and next article navigation

This commit is contained in:
SDE
2024-07-12 21:23:42 +03:00
parent c9d591fa40
commit 9d20b1c8fe
3 changed files with 63 additions and 3 deletions

View File

@@ -43,6 +43,63 @@ class DocArt(BaseModelViewPage):
related_name='rel_docArts_for_version'
)
def get_last_child(self):
return self.rel_childArts_for_docArt.filter(enable=True).order_by('-order').first()
def get_first_child(self):
return self.rel_childArts_for_docArt.filter(enable=True).order_by('order').first()
def get_last_version(self):
return self.versions.all().order_by('-order').first()
def get_children(self, version):
return self.rel_childArts_for_docArt.filter(enable=True)
def get_prev_article(self, version=None):
if not version:
version = self.get_last_version()
art = DocArt.objects.filter(
enable=True,
versions=version,
order__lt=self.order,
parent=self.parent
).order_by('-order').first()
if art:
while art.get_last_child():
art = art.get_last_child()
if not art and self.parent:
art = self.parent
return art
def get_next_article(self, version=None):
if not version:
version = self.get_last_version()
art = self.get_first_child()
if not art:
art = DocArt.objects.filter(
enable=True,
versions=version,
order__gt=self.order,
parent=self.parent
).order_by('order').first()
if not art and self.parent:
art = DocArt.objects.filter(
enable=True,
versions=version,
order__gt=self.parent.order,
parent=self.parent.parent
).order_by('order').first()
return art
def get_parents_path(self, version_obj=None):
res = []