This commit is contained in:
@@ -3,10 +3,10 @@ import codecs
|
||||
import datetime
|
||||
import logging
|
||||
import os
|
||||
import pytz
|
||||
import re
|
||||
import urllib
|
||||
import zipfile
|
||||
import pytz
|
||||
from django.apps import apps
|
||||
from django.contrib import messages
|
||||
from django.contrib.auth.decorators import login_required
|
||||
@@ -90,7 +90,7 @@ class ListView(generic.ListView):
|
||||
permission_group = app_config.settings.download_group
|
||||
if not request.user.groups.filter(name=permission_group).exists():
|
||||
raise PermissionDenied()
|
||||
return super(ListView, self).dispatch(request, *args, **kwargs)
|
||||
return super().dispatch(request, *args, **kwargs)
|
||||
|
||||
|
||||
class DownloadView(generic.DetailView):
|
||||
@@ -139,7 +139,7 @@ class DownloadView(generic.DetailView):
|
||||
permission_group = app_config.settings.download_group
|
||||
if not request.user.groups.filter(name=permission_group).exists():
|
||||
raise PermissionDenied()
|
||||
return super(DownloadView, self).dispatch(request, *args, **kwargs)
|
||||
return super().dispatch(request, *args, **kwargs)
|
||||
|
||||
|
||||
class UploadView(generic.edit.FormView):
|
||||
@@ -155,30 +155,30 @@ class UploadView(generic.edit.FormView):
|
||||
form_class = UploadForm
|
||||
success_url = reverse_lazy('dav_submission:success')
|
||||
|
||||
def _sanitize_filename(self, input):
|
||||
def _sanitize_filename(self, filename):
|
||||
max_length = None
|
||||
discard_chars = u''
|
||||
discard_chars = ''
|
||||
replace_chars = {
|
||||
u'ä': u'ae',
|
||||
u'ö': u'oe',
|
||||
u'ü': u'ue',
|
||||
u'ß': u'ss',
|
||||
u'Ä': u'Ae',
|
||||
u'Ö': u'Oe',
|
||||
u'Ü': u'Ue',
|
||||
'ä': 'ae',
|
||||
'ö': 'oe',
|
||||
'ü': 'ue',
|
||||
'ß': 'ss',
|
||||
'Ä': 'Ae',
|
||||
'Ö': 'Oe',
|
||||
'Ü': 'Ue',
|
||||
}
|
||||
allowed_chars = (u'abcdefghijklmnopqrstuvwxyz'
|
||||
u'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
|
||||
u'0123456789'
|
||||
u'._-')
|
||||
non_allowed_substitute = u'_'
|
||||
space_substitute = u'_'
|
||||
allowed_chars = ('abcdefghijklmnopqrstuvwxyz'
|
||||
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
|
||||
'0123456789'
|
||||
'._-')
|
||||
non_allowed_substitute = '_'
|
||||
space_substitute = '_'
|
||||
|
||||
if space_substitute is None:
|
||||
space_substitute = non_allowed_substitute
|
||||
|
||||
r = ''
|
||||
for c in input:
|
||||
for c in filename:
|
||||
if c in discard_chars:
|
||||
continue
|
||||
elif c in replace_chars:
|
||||
@@ -195,14 +195,14 @@ class UploadView(generic.edit.FormView):
|
||||
return r[:max_length]
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
c = super(UploadView, self).get_context_data(**kwargs)
|
||||
c = super().get_context_data(**kwargs)
|
||||
c['show_upload_form'] = app_config.settings.enable_upload
|
||||
return c
|
||||
|
||||
def form_valid(self, form):
|
||||
base_path = app_config.settings.upload_path
|
||||
|
||||
subdir_format_str = u'{datetime}--{title}'
|
||||
subdir_format_str = '{datetime}--{title}'
|
||||
now = timezone.now()
|
||||
subdir_format_kwargs = {'datetime': now.strftime('%Y-%m-%d--%H%M%S'),
|
||||
'date': now.strftime('%Y-%m-%d'),
|
||||
@@ -214,7 +214,7 @@ class UploadView(generic.edit.FormView):
|
||||
subdir_path = os.path.join(base_path, subdir_name)
|
||||
|
||||
if os.path.isdir(subdir_path):
|
||||
message = _(u'Es gibt bereits einen Beitrag mit dem Titel "%(title)s".') % subdir_format_kwargs
|
||||
message = _('Es gibt bereits einen Beitrag mit dem Titel "%(title)s".') % subdir_format_kwargs
|
||||
messages.error(self.request, message)
|
||||
form.add_error('title', message)
|
||||
return self.render_to_response(self.get_context_data(form=form))
|
||||
@@ -222,7 +222,7 @@ class UploadView(generic.edit.FormView):
|
||||
os.makedirs(subdir_path)
|
||||
|
||||
try:
|
||||
metadata_format_str = u"""Absender: {name} <{email_address}>
|
||||
metadata_format_str = """Absender: {name} <{email_address}>
|
||||
Gruppe: {group}
|
||||
Datum: {date} {time}
|
||||
Titel: {title}
|
||||
@@ -246,10 +246,10 @@ Beschreibung:
|
||||
with codecs.open(metadata_file_path, 'w', encoding='utf-8') as metadata_file:
|
||||
metadata_file.write(metadata)
|
||||
except Exception as e:
|
||||
message = _(u'Jetzt ist irgendwas schief gelaufen.')
|
||||
message = _('Jetzt ist irgendwas schief gelaufen.')
|
||||
messages.error(self.request, message)
|
||||
logger.error('dav_submission.views.UploadView.form_valid(): Catched Exception #2: %s', str(e))
|
||||
return super(UploadView, self).form_valid(form)
|
||||
return super().form_valid(form)
|
||||
|
||||
try:
|
||||
for input_file in form.files.getlist('files'):
|
||||
@@ -257,7 +257,7 @@ Beschreibung:
|
||||
file_path = os.path.join(subdir_path, file_name)
|
||||
|
||||
if os.path.exists(file_path):
|
||||
message = _(u'Die Datei %(name)s haben wir bereits.') % {'name': input_file.name}
|
||||
message = _('Die Datei %(name)s haben wir bereits.') % {'name': input_file.name}
|
||||
messages.error(self.request, message)
|
||||
continue
|
||||
|
||||
@@ -267,28 +267,28 @@ Beschreibung:
|
||||
|
||||
size = os.path.getsize(file_path)
|
||||
if size > (1024 * 1024):
|
||||
size_str = u'%s MiB' % ('%.3f' % (size / 1024.0 / 1024.0)).rstrip('0').rstrip('.')
|
||||
size_str = '%s MiB' % ('%.3f' % (size / 1024.0 / 1024.0)).rstrip('0').rstrip('.')
|
||||
elif size > 1024:
|
||||
size_str = u'%s KiB' % ('%.3f' % (size / 1024.0)).rstrip('0').rstrip('.')
|
||||
size_str = '%s KiB' % ('%.3f' % (size / 1024.0)).rstrip('0').rstrip('.')
|
||||
else:
|
||||
size_str = u'%d Byte' % size
|
||||
message = _(u'Datei erfolgreich hochgeladen: %(name)s (%(size)s)') % {'name': input_file.name,
|
||||
'size': size_str}
|
||||
size_str = '%d Byte' % size
|
||||
message = _('Datei erfolgreich hochgeladen: %(name)s (%(size)s)') % {'name': input_file.name,
|
||||
'size': size_str}
|
||||
messages.success(self.request, message)
|
||||
except Exception as e:
|
||||
message = _(u'Jetzt ist irgendwas schief gelaufen.')
|
||||
message = _('Jetzt ist irgendwas schief gelaufen.')
|
||||
messages.error(self.request, message)
|
||||
logger.error('dav_submission.views.UploadView.form_valid(): Catched Exception #3: %s', str(e))
|
||||
return super(UploadView, self).form_valid(form)
|
||||
return super().form_valid(form)
|
||||
|
||||
mail = NewSubmissionMail(metadata_format_kwargs)
|
||||
mail.send()
|
||||
return super(UploadView, self).form_valid(form)
|
||||
return super().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)
|
||||
raise PermissionDenied(_('Der Upload ist noch nicht freigeschaltet.'))
|
||||
return super().post(request, *args, **kwargs)
|
||||
|
||||
|
||||
class SuccessView(generic.TemplateView):
|
||||
|
||||
Reference in New Issue
Block a user