X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/3263fb5558f69c727e61a6d4c0b3575a0f081ef6..24bbddd7216d0d6a99500609556ff34e34e48c09:/apps/catalogue/views.py?ds=sidebyside diff --git a/apps/catalogue/views.py b/apps/catalogue/views.py index 4c1a21ce..64967420 100644 --- a/apps/catalogue/views.py +++ b/apps/catalogue/views.py @@ -8,6 +8,7 @@ import os import shutil import subprocess from tempfile import NamedTemporaryFile +from xml.sax.saxutils import escape as escape_xml from django.conf import settings from django.contrib import auth @@ -24,6 +25,7 @@ from django.views.decorators.http import require_POST from unidecode import unidecode from catalogue import forms +from catalogue.filters import DocumentFilterSet from catalogue.forms import TagMultipleForm, TagSingleForm from catalogue.helpers import active_tab from catalogue.models import Category @@ -94,6 +96,9 @@ def create_missing(request): doc = Document.objects.create(**kwargs) + for tag_form in tag_forms: + tag_form.save(instance=doc) + cover = request.FILES.get('cover') if cover: uppath = 'uploads/%d/' % doc.pk @@ -111,19 +116,24 @@ def create_missing(request): else: cover_url = '' - doc.commit( - text='''
+ text = '''
- ''' + form.cleaned_data['publisher'] + ''' - ''' + form.cleaned_data['description'] + ''' - ''' + form.cleaned_data['language'] + ''' - ''' + form.cleaned_data['rights'] + ''' - ''' + form.cleaned_data['audience'] + ''' - ''' + cover_url + ''' + %s + %s + %s + %s -
''' + title + '''
+
%s
-
''', +
''' % ( + escape_xml(form.cleaned_data['publisher']), + escape_xml(form.cleaned_data['description']), + '\n'.join(tag_form.metadata_rows() for tag_form in tag_forms), + escape_xml(cover_url), + escape_xml(title)) + + doc.commit( + text=text, author=creator ) doc.assigned_to = request.user @@ -509,12 +519,16 @@ def fork(request, pk): def upcoming(request): + f = DocumentFilterSet(request.GET, queryset=Document.objects.filter(deleted=False).filter(publish_log=None)) return render(request, "catalogue/upcoming.html", { - 'objects_list': Document.objects.filter(deleted=False).filter(publish_log=None), + 'filter_set': f, + 'link_url': 'catalogue_preview', }) def finished(request): + f = DocumentFilterSet(request.GET, queryset=Document.objects.filter(deleted=False).exclude(publish_log=None)) return render(request, "catalogue/finished.html", { - 'objects_list': Document.objects.filter(deleted=False).exclude(publish_log=None), + 'filter_set': f, + 'link_url': 'catalogue_html', })