Files
Aerbim/DocsApp/models.py
2024-07-11 16:16:57 +03:00

52 lines
1.8 KiB
Python

from django.db import models
from BaseModels.base_models import BaseModelViewPage, BaseModel
from ckeditor_uploader.fields import RichTextUploadingField
from django.utils.translation import gettext_lazy as _
class DocVersion(BaseModel):
url = models.TextField(
verbose_name=_('URL привязанной страницы'), unique=True,
help_text=_('можно изменить адрес страницы (!!! ВНИМАНИЕ !!! поисковые системы потеряют страницу и найдут лишь спустя неделю...месяц)')
)
def get_article(self, art_url=None):
art = None
if art_url:
try:
art = self.rel_docArts_for_version.get(enable=True, url=art_url)
except DocArt.DoesNotExist:
art = None
if not art:
art = self.rel_docArts_for_version.filter(
enable=True, parent=None
).order_by('order').first()
return art
class Meta:
verbose_name = _('Версия документации')
verbose_name_plural = _('Версии документации')
class DocArt(BaseModelViewPage):
parent = models.ForeignKey(
'DocArt', verbose_name=_('Родитель'),
null=True, blank=True,
on_delete=models.SET_NULL,
related_name='rel_childArts_for_docArt'
)
versions = models.ManyToManyField(
DocVersion, verbose_name=_('Подключенные версии'), blank=True,
related_name='rel_docArts_for_version'
)
def __str__(self):
if self.name:
return self.name
else:
return str(self.id)
class Meta:
verbose_name = _('Статья документации')
verbose_name_plural = _('Статьи документации')