From 7c9a68dbd926d0cd9e8bea025500cea195e711d3 Mon Sep 17 00:00:00 2001 From: patrick Date: Wed, 16 Jun 2021 09:54:52 +0000 Subject: [PATCH] add FileUpload to admin and view --- fet2020/intern/admin.py | 25 +++++++++++++++++++++++-- fet2020/intern/forms.py | 14 ++++++++++++-- fet2020/intern/models.py | 1 + fet2020/intern/views.py | 5 ++++- fet2020/templates/intern/docu.html | 20 +++++++++++++++++--- fet2020/templates/intern/topic.html | 6 ++++-- 6 files changed, 61 insertions(+), 10 deletions(-) diff --git a/fet2020/intern/admin.py b/fet2020/intern/admin.py index 41a2644e..6b48da34 100644 --- a/fet2020/intern/admin.py +++ b/fet2020/intern/admin.py @@ -2,7 +2,7 @@ from django.contrib import admin from django.db.models import F from .models import TopicGroup, Topic, Documentation, Document, FileUpload -from .forms import TopicGroupAdminForm, TopicAdminForm, DocumentationAdminForm, DocumentAdminForm +from .forms import TopicGroupAdminForm, TopicAdminForm, DocumentationAdminForm, DocumentAdminForm, FileUploadAdminForm class DocumentationInline(admin.TabularInline): @@ -20,6 +20,13 @@ class FileUploadInline(admin.TabularInline): verbose_name_plural = "Do­ku­men­ten­samm­lung" +class DocumentInline(admin.TabularInline): + model = Document + extra = 0 + verbose_name = "Dokument" + verbose_name_plural = "Do­ku­men­ten­samm­lung" + + class TopicInline(admin.TabularInline): model = Topic form = TopicAdminForm @@ -61,6 +68,7 @@ class TopicAdmin(admin.ModelAdmin): class DocumentationAdmin(admin.ModelAdmin): form = DocumentationAdminForm model = Documentation + inlines = (DocumentInline, FileUploadInline, ) list_display = ["title", "topic",] @@ -82,7 +90,20 @@ class DocumentAdmin(admin.ModelAdmin): super().save_model(request, obj, form, change) +class FileUploadAdmin(admin.ModelAdmin): + form = FileUploadAdminForm + model = FileUpload + + list_filter = ["documentation",] + list_display = ["title", "documentation",] + + def save_model(self, request, obj, form, change): + obj.created_by = request.user + super().save_model(request, obj, form, change) + + admin.site.register(TopicGroup, TopicGroupAdmin) admin.site.register(Topic, TopicAdmin) -#admin.site.register(Documentation, DocumentationAdmin) +admin.site.register(Documentation, DocumentationAdmin) admin.site.register(Document, DocumentAdmin) +admin.site.register(FileUpload, FileUploadAdmin) diff --git a/fet2020/intern/forms.py b/fet2020/intern/forms.py index bf6b34e1..fc50f163 100644 --- a/fet2020/intern/forms.py +++ b/fet2020/intern/forms.py @@ -2,7 +2,7 @@ from ckeditor_uploader.widgets import CKEditorUploadingWidget from django import forms from django.utils.translation import gettext_lazy as _ -from .models import TopicGroup, Topic, Documentation, Document +from .models import TopicGroup, Topic, Documentation, Document, FileUpload class DateInput(forms.DateInput): @@ -38,9 +38,9 @@ class DocumentationAdminForm(forms.ModelForm): fields = [ "title", "slug", + "topic", "placeholder", "description", - "topic", ] widgets = {"description": CKEditorUploadingWidget(config_name="default")} @@ -55,6 +55,16 @@ class DocumentAdminForm(forms.ModelForm): ] +class FileUploadAdminForm(forms.ModelForm): + class Meta: + model = FileUpload + fields = [ + "title", + "file_field", + "documentation", + ] + + class DocumentForm(forms.ModelForm): class Meta: model = Document diff --git a/fet2020/intern/models.py b/fet2020/intern/models.py index cb0f2187..c4b28139 100644 --- a/fet2020/intern/models.py +++ b/fet2020/intern/models.py @@ -132,6 +132,7 @@ class Document(models.Model): class FileUpload(models.Model): title = models.CharField(verbose_name="Titel", max_length=128) file_field = models.FileField(verbose_name="Dokument", upload_to="uploads/intern/files/") + date = models.DateField(verbose_name="Datum", default=date.today) documentation = models.ForeignKey(Documentation, on_delete=models.CASCADE) diff --git a/fet2020/intern/views.py b/fet2020/intern/views.py index 1b43e7c4..7dcd3933 100644 --- a/fet2020/intern/views.py +++ b/fet2020/intern/views.py @@ -9,7 +9,7 @@ from documents.etherpadlib import add_ep_cookie from collections import deque from .forms import DocumentForm -from .models import TopicGroup, Topic, Documentation, Document +from .models import TopicGroup, Topic, Documentation, Document, FileUpload logger = logging.getLogger(__name__) @@ -65,6 +65,8 @@ def show_docu(request, topic_slug=None, slug=None): form = DocumentForm(initial=initial) + files = deque(FileUpload.objects.filter(documentation=active_docu)) + docus = deque(Document.objects.filter(documentation=active_docu).order_by('-date')) documents = deque([]) @@ -83,6 +85,7 @@ def show_docu(request, topic_slug=None, slug=None): "active_topic": active_topic, "active_docu": active_docu, "documents": documents, + "files": files, } response = render(request, "intern/docu.html", context) diff --git a/fet2020/templates/intern/docu.html b/fet2020/templates/intern/docu.html index 58f28ed3..e0d2f5d3 100644 --- a/fet2020/templates/intern/docu.html +++ b/fet2020/templates/intern/docu.html @@ -2,7 +2,7 @@ {% block content %}
-
+
@@ -31,10 +31,11 @@
{% if active_docu.description %}
+ Beschreibung bearbeiten +
{{ active_docu.description|safe }} +
- -
{% endif %}
@@ -78,6 +79,19 @@
{% endfor %} + + {% for file in files %} + +
+
+

{{ file.title }}

+
+
+

{{ file.date }}

+
+
+
+ {% endfor %}
diff --git a/fet2020/templates/intern/topic.html b/fet2020/templates/intern/topic.html index 4553a16a..7a4b4c3d 100644 --- a/fet2020/templates/intern/topic.html +++ b/fet2020/templates/intern/topic.html @@ -2,7 +2,7 @@ {% block content %}
-