UPD: dav_submission: included some feedback from manu.

This commit is contained in:
2019-05-15 13:04:41 +02:00
parent 506abd02c8
commit d8919f3394
6 changed files with 37 additions and 9 deletions

View File

@@ -1,11 +1,11 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
import os import os
from django.conf import settings from django.conf import settings
from django.core.exceptions import ImproperlyConfigured
from dav_base.config.apps import AppConfig as _AppConfig, DefaultSetting from dav_base.config.apps import AppConfig as _AppConfig, DefaultSetting
DEFAULT_SETTINGS = ( DEFAULT_SETTINGS = (
DefaultSetting('enable_upload', True),
DefaultSetting('upload_path', os.path.join(settings.BASE_VAR_DIR, 'lib', 'dav_submission', 'submissions')), DefaultSetting('upload_path', os.path.join(settings.BASE_VAR_DIR, 'lib', 'dav_submission', 'submissions')),
DefaultSetting('max_files', 100), DefaultSetting('max_files', 100),
DefaultSetting('max_file_size_mib', 50), DefaultSetting('max_file_size_mib', 50),

View File

@@ -11,7 +11,12 @@ class UploadForm(forms.Form):
label=_(u'Dein Name'), label=_(u'Dein Name'),
help_text=_(u'Wenn wir wissen, wie du heißt, wird uns das echt weiter helfen')) help_text=_(u'Wenn wir wissen, wie du heißt, wird uns das echt weiter helfen'))
email_address = forms.EmailField(label=_(u'Deine E-Mail-Adresse'), email_address = forms.EmailField(label=_(u'Deine E-Mail-Adresse'),
help_text=_(u'Lorem')) help_text=_(u'Damit wir dich für Rückfragen kontaktieren können'))
group = forms.CharField(max_length=1024,
required=False,
label=_(u'DAV Gruppe'),
help_text=_(u'Optional, falls du aktiv in einer der Sektionsgruppen bist'))
title = forms.CharField(max_length=60, title = forms.CharField(max_length=60,
label=_(u'Titel deines Beitrags / Stichwort'), label=_(u'Titel deines Beitrags / Stichwort'),
@@ -20,8 +25,12 @@ class UploadForm(forms.Form):
_(u'Maximal 60 Zeichen') _(u'Maximal 60 Zeichen')
)) ))
description = forms.CharField(label=_(u'Beschreibung'), description = forms.CharField(max_length=150,
help_text=_(u'Lorem'), label=_(u'Beschreibung'),
help_text=u'%s<br />%s' % (
_(u'kommt zum Bild, falls es ausgestellt wird'),
_(u'Maximal 150 Zeichen')
),
widget=forms.Textarea(attrs={'rows': 2})) widget=forms.Textarea(attrs={'rows': 2}))
files = forms.FileField(label=_(u'Dateien'), files = forms.FileField(label=_(u'Dateien'),
@@ -37,6 +46,9 @@ class UploadForm(forms.Form):
self.fields['title'].widget.attrs['placeholder'] = \ self.fields['title'].widget.attrs['placeholder'] = \
u'Climb & Bold - Nacktbesteigung der Nose'[:self.fields['title'].max_length] u'Climb & Bold - Nacktbesteigung der Nose'[:self.fields['title'].max_length]
self.fields['group'].widget.attrs['placeholder'] = \
ugettext(u'Kann frei gelassen werden')[:self.fields['title'].max_length]
help_text = self.fields['files'].help_text help_text = self.fields['files'].help_text
if app_config.settings.max_files: if app_config.settings.max_files:
help_text += u'<br />%s' % (ugettext(u'Lade bis zu %d Dateien hoch') help_text += u'<br />%s' % (ugettext(u'Lade bis zu %d Dateien hoch')

View File

@@ -1,3 +1,3 @@
{ {
"url_prefix": "150" "url_prefix": "einreichung"
} }

View File

@@ -1,7 +1,7 @@
{% extends "dav_base/base.html" %} {% extends "dav_base/base.html" %}
{% load bootstrap3 %} {% load bootstrap3 %}
{% block project-name %}150 Jahre DAV - Einreichung{% endblock %} {% block project-name %}150 Jahre Sektion Karlsruhe des Deutschen Alpenvereins{% endblock %}
{% block messages %} {% block messages %}
<div class="container"> <div class="container">

View File

@@ -2,14 +2,14 @@
{% load bootstrap3 %} {% load bootstrap3 %}
{% block page-container %} {% block page-container %}
<h3 class="top-most">Lorem</h3> <h3 class="top-most">150 Jahre DAV Karlsruhe - Einreichung</h3>
<div class="well"> <div class="well">
<p class="lead">Lorem ipsum dolor</p> <p class="lead"><i>Zeig uns Deinen DAV!</i></p>
{% lorem %} {% lorem %}
</div> </div>
{% if show_upload_form %}
{% bootstrap_form_errors form %} {% bootstrap_form_errors form %}
<form action="" method="post" class="form-horizontal" enctype="multipart/form-data"> <form action="" method="post" class="form-horizontal" enctype="multipart/form-data">
{% csrf_token %} {% csrf_token %}
@@ -17,6 +17,7 @@
<div class="col-md-10"> <div class="col-md-10">
{% bootstrap_field form.name layout='horizontal' %} {% bootstrap_field form.name layout='horizontal' %}
{% bootstrap_field form.email_address layout='horizontal' %} {% bootstrap_field form.email_address layout='horizontal' %}
{% bootstrap_field form.group layout='horizontal' %}
{% bootstrap_field form.title layout='horizontal' %} {% bootstrap_field form.title layout='horizontal' %}
</div> </div>
</div> </div>
@@ -67,4 +68,5 @@
</div> </div>
</div> </div>
</form> </form>
{% endif %}
{% endblock page-container %} {% endblock page-container %}

View File

@@ -5,6 +5,7 @@ import logging
import os import os
from django.apps import apps from django.apps import apps
from django.contrib import messages from django.contrib import messages
from django.core.exceptions import PermissionDenied
from django.urls import reverse_lazy from django.urls import reverse_lazy
from django.utils.translation import ugettext as _ from django.utils.translation import ugettext as _
from django.views import generic from django.views import generic
@@ -19,6 +20,7 @@ class UploadView(generic.edit.FormView):
initial = { initial = {
# 'name': u'heinzel', # 'name': u'heinzel',
# 'email_address': 'heinzel@heinzelwelt.de', # 'email_address': 'heinzel@heinzelwelt.de',
# 'group': 'Alte Maschinen',
# 'title': u'Mein Beitrag', # 'title': u'Mein Beitrag',
# 'description': 'Foobar', # 'description': 'Foobar',
# 'accepted': True, # 'accepted': True,
@@ -57,6 +59,11 @@ class UploadView(generic.edit.FormView):
return r[:max_length] return r[:max_length]
def get_context_data(self, **kwargs):
c = super(UploadView, self).get_context_data(**kwargs)
c['show_upload_form'] = app_config.settings.enable_upload
return c
def form_valid(self, form): def form_valid(self, form):
base_path = app_config.settings.upload_path base_path = app_config.settings.upload_path
@@ -81,6 +88,7 @@ class UploadView(generic.edit.FormView):
try: try:
metadata_format_str = u"""Absender: {name} <{email_address}> metadata_format_str = u"""Absender: {name} <{email_address}>
Gruppe: {group}
Datum: {date} {time} Datum: {date} {time}
Titel: {title} Titel: {title}
Beschreibung: Beschreibung:
@@ -91,6 +99,7 @@ Beschreibung:
'time': now.strftime('%H:%M:%S'), 'time': now.strftime('%H:%M:%S'),
'name': form.cleaned_data['name'], 'name': form.cleaned_data['name'],
'email_address': form.cleaned_data['email_address'], 'email_address': form.cleaned_data['email_address'],
'group': form.cleaned_data['group'],
'title': form.cleaned_data['title'], 'title': form.cleaned_data['title'],
'description': form.cleaned_data['description'], 'description': form.cleaned_data['description'],
} }
@@ -139,6 +148,11 @@ Beschreibung:
return super(UploadView, self).form_valid(form) return super(UploadView, self).form_valid(form)
def post(self, request, *args, **kwargs):
if not app_config.settings.enable_upload:
raise PermissionDenied(_(u'Der Upload ist noch nicht freigeschaltet.'))
return super(UploadView, self).post(request, *args, **kwargs)
class SuccessView(generic.TemplateView): class SuccessView(generic.TemplateView):
template_name = 'dav_submission/success.html' template_name = 'dav_submission/success.html'