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 django.db.models import F
|
||||||
|
|
||||||
from .models import TopicGroup, Topic, Documentation, Document, FileUpload
|
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):
|
class DocumentationInline(admin.TabularInline):
|
||||||
@@ -20,6 +20,13 @@ class FileUploadInline(admin.TabularInline):
|
|||||||
verbose_name_plural = "Dokumentensammlung"
|
verbose_name_plural = "Dokumentensammlung"
|
||||||
|
|
||||||
|
|
||||||
|
class DocumentInline(admin.TabularInline):
|
||||||
|
model = Document
|
||||||
|
extra = 0
|
||||||
|
verbose_name = "Dokument"
|
||||||
|
verbose_name_plural = "Dokumentensammlung"
|
||||||
|
|
||||||
|
|
||||||
class TopicInline(admin.TabularInline):
|
class TopicInline(admin.TabularInline):
|
||||||
model = Topic
|
model = Topic
|
||||||
form = TopicAdminForm
|
form = TopicAdminForm
|
||||||
@@ -61,6 +68,7 @@ class TopicAdmin(admin.ModelAdmin):
|
|||||||
class DocumentationAdmin(admin.ModelAdmin):
|
class DocumentationAdmin(admin.ModelAdmin):
|
||||||
form = DocumentationAdminForm
|
form = DocumentationAdminForm
|
||||||
model = Documentation
|
model = Documentation
|
||||||
|
inlines = (DocumentInline, FileUploadInline, )
|
||||||
|
|
||||||
list_display = ["title", "topic",]
|
list_display = ["title", "topic",]
|
||||||
|
|
||||||
@@ -82,7 +90,20 @@ class DocumentAdmin(admin.ModelAdmin):
|
|||||||
super().save_model(request, obj, form, change)
|
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(TopicGroup, TopicGroupAdmin)
|
||||||
admin.site.register(Topic, TopicAdmin)
|
admin.site.register(Topic, TopicAdmin)
|
||||||
#admin.site.register(Documentation, DocumentationAdmin)
|
admin.site.register(Documentation, DocumentationAdmin)
|
||||||
admin.site.register(Document, DocumentAdmin)
|
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 import forms
|
||||||
from django.utils.translation import gettext_lazy as _
|
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):
|
class DateInput(forms.DateInput):
|
||||||
@@ -38,9 +38,9 @@ class DocumentationAdminForm(forms.ModelForm):
|
|||||||
fields = [
|
fields = [
|
||||||
"title",
|
"title",
|
||||||
"slug",
|
"slug",
|
||||||
|
"topic",
|
||||||
"placeholder",
|
"placeholder",
|
||||||
"description",
|
"description",
|
||||||
"topic",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
widgets = {"description": CKEditorUploadingWidget(config_name="default")}
|
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 DocumentForm(forms.ModelForm):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Document
|
model = Document
|
||||||
|
|||||||
@@ -132,6 +132,7 @@ class Document(models.Model):
|
|||||||
class FileUpload(models.Model):
|
class FileUpload(models.Model):
|
||||||
title = models.CharField(verbose_name="Titel", max_length=128)
|
title = models.CharField(verbose_name="Titel", max_length=128)
|
||||||
file_field = models.FileField(verbose_name="Dokument", upload_to="uploads/intern/files/")
|
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)
|
documentation = models.ForeignKey(Documentation, on_delete=models.CASCADE)
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ from documents.etherpadlib import add_ep_cookie
|
|||||||
from collections import deque
|
from collections import deque
|
||||||
|
|
||||||
from .forms import DocumentForm
|
from .forms import DocumentForm
|
||||||
from .models import TopicGroup, Topic, Documentation, Document
|
from .models import TopicGroup, Topic, Documentation, Document, FileUpload
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
@@ -65,6 +65,8 @@ def show_docu(request, topic_slug=None, slug=None):
|
|||||||
|
|
||||||
form = DocumentForm(initial=initial)
|
form = DocumentForm(initial=initial)
|
||||||
|
|
||||||
|
files = deque(FileUpload.objects.filter(documentation=active_docu))
|
||||||
|
|
||||||
docus = deque(Document.objects.filter(documentation=active_docu).order_by('-date'))
|
docus = deque(Document.objects.filter(documentation=active_docu).order_by('-date'))
|
||||||
documents = deque([])
|
documents = deque([])
|
||||||
|
|
||||||
@@ -83,6 +85,7 @@ def show_docu(request, topic_slug=None, slug=None):
|
|||||||
"active_topic": active_topic,
|
"active_topic": active_topic,
|
||||||
"active_docu": active_docu,
|
"active_docu": active_docu,
|
||||||
"documents": documents,
|
"documents": documents,
|
||||||
|
"files": files,
|
||||||
}
|
}
|
||||||
|
|
||||||
response = render(request, "intern/docu.html", context)
|
response = render(request, "intern/docu.html", context)
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<div class="grid-container">
|
<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">
|
<div class="cell large-2 medium-4 small-6">
|
||||||
<a href="{% url 'intern' %}">
|
<a href="{% url 'intern' %}">
|
||||||
<div class="internheader">
|
<div class="internheader">
|
||||||
@@ -31,10 +31,11 @@
|
|||||||
<div class="intern-hero">
|
<div class="intern-hero">
|
||||||
{% if active_docu.description %}
|
{% if active_docu.description %}
|
||||||
<div class="padding-top-1 padding-left-1 padding-right-1">
|
<div class="padding-top-1 padding-left-1 padding-right-1">
|
||||||
{{ active_docu.description|safe }}
|
<a href="{% url 'admin:intern_topic_change' active_topic.id %}">Beschreibung bearbeiten</a>
|
||||||
</div>
|
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
{{ active_docu.description|safe }}
|
||||||
|
<hr>
|
||||||
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<form action="" method="post">
|
<form action="" method="post">
|
||||||
@@ -78,6 +79,19 @@
|
|||||||
</div>
|
</div>
|
||||||
</a>
|
</a>
|
||||||
{% endfor %}
|
{% 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>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<div class="grid-container">
|
<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">
|
<div class="cell large-2 medium-4 small-6">
|
||||||
<a href="{% url 'intern' %}">
|
<a href="{% url 'intern' %}">
|
||||||
<div class="internheader">
|
<div class="internheader">
|
||||||
@@ -23,9 +23,11 @@
|
|||||||
<div class="intern-hero">
|
<div class="intern-hero">
|
||||||
{% if active_topic.description %}
|
{% if active_topic.description %}
|
||||||
<div class="padding-top-1 padding-left-1 padding-right-1">
|
<div class="padding-top-1 padding-left-1 padding-right-1">
|
||||||
{{ active_topic.description|safe }}
|
<a href="{% url 'admin:intern_topic_change' active_topic.id %}">Beschreibung bearbeiten</a>
|
||||||
</div>
|
|
||||||
<hr>
|
<hr>
|
||||||
|
{{ active_topic.description|safe }}
|
||||||
|
<hr>
|
||||||
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<div class="grid-x grid-padding-x">
|
<div class="grid-x grid-padding-x">
|
||||||
|
|||||||
Reference in New Issue
Block a user