59 lines
1.7 KiB
Python
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
|
|
|
|
|
|
|