From 2793ff083034950dcee5ab95a2df05a5ade896ae Mon Sep 17 00:00:00 2001 From: bastb Date: Tue, 3 Dec 2019 08:16:14 +0100 Subject: [PATCH 1/4] Fixes the Django 3.0 `six` issue --- avatar/models.py | 7 ++++++- avatar/utils.py | 7 ++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/avatar/models.py b/avatar/models.py index 5b836fc..6b2c935 100644 --- a/avatar/models.py +++ b/avatar/models.py @@ -11,7 +11,6 @@ from django.core.files.storage import get_storage_class from django.utils.module_loading import import_string from django.utils.translation import ugettext_lazy as _ from django.utils.encoding import force_text -from django.utils import six from django.db.models import signals from avatar.conf import settings @@ -22,6 +21,12 @@ try: except ImportError: now = datetime.datetime.now +# Issue 182: six no longer included with Django 3.0 +try: + from django.utils import six +except ImportError: + import six + avatar_storage = get_storage_class(settings.AVATAR_STORAGE)() diff --git a/avatar/utils.py b/avatar/utils.py index 38db5b3..52baed6 100644 --- a/avatar/utils.py +++ b/avatar/utils.py @@ -1,7 +1,6 @@ import hashlib from django.core.cache import cache -from django.utils import six from django.template.defaultfilters import slugify try: @@ -9,6 +8,12 @@ try: except ImportError: force_bytes = str +# Issue 182: six no longer included with Django 3.0 +try: + from django.utils import six +except ImportError: + import six + from django.contrib.auth import get_user_model from avatar.conf import settings From 6a2c361502c19f46ab1f3d9d8fc5f73a55eb4dc9 Mon Sep 17 00:00:00 2001 From: bastb Date: Tue, 3 Dec 2019 15:37:01 +0100 Subject: [PATCH 2/4] Additional fixes for Django 3 --- avatar/admin.py | 6 +++++- avatar/forms.py | 6 +++++- avatar/templatetags/avatar_tags.py | 6 +++++- avatar/views.py | 7 +++++-- 4 files changed, 20 insertions(+), 5 deletions(-) diff --git a/avatar/admin.py b/avatar/admin.py index 98d833e..a47f74b 100644 --- a/avatar/admin.py +++ b/avatar/admin.py @@ -1,6 +1,10 @@ from django.contrib import admin +# Issue 182: six no longer included with Django 3.0 +try: + from django.utils import six +except ImportError: + import six from django.utils.translation import ugettext_lazy as _ -from django.utils import six from django.template.loader import render_to_string from avatar.models import Avatar diff --git a/avatar/forms.py b/avatar/forms.py index c52b42a..4c6b6e9 100644 --- a/avatar/forms.py +++ b/avatar/forms.py @@ -2,8 +2,12 @@ import os from django import forms from django.forms import widgets -from django.utils import six from django.utils.safestring import mark_safe +# Issue 182: six no longer included with Django 3.0 +try: + from django.utils import six +except ImportError: + import six from django.utils.translation import ugettext_lazy as _ from django.template.defaultfilters import filesizeformat diff --git a/avatar/templatetags/avatar_tags.py b/avatar/templatetags/avatar_tags.py index 7626e0c..b8beb75 100644 --- a/avatar/templatetags/avatar_tags.py +++ b/avatar/templatetags/avatar_tags.py @@ -5,7 +5,11 @@ except ImportError: # For Django < 1.10 from django.core.urlresolvers import reverse from django.template.loader import render_to_string -from django.utils import six +# Issue 182: six no longer included with Django 3.0 +try: + from django.utils import six +except ImportError: + import six from django.utils.translation import ugettext as _ from django.utils.module_loading import import_string diff --git a/avatar/views.py b/avatar/views.py index 4796a42..8221b2f 100644 --- a/avatar/views.py +++ b/avatar/views.py @@ -1,7 +1,10 @@ from django.shortcuts import render, redirect -from django.utils import six from django.utils.translation import ugettext as _ - +# Issue 182: six no longer included with Django 3.0 +try: + from django.utils import six +except ImportError: + import six from django.contrib import messages from django.contrib.auth.decorators import login_required From 4ab2b379e71ecf2679093354166f703c2340b334 Mon Sep 17 00:00:00 2001 From: bastb Date: Tue, 3 Dec 2019 15:41:20 +0100 Subject: [PATCH 3/4] Autocorrect --- avatar/forms.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/avatar/forms.py b/avatar/forms.py index 4c6b6e9..686ae68 100644 --- a/avatar/forms.py +++ b/avatar/forms.py @@ -3,6 +3,7 @@ import os from django import forms from django.forms import widgets from django.utils.safestring import mark_safe + # Issue 182: six no longer included with Django 3.0 try: from django.utils import six @@ -24,7 +25,6 @@ def avatar_img(avatar, size): class UploadAvatarForm(forms.Form): - avatar = forms.ImageField(label=_("avatar")) def __init__(self, *args, **kwargs): @@ -40,17 +40,16 @@ class UploadAvatarForm(forms.Form): valid_exts = ", ".join(settings.AVATAR_ALLOWED_FILE_EXTS) error = _("%(ext)s is an invalid file extension. " "Authorized extensions are : %(valid_exts_list)s") - raise forms.ValidationError(error % - {'ext': ext, + raise forms.ValidationError(error + % {'ext': ext, 'valid_exts_list': valid_exts}) if data.size > settings.AVATAR_MAX_SIZE: error = _("Your file is too big (%(size)s), " "the maximum allowed size is %(max_valid_size)s") - raise forms.ValidationError(error % { - 'size': filesizeformat(data.size), - 'max_valid_size': filesizeformat(settings.AVATAR_MAX_SIZE) - }) + raise forms.ValidationError(error + % {'size': filesizeformat(data.size), + 'max_valid_size': filesizeformat(settings.AVATAR_MAX_SIZE)}) count = Avatar.objects.filter(user=self.user).count() if (settings.AVATAR_MAX_AVATARS_PER_USER > 1 and From 805920e521c1ba44159b65bcc9bd6dbb60901c11 Mon Sep 17 00:00:00 2001 From: bastb Date: Tue, 3 Dec 2019 15:43:31 +0100 Subject: [PATCH 4/4] Yet another attempt --- avatar/forms.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/avatar/forms.py b/avatar/forms.py index 686ae68..9fa9f0b 100644 --- a/avatar/forms.py +++ b/avatar/forms.py @@ -52,8 +52,7 @@ class UploadAvatarForm(forms.Form): 'max_valid_size': filesizeformat(settings.AVATAR_MAX_SIZE)}) count = Avatar.objects.filter(user=self.user).count() - if (settings.AVATAR_MAX_AVATARS_PER_USER > 1 and - count >= settings.AVATAR_MAX_AVATARS_PER_USER): + if 1 < settings.AVATAR_MAX_AVATARS_PER_USER <= count: error = _("You already have %(nb_avatars)d avatars, " "and the maximum allowed is %(nb_max_avatars)d.") raise forms.ValidationError(error % {