add FileUpload to admin and view

This commit is contained in:
2021-06-16 09:54:52 +00:00
committed by Patrick Mayr
parent 95e9e9e016
commit 7c9a68dbd9
6 changed files with 61 additions and 10 deletions

View File

@@ -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)

View File

@@ -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

View File

@@ -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)

View File

@@ -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)

View File

@@ -2,7 +2,7 @@
{% block content %}
<div class="grid-container">
<div class="grid-x grid-padding-x padding-top-1">
<div class="grid-x grid-padding-x">
<div class="cell large-2 medium-4 small-6">
<a href="{% url 'intern' %}">
<div class="internheader">
@@ -31,10 +31,11 @@
<div class="intern-hero">
{% if active_docu.description %}
<div class="padding-top-1 padding-left-1 padding-right-1">
{{ active_docu.description|safe }}
</div>
<a href="{% url 'admin:intern_topic_change' active_topic.id %}">Beschreibung bearbeiten</a>
<hr>
{{ active_docu.description|safe }}
<hr>
</div>
{% endif %}
<form action="" method="post">
@@ -78,6 +79,19 @@
</div>
</a>
{% endfor %}
{% for file in files %}
<a href="{{ file.file_field.url }}" target="_blank">
<div class="news-hero-compact">
<div class="news-hero-compact-text">
<p style="margin-bottom: 0rem;"><i class="far fa-file"></i> {{ file.title }}</p>
</div>
<div class="news-hero-compact-right">
<p style="margin-bottom: 0rem;">{{ file.date }}</p>
</div>
</div>
</a>
{% endfor %}
</div>
</div>
</div>

View File

@@ -2,7 +2,7 @@
{% block content %}
<div class="grid-container">
<div class="grid-x grid-padding-x padding-top-1">
<div class="grid-x grid-padding-x">
<div class="cell large-2 medium-4 small-6">
<a href="{% url 'intern' %}">
<div class="internheader">
@@ -23,9 +23,11 @@
<div class="intern-hero">
{% if active_topic.description %}
<div class="padding-top-1 padding-left-1 padding-right-1">
{{ active_topic.description|safe }}
</div>
<a href="{% url 'admin:intern_topic_change' active_topic.id %}">Beschreibung bearbeiten</a>
<hr>
{{ active_topic.description|safe }}
<hr>
</div>
{% endif %}
<div class="grid-x grid-padding-x">