61 lines
2.0 KiB
Python
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})
|