Fixed: ugettext has been deprecated
Fixed: Multiple Upload for Eventpics
This commit is contained in:
2
Makefile
2
Makefile
@@ -16,7 +16,7 @@ all: cleanup migrate testserver
|
|||||||
|
|
||||||
venv: $(VENV_PATH)/bin/activate
|
venv: $(VENV_PATH)/bin/activate
|
||||||
$(VENV_PATH)/bin/activate:
|
$(VENV_PATH)/bin/activate:
|
||||||
@test -d $(VENV_PATH) || python3 -m venv --clear $(VENV_PATH)
|
@test -d $(VENV_PATH) || python3 -m venv --clear --system-site-packages $(VENV_PATH)
|
||||||
|
|
||||||
dev-requirements: venv ${DEV_REQUIREMENTS}
|
dev-requirements: venv ${DEV_REQUIREMENTS}
|
||||||
${PYTHON} -m pip install -qU pip
|
${PYTHON} -m pip install -qU pip
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
beautifulsoup4
|
beautifulsoup4
|
||||||
django < 3.0
|
django < 4.0
|
||||||
django-appconf
|
django-appconf
|
||||||
django-ckeditor
|
django-ckeditor
|
||||||
django-contrib-comments
|
django-contrib-comments
|
||||||
@@ -13,7 +13,7 @@ icalendar
|
|||||||
openpyxl
|
openpyxl
|
||||||
markdown
|
markdown
|
||||||
pillow
|
pillow
|
||||||
psycopg2-binary
|
# psycopg2-binary<2.9
|
||||||
PyJWT
|
PyJWT
|
||||||
pytz
|
pytz
|
||||||
requests
|
requests
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import django_comments as comments
|
|||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.contrib.syndication.views import Feed
|
from django.contrib.syndication.views import Feed
|
||||||
from django.utils.feedgenerator import Rss201rev2Feed
|
from django.utils.feedgenerator import Rss201rev2Feed
|
||||||
from django.utils.translation import ugettext as _
|
from django.utils.translation import gettext as _
|
||||||
|
|
||||||
from content.models import Article
|
from content.models import Article
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ Created on 04.10.2011
|
|||||||
"""
|
"""
|
||||||
from django import forms
|
from django import forms
|
||||||
from django.template.defaultfilters import slugify
|
from django.template.defaultfilters import slugify
|
||||||
from django.utils.translation import ugettext as _
|
from django.utils.translation import gettext as _
|
||||||
|
|
||||||
from . import models
|
from . import models
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ from django.template.defaultfilters import slugify
|
|||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
from django.utils.safestring import mark_safe
|
from django.utils.safestring import mark_safe
|
||||||
from django.utils.translation import get_language, ugettext as _
|
from django.utils.translation import get_language, gettext as _
|
||||||
|
|
||||||
from utils import STATUS_CHOICES, STATUS_WAITING, STATUS_PUBLISHED, CLEANER
|
from utils import STATUS_CHOICES, STATUS_WAITING, STATUS_PUBLISHED, CLEANER
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ from csp.decorators import csp_update
|
|||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.contrib.auth.mixins import PermissionRequiredMixin
|
from django.contrib.auth.mixins import PermissionRequiredMixin
|
||||||
from django.http import HttpResponse, Http404
|
from django.http import HttpResponse, Http404
|
||||||
from django.utils.translation import ugettext as _
|
from django.utils.translation import gettext as _
|
||||||
from django.views import generic
|
from django.views import generic
|
||||||
|
|
||||||
from . import models, forms
|
from . import models, forms
|
||||||
|
|||||||
@@ -1,27 +1,42 @@
|
|||||||
"""Django Forms to administrate the event content on the frontend."""
|
"""Django Forms to administrate the event content on the frontend."""
|
||||||
from django import forms
|
from django import forms
|
||||||
from django.contrib.auth import get_user_model
|
from django.contrib.auth import get_user_model
|
||||||
from django.utils.translation import ugettext as _
|
from django.utils.translation import gettext as _
|
||||||
|
|
||||||
from . import models
|
from . import models
|
||||||
|
|
||||||
|
|
||||||
|
class ClearableMultipleFileInput(forms.widgets.ClearableFileInput):
|
||||||
|
allow_multiple_selected = True
|
||||||
|
accept = "image/jpg"
|
||||||
|
|
||||||
|
|
||||||
|
class MultipleFileField(forms.FileField):
|
||||||
|
def __init__(self, *args, **kwargs):
|
||||||
|
kwargs.setdefault("widget", ClearableMultipleFileInput())
|
||||||
|
super().__init__(*args, **kwargs)
|
||||||
|
|
||||||
|
def clean(self, data, initial=None):
|
||||||
|
single_file_clean = super().clean
|
||||||
|
if isinstance(data, (list, tuple)):
|
||||||
|
result = [single_file_clean(d, initial) for d in data]
|
||||||
|
else:
|
||||||
|
result = single_file_clean(data, initial)
|
||||||
|
return result
|
||||||
|
|
||||||
|
|
||||||
class PhotoUploadForm(forms.Form):
|
class PhotoUploadForm(forms.Form):
|
||||||
"""Form to upload multiple photos to a single event."""
|
"""Form to upload multiple photos to a single event.
|
||||||
|
TODO: Check multiple upload
|
||||||
|
"""
|
||||||
error_css_class = 'error'
|
error_css_class = 'error'
|
||||||
required_css_class = 'required'
|
required_css_class = 'required'
|
||||||
photographer = forms.ModelChoiceField(get_user_model().objects.all(),
|
photographer = forms.ModelChoiceField(get_user_model().objects.all(),
|
||||||
required=True, )
|
required=True, )
|
||||||
event = forms.ModelChoiceField(models.Event.objects.all(), required=True, )
|
event = forms.ModelChoiceField(models.Event.objects.all(), required=True, )
|
||||||
upload = forms.FileField(
|
upload = MultipleFileField(
|
||||||
label=_('Images'),
|
label=_('Images'),
|
||||||
required=True,
|
required=True,
|
||||||
widget=forms.widgets.ClearableFileInput(
|
|
||||||
attrs={
|
|
||||||
'multiple': 'multiple',
|
|
||||||
'accept': "image/gif,image/png,image/jpeg"
|
|
||||||
}
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
from django.db.models import Q
|
from django.db.models import Q
|
||||||
from django.http import Http404
|
from django.http import Http404
|
||||||
from django.shortcuts import get_object_or_404
|
from django.shortcuts import get_object_or_404
|
||||||
from django.utils.translation import ugettext as _
|
from django.utils.translation import gettext as _
|
||||||
|
|
||||||
from . import models
|
from . import models
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ from django.db.models import Q
|
|||||||
from django.template.defaultfilters import slugify
|
from django.template.defaultfilters import slugify
|
||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
from django.utils.timezone import now
|
from django.utils.timezone import now
|
||||||
from django.utils.translation import ugettext as _
|
from django.utils.translation import gettext as _
|
||||||
from easy_thumbnails.fields import ThumbnailerImageField
|
from easy_thumbnails.fields import ThumbnailerImageField
|
||||||
|
|
||||||
from utils import COUNTRIES, OverwriteStorage
|
from utils import COUNTRIES, OverwriteStorage
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ from django.http import Http404
|
|||||||
from django.http import HttpResponse
|
from django.http import HttpResponse
|
||||||
from django.shortcuts import redirect, get_object_or_404
|
from django.shortcuts import redirect, get_object_or_404
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
from django.utils.translation import ugettext as _
|
from django.utils.translation import gettext as _
|
||||||
from django.views import generic
|
from django.views import generic
|
||||||
from extra_views import InlineFormSetView
|
from extra_views import InlineFormSetView
|
||||||
from icalendar import Calendar, Event
|
from icalendar import Calendar, Event
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
""" Adds management of the mahong ranking system to the admin interface. """
|
""" Adds management of the mahong ranking system to the admin interface. """
|
||||||
|
|
||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
from django.utils.translation import ugettext as _
|
from django.utils.translation import gettext as _
|
||||||
|
|
||||||
from . import models, set_dirty
|
from . import models, set_dirty
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ Created on 04.10.2011
|
|||||||
"""
|
"""
|
||||||
from django import forms
|
from django import forms
|
||||||
from django.contrib.auth import get_user_model
|
from django.contrib.auth import get_user_model
|
||||||
from django.utils.translation import ugettext as _
|
from django.utils.translation import gettext as _
|
||||||
|
|
||||||
from events.models import Event
|
from events.models import Event
|
||||||
from . import models
|
from . import models
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ from django.core.exceptions import ValidationError
|
|||||||
from django.db import models
|
from django.db import models
|
||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
from django.utils.translation import ugettext as _
|
from django.utils.translation import gettext as _
|
||||||
|
|
||||||
from events.models import Event
|
from events.models import Event
|
||||||
from . import DAN_RANKS_DICT, LOGGER, set_dirty
|
from . import DAN_RANKS_DICT, LOGGER, set_dirty
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ from django.contrib.auth.mixins import LoginRequiredMixin, \
|
|||||||
PermissionRequiredMixin
|
PermissionRequiredMixin
|
||||||
from django.contrib.messages.views import SuccessMessageMixin
|
from django.contrib.messages.views import SuccessMessageMixin
|
||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
from django.utils.translation import ugettext as _
|
from django.utils.translation import gettext as _
|
||||||
from django.views import generic
|
from django.views import generic
|
||||||
|
|
||||||
from events.mixins import EventDetailMixin
|
from events.mixins import EventDetailMixin
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
""" Admin Interface to manipulate the maistar ranking """
|
""" Admin Interface to manipulate the maistar ranking """
|
||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
from django.utils.translation import ugettext as _
|
from django.utils.translation import gettext as _
|
||||||
|
|
||||||
from . import forms, models
|
from . import forms, models
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
"""Django Forms to add and edit Mai-Star games."""
|
"""Django Forms to add and edit Mai-Star games."""
|
||||||
|
|
||||||
from django import forms
|
from django import forms
|
||||||
from django.utils.translation import ugettext as _
|
from django.utils.translation import gettext as _
|
||||||
|
|
||||||
from . import models
|
from . import models
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ from django.db import models
|
|||||||
from django.db.models.signals import post_delete, post_save
|
from django.db.models.signals import post_delete, post_save
|
||||||
from django.dispatch import receiver
|
from django.dispatch import receiver
|
||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
from django.utils.translation import ugettext as _
|
from django.utils.translation import gettext as _
|
||||||
|
|
||||||
from events.models import Event
|
from events.models import Event
|
||||||
from . import settings, managers
|
from . import settings, managers
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ from django.contrib import admin, messages
|
|||||||
from django.contrib.auth.admin import UserAdmin, GroupAdmin
|
from django.contrib.auth.admin import UserAdmin, GroupAdmin
|
||||||
from django.contrib.auth.models import Group
|
from django.contrib.auth.models import Group
|
||||||
from django.core.exceptions import PermissionDenied
|
from django.core.exceptions import PermissionDenied
|
||||||
from django.utils.translation import ugettext as _
|
from django.utils.translation import gettext as _
|
||||||
from easy_thumbnails import fields, widgets
|
from easy_thumbnails import fields, widgets
|
||||||
from membership.models import Membership, ActivationRequest
|
from membership.models import Membership, ActivationRequest
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ from django import forms
|
|||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.contrib import auth
|
from django.contrib import auth
|
||||||
from django.contrib.sites.models import Site
|
from django.contrib.sites.models import Site
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import gettext_lazy as _
|
||||||
from utils.massmailer import MassMailer
|
from utils.massmailer import MassMailer
|
||||||
from . import models
|
from . import models
|
||||||
from content.models import Page
|
from content.models import Page
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ from django.contrib.auth.models import AbstractUser
|
|||||||
from django.db import models
|
from django.db import models
|
||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
from django.utils.translation import ugettext as _
|
from django.utils.translation import gettext as _
|
||||||
from easy_thumbnails.fields import ThumbnailerImageField
|
from easy_thumbnails.fields import ThumbnailerImageField
|
||||||
|
|
||||||
from utils import OverwriteStorage
|
from utils import OverwriteStorage
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ from django.contrib.auth.mixins import LoginRequiredMixin
|
|||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
from django.http import Http404
|
from django.http import Http404
|
||||||
from django.utils.decorators import method_decorator
|
from django.utils.decorators import method_decorator
|
||||||
from django.utils.translation import ugettext as _
|
from django.utils.translation import gettext as _
|
||||||
from django.views import generic
|
from django.views import generic
|
||||||
|
|
||||||
from mahjong_ranking.models import KyuDanRanking, SeasonRanking
|
from mahjong_ranking.models import KyuDanRanking, SeasonRanking
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ Created on 28.09.2011
|
|||||||
@author: christian
|
@author: christian
|
||||||
"""
|
"""
|
||||||
from django.core.files.storage import FileSystemStorage
|
from django.core.files.storage import FileSystemStorage
|
||||||
from django.utils.translation import ugettext as _
|
from django.utils.translation import gettext as _
|
||||||
|
|
||||||
from .countries import COUNTRIES
|
from .countries import COUNTRIES
|
||||||
from .html_cleaner import HtmlCleaner
|
from .html_cleaner import HtmlCleaner
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
"""A list of all approved countries on planet earth, i18n enabled."""
|
"""A list of all approved countries on planet earth, i18n enabled."""
|
||||||
from django.utils.translation import ugettext as _
|
from django.utils.translation import gettext as _
|
||||||
|
|
||||||
COUNTRIES = (
|
COUNTRIES = (
|
||||||
('GB', _('United Kingdom')),
|
('GB', _('United Kingdom')),
|
||||||
|
|||||||
Reference in New Issue
Block a user