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

59 lines
1.7 KiB
Python

import json
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