dms/dms/views.py

61 lines
2.0 KiB
Python

from django.shortcuts import render
from django.http import HttpResponse
from .models import Document, Version, Node, Site
from .filters import VersionFilter
def home(request):
query = request.GET.get('q', None)
if query:
documents = Document.objects.filter(title__icontains=query)
else:
documents = Document.objects.filter(versions__is_published=True)
return render(request, 'dms/home.html', {'documents': documents})
def documents_list(request):
docs = Document.objects.all()
return render(request, 'dms/documents_list.html', {'documents': docs})
def document_details(request, pk):
doc = Document.objects.get(pk=pk)
return render(request, 'dms/document_details.html', {'document': doc})
def document_to_pdf(request, pk):
doc = Document.objects.get(pk=pk)
response = HttpResponse(doc.to_pdf(), content_type='application/pdf')
response['Content-Disposition'] = 'attachment; filename="{}.pdf"'.format(doc.title)
return response
def filter_documents(request):
f = VersionFilter(request.GET, queryset=Version.objects.select_related('document').all())
return render(request, 'dms/filters.html', {'filter': f})
def node_documents(request, pk):
f = VersionFilter(request.GET, queryset=Version.objects.select_related('document').filter(nodes=pk).all())
node = Node.objects.get(pk=pk)
return render(request, 'dms/node_filter.html', {'filter': f, 'node': node})
def site_documents(request, pk):
site = Site.objects.get(pk=pk)
documents = Version.objects.filter(sites=pk).all()
return render(request, 'dms/site_details.html', {'site': site, 'documents': documents})
def standard_documents(request, pk):
docs = Document.objects.filter(jci_standard=pk)
return render(request, 'dms/documents_list.html', {'documents': docs})
def keyword_documents(request, pk):
docs = Document.objects.filter(versions__keywords__pk=pk)
return render(request, 'dms/documents_list.html', {'documents': docs})