add FileUpload to admin and view
This commit is contained in:
@@ -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 = "Dokumentensammlung"
|
||||
|
||||
|
||||
class DocumentInline(admin.TabularInline):
|
||||
model = Document
|
||||
extra = 0
|
||||
verbose_name = "Dokument"
|
||||
verbose_name_plural = "Dokumentensammlung"
|
||||
|
||||
|
||||
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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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">
|
||||
<a href="{% url 'admin:intern_topic_change' active_topic.id %}">Beschreibung bearbeiten</a>
|
||||
<hr>
|
||||
{{ active_docu.description|safe }}
|
||||
<hr>
|
||||
</div>
|
||||
|
||||
<hr>
|
||||
{% 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>
|
||||
|
||||
@@ -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">
|
||||
<a href="{% url 'admin:intern_topic_change' active_topic.id %}">Beschreibung bearbeiten</a>
|
||||
<hr>
|
||||
{{ active_topic.description|safe }}
|
||||
<hr>
|
||||
</div>
|
||||
<hr>
|
||||
{% endif %}
|
||||
|
||||
<div class="grid-x grid-padding-x">
|
||||
|
||||
Reference in New Issue
Block a user