0.5.4 documentation

This commit is contained in:
SDE
2024-07-11 16:16:57 +03:00
parent aafa989501
commit b576e4f224
2 changed files with 60 additions and 4 deletions

View File

@@ -10,6 +10,21 @@ class DocVersion(BaseModel):
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 = _('Версии документации')

View File

@@ -1,17 +1,58 @@
import json
from django.http import HttpResponse, Http404, FileResponse
from django.http import HttpResponse, Http404, FileResponse, HttpResponseRedirect
from django.template import loader, RequestContext
from django.contrib.auth.decorators import login_required
from .models import *
from django.conf import settings
from GeneralApp.funcs import get_inter_http_respose
from django.utils.translation import gettext_lazy as _
from django.urls import reverse
def DocsView(request, version=None, art_url=None):
art = None
kwargs = {}
if art_url:
kwargs['url'] = art_url
try:
art = DocArt.objects.get(**kwargs)
Dict = {'cur_article': art}
t = loader.get_template('pages/p_documentation.html')
return get_inter_http_respose(t, Dict, request)
except DocArt.DoesNotExist:
raise Http404
if version:
try:
vers_obj = DocVersion.objects.get(url=version)
if vers_obj:
art = vers_obj.get_article()
if art:
url = reverse(
'docs_art_page',
kwargs={'version': version, 'art_url': art.url}
)
return HttpResponseRedirect(url)
except DocVersion.DoesNotExist:
raise Http404
art = DocArt.objects.exclude(
versions=None
).filter(
enable=True, parent=None
).order_by('versions__order', 'order').first()
if art:
url = reverse(
'docs_art_page',
kwargs={'version': art.versions.order_by('order').first().url, 'art_url': art.url}
)
return HttpResponseRedirect(url)
if not art:
raise Http404
Dict = {}
t = loader.get_template('pages/p_documentation.html')
return get_inter_http_respose(t, Dict, request)