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