UPD: dav_submission: included some feedback from manu.
This commit is contained in:
@@ -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),
|
||||||
|
|||||||
@@ -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')
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
{
|
{
|
||||||
"url_prefix": "150"
|
"url_prefix": "einreichung"
|
||||||
}
|
}
|
||||||
@@ -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">
|
||||||
|
|||||||
@@ -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 %}
|
||||||
|
|||||||
@@ -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'
|
||||||
|
|||||||
Reference in New Issue
Block a user