0.5.9 documentation prev and next article navigation
This commit is contained in:
@@ -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 = []
|
||||
|
||||
Reference in New Issue
Block a user