From 278be8482a4bb28db57af3f459a66d97ca8cc8d7 Mon Sep 17 00:00:00 2001 From: Angelo Dini Date: Tue, 15 Feb 2022 15:23:07 +0100 Subject: [PATCH 1/2] add support for Django 3.2 --- CHANGELOG.rst | 31 ------------------- README.rst | 4 +-- aldryn_config.py | 2 +- aldryn_redirects/__init__.py | 2 -- aldryn_redirects/admin.py | 16 +++++----- aldryn_redirects/apps.py | 1 - aldryn_redirects/forms.py | 4 +-- aldryn_redirects/importers.py | 8 ++--- aldryn_redirects/managers.py | 2 -- aldryn_redirects/middleware.py | 5 ++- aldryn_redirects/migrations/0001_initial.py | 7 ++--- .../0002_on_delete_and_verbose_names.py | 6 +--- .../migrations/0003_auto_20171206_1150.py | 6 +--- .../migrations/0004_auto_20171208_1702.py | 3 -- aldryn_redirects/models.py | 17 +++++----- .../south_migrations/0001_initial.py | 1 - aldryn_redirects/validators.py | 5 ++- setup.py | 1 - tests/settings.py | 5 ++- tests/test_importers.py | 3 +- tests/test_managers.py | 3 +- tests/test_middleware.py | 3 +- tests/test_models.py | 3 +- 23 files changed, 37 insertions(+), 101 deletions(-) delete mode 100644 CHANGELOG.rst diff --git a/CHANGELOG.rst b/CHANGELOG.rst deleted file mode 100644 index 134c3c8..0000000 --- a/CHANGELOG.rst +++ /dev/null @@ -1,31 +0,0 @@ -CHANGELOG -========= - -1.2.1 (2017-09-13) ------------------- - -* Added import / export of redirect entries -* Minor Python 3 compatibility adjustments - - -1.2.0 (2017-06-08) ------------------- - -* Changed the redirect lookup to ignore GET parameters - - -1.1.0 (2017-03-21) ------------------- - -* Switch from `process_response` to `process_request` in middleware: - Changes from a "fallback" middleware that only acted on 404s to an - eager middleware, trying to redirect all requests (including such - to / without language prefix) - - -1.0.0 (2016-02-23) ------------------- - -* Django 1.7/1.8/1.9 compatibility -* Switch from django-hvad to django-parler -* ui tweaks and fixes diff --git a/README.rst b/README.rst index fcd8aba..a08dbc4 100644 --- a/README.rst +++ b/README.rst @@ -55,8 +55,8 @@ INSTALLED_APPS += [ 'aldryn_redirects' ] -# add the middleware somewhere near the top of MIDDLEWARE_CLASSES +# add the middleware somewhere near the top of MIDDLEWARE -MIDDLEWARE_CLASSES.insert( +MIDDLEWARE.insert( 0, 'aldryn_redirects.middleware.RedirectFallbackMiddleware') ``` diff --git a/aldryn_config.py b/aldryn_config.py index 0a1eabc..d6f6ca1 100644 --- a/aldryn_config.py +++ b/aldryn_config.py @@ -4,5 +4,5 @@ class Form(forms.BaseForm): def to_settings(self, data, settings): # No need to setup django-parler. That is already done in aldryn-django-cms - settings['MIDDLEWARE_CLASSES'].insert(0, 'aldryn_redirects.middleware.RedirectFallbackMiddleware') + settings['MIDDLEWARE'].insert(0, 'aldryn_redirects.middleware.RedirectFallbackMiddleware') return settings diff --git a/aldryn_redirects/__init__.py b/aldryn_redirects/__init__.py index 0da63e9..0f4c166 100644 --- a/aldryn_redirects/__init__.py +++ b/aldryn_redirects/__init__.py @@ -1,5 +1,3 @@ -# -*- coding: utf-8 -*- __version__ = '1.3.7' - default_app_config = 'aldryn_redirects.apps.AldrynRedirects' diff --git a/aldryn_redirects/admin.py b/aldryn_redirects/admin.py index f4ab150..49b345c 100644 --- a/aldryn_redirects/admin.py +++ b/aldryn_redirects/admin.py @@ -1,14 +1,12 @@ -from __future__ import unicode_literals - from tablib import Dataset from django.conf import settings from django.contrib import admin, messages -from django.core.urlresolvers import reverse +from django.urls import reverse from django.http import HttpResponse from django.shortcuts import redirect, render from django.utils import timezone -from django.utils.translation import ugettext_lazy as _, ugettext +from django.utils.translation import gettext_lazy as _, gettext from parler.admin import TranslatableAdmin @@ -18,7 +16,7 @@ from .models import Redirect, StaticRedirect, StaticRedirectInboundRouteQueryParam -class DeletionMixin(object): +class DeletionMixin(): actions = ['delete_selected'] def delete_selected(self, request, queryset): @@ -118,8 +116,8 @@ def import_view(self, request): 'root_path': reverse('admin:index'), 'current_app': self.admin_site.name, 'app_label': opts.app_label, - 'title': ugettext('Import redirects'), - 'original': ugettext('Import redirects'), + 'title': gettext('Import redirects'), + 'original': gettext('Import redirects'), 'errors': form.errors, } return render(request, 'admin/aldryn_redirects/redirect/import_form.html', context) @@ -211,8 +209,8 @@ def import_view(self, request): 'root_path': reverse('admin:index'), 'current_app': self.admin_site.name, 'app_label': opts.app_label, - 'title': ugettext('Import redirects'), - 'original': ugettext('Import redirects'), + 'title': gettext('Import redirects'), + 'original': gettext('Import redirects'), 'errors': form.errors, } return render(request, 'admin/aldryn_redirects/staticredirect/import_form.html', context) diff --git a/aldryn_redirects/apps.py b/aldryn_redirects/apps.py index 48e4d0b..8bcdf26 100644 --- a/aldryn_redirects/apps.py +++ b/aldryn_redirects/apps.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from django.apps import AppConfig diff --git a/aldryn_redirects/forms.py b/aldryn_redirects/forms.py index 5b3bb05..b84c873 100644 --- a/aldryn_redirects/forms.py +++ b/aldryn_redirects/forms.py @@ -1,10 +1,8 @@ -from __future__ import unicode_literals - from tablib import Dataset from django import forms from django.core.exceptions import ValidationError -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from .importers import RedirectImporter, StaticRedirectImporter diff --git a/aldryn_redirects/importers.py b/aldryn_redirects/importers.py index 65f1dfe..c82322b 100644 --- a/aldryn_redirects/importers.py +++ b/aldryn_redirects/importers.py @@ -2,13 +2,13 @@ from django.contrib.sites.models import Site from django.core.exceptions import ValidationError -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from .models import Redirect, StaticRedirect from .utils import get_query_params_dict, remove_query_params -class FlattenErrorMixin(object): +class FlattenErrorMixin(): def flatten_error(self, e): result = [] @@ -19,7 +19,7 @@ def flatten_error(self, e): return '\n'.join(result) -class RedirectImporter(FlattenErrorMixin, object): +class RedirectImporter(FlattenErrorMixin): def __init__(self): self.sites_per_domain = {site.domain: site for site in Site.objects.all()} @@ -92,7 +92,7 @@ def validate_row(self, row): raise ValidationError(self.flatten_error(e)) -class StaticRedirectImporter(FlattenErrorMixin, object): +class StaticRedirectImporter(FlattenErrorMixin): def __init__(self): self.sites_per_domain = {site.domain: site for site in Site.objects.all()} diff --git a/aldryn_redirects/managers.py b/aldryn_redirects/managers.py index 8d4fbbb..90eccd7 100644 --- a/aldryn_redirects/managers.py +++ b/aldryn_redirects/managers.py @@ -1,5 +1,3 @@ -from __future__ import unicode_literals - from django.conf import settings from django.db import models diff --git a/aldryn_redirects/middleware.py b/aldryn_redirects/middleware.py index c7a5ac9..ce0e469 100644 --- a/aldryn_redirects/middleware.py +++ b/aldryn_redirects/middleware.py @@ -1,14 +1,13 @@ -from __future__ import unicode_literals - from django import http from django.conf import settings from django.contrib.sites.models import Site from django.db.models import Q +from django.utils.deprecation import MiddlewareMixin from .models import Redirect, StaticRedirect -class RedirectFallbackMiddleware(object): +class RedirectFallbackMiddleware(MiddlewareMixin): def process_request(self, request): static_redirect = StaticRedirect.objects.get_for_request(request) if static_redirect: diff --git a/aldryn_redirects/migrations/0001_initial.py b/aldryn_redirects/migrations/0001_initial.py index ccd3c35..2f67039 100644 --- a/aldryn_redirects/migrations/0001_initial.py +++ b/aldryn_redirects/migrations/0001_initial.py @@ -1,6 +1,3 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - from django.db import migrations, models @@ -16,7 +13,7 @@ class Migration(migrations.Migration): fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('old_path', models.CharField(help_text="This should be an absolute path, excluding the domain name. Example: '/events/search/'.", max_length=200, verbose_name='redirect from', db_index=True)), - ('site', models.ForeignKey(related_name='redirects_hvad_set', to='sites.Site')), + ('site', models.ForeignKey(related_name='redirects_hvad_set', to='sites.Site', on_delete=models.deletion.CASCADE)), ], options={ 'ordering': ('old_path',), @@ -30,7 +27,7 @@ class Migration(migrations.Migration): ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('new_path', models.CharField(help_text="This can be either an absolute path (as above) or a full URL starting with 'http://'.", max_length=200, verbose_name='redirect to', blank=True)), ('language_code', models.CharField(max_length=15, db_index=True)), - ('master', models.ForeignKey(related_name='translations', editable=False, to='aldryn_redirects.Redirect', null=True)), + ('master', models.ForeignKey(related_name='translations', editable=False, to='aldryn_redirects.Redirect', null=True, on_delete=models.deletion.CASCADE)), ], options={ 'managed': True, diff --git a/aldryn_redirects/migrations/0002_on_delete_and_verbose_names.py b/aldryn_redirects/migrations/0002_on_delete_and_verbose_names.py index d5a4e4a..bb0d8c5 100644 --- a/aldryn_redirects/migrations/0002_on_delete_and_verbose_names.py +++ b/aldryn_redirects/migrations/0002_on_delete_and_verbose_names.py @@ -1,9 +1,5 @@ -# -*- coding: utf-8 -*- # Generated by Django 1.9.2 on 2016-02-22 08:03 -from __future__ import unicode_literals - from django.db import migrations, models -import django.db.models.deletion class Migration(migrations.Migration): @@ -20,7 +16,7 @@ class Migration(migrations.Migration): migrations.AlterField( model_name='redirect', name='site', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='aldryn_redirects_redirect_set', to='sites.Site'), + field=models.ForeignKey(on_delete=models.deletion.CASCADE, related_name='aldryn_redirects_redirect_set', to='sites.Site'), ), migrations.AlterField( model_name='redirecttranslation', diff --git a/aldryn_redirects/migrations/0003_auto_20171206_1150.py b/aldryn_redirects/migrations/0003_auto_20171206_1150.py index 080b1f9..74879ad 100644 --- a/aldryn_redirects/migrations/0003_auto_20171206_1150.py +++ b/aldryn_redirects/migrations/0003_auto_20171206_1150.py @@ -1,10 +1,6 @@ -# -*- coding: utf-8 -*- # Generated by Django 1.11.8 on 2017-12-06 13:50 -from __future__ import unicode_literals - import aldryn_redirects.validators from django.db import migrations, models -import django.db.models.deletion class Migration(migrations.Migration): @@ -34,7 +30,7 @@ class Migration(migrations.Migration): ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('key', models.CharField(max_length=255, verbose_name='Key')), ('value', models.CharField(blank=True, max_length=255, verbose_name='Value')), - ('static_redirect', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='query_params', to='aldryn_redirects.StaticRedirect')), + ('static_redirect', models.ForeignKey(on_delete=models.deletion.CASCADE, related_name='query_params', to='aldryn_redirects.StaticRedirect')), ], ), migrations.AlterModelOptions( diff --git a/aldryn_redirects/migrations/0004_auto_20171208_1702.py b/aldryn_redirects/migrations/0004_auto_20171208_1702.py index e664fda..e8ca22b 100644 --- a/aldryn_redirects/migrations/0004_auto_20171208_1702.py +++ b/aldryn_redirects/migrations/0004_auto_20171208_1702.py @@ -1,7 +1,4 @@ -# -*- coding: utf-8 -*- # Generated by Django 1.11.8 on 2017-12-08 19:02 -from __future__ import unicode_literals - from django.db import migrations, models diff --git a/aldryn_redirects/models.py b/aldryn_redirects/models.py index 5ac35b2..8c4f996 100644 --- a/aldryn_redirects/models.py +++ b/aldryn_redirects/models.py @@ -1,10 +1,7 @@ -from __future__ import unicode_literals - from django.db import models from django.contrib.sites.models import Site -from django.core.urlresolvers import reverse -from django.utils.encoding import python_2_unicode_compatible -from django.utils.translation import ugettext_lazy as _, ugettext +from django.urls import reverse +from django.utils.translation import gettext_lazy as _, gettext from parler.models import TranslatableModel, TranslatedFields from six.moves.urllib.parse import urlparse, urljoin @@ -14,10 +11,12 @@ from .validators import validate_inbound_route, validate_outbound_route -@python_2_unicode_compatible class Redirect(TranslatableModel): site = models.ForeignKey( - Site, related_name='aldryn_redirects_redirect_set') + Site, + related_name='aldryn_redirects_redirect_set', + on_delete=models.deletion.CASCADE, + ) old_path = models.CharField( _('redirect from'), max_length=400, db_index=True, help_text=_( @@ -47,7 +46,7 @@ def __str__(self): for t in self.translations.all() ]) if not new_paths: - new_paths = ugettext('None') + new_paths = gettext('None') return "{} ---> {}".format(self.old_path or 'None', new_paths) @@ -94,7 +93,7 @@ def get_full_inbound_route(self): class StaticRedirectInboundRouteQueryParam(models.Model): - static_redirect = models.ForeignKey(StaticRedirect, related_name='query_params', on_delete=models.CASCADE) + static_redirect = models.ForeignKey(StaticRedirect, related_name='query_params', on_delete=models.deletion.CASCADE) key = models.CharField(_('Key'), max_length=255) value = models.CharField(_('Value'), max_length=255, blank=True) diff --git a/aldryn_redirects/south_migrations/0001_initial.py b/aldryn_redirects/south_migrations/0001_initial.py index e68cc36..b786b88 100644 --- a/aldryn_redirects/south_migrations/0001_initial.py +++ b/aldryn_redirects/south_migrations/0001_initial.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- import datetime from south.db import db from south.v2 import SchemaMigration diff --git a/aldryn_redirects/validators.py b/aldryn_redirects/validators.py index 0db52f1..1c73fbb 100644 --- a/aldryn_redirects/validators.py +++ b/aldryn_redirects/validators.py @@ -1,9 +1,8 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals, print_function, division +from __future__ import print_function, division import re from django.core.exceptions import ValidationError -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from six.moves.urllib.parse import urlparse diff --git a/setup.py b/setup.py index ee2195f..2771be1 100644 --- a/setup.py +++ b/setup.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from setuptools import setup, find_packages from aldryn_redirects import __version__ diff --git a/tests/settings.py b/tests/settings.py index 9a0fa81..9324015 100644 --- a/tests/settings.py +++ b/tests/settings.py @@ -1,9 +1,8 @@ #!/usr/bin/env python -# -*- coding: utf-8 -*- -from __future__ import unicode_literals, print_function, division +from __future__ print_function, division HELPER_SETTINGS = { - 'MIDDLEWARE_CLASSES': [ + 'MIDDLEWARE': [ 'aldryn_redirects.middleware.RedirectFallbackMiddleware', ], 'INSTALLED_APPS': [ diff --git a/tests/test_importers.py b/tests/test_importers.py index 03df771..7835189 100644 --- a/tests/test_importers.py +++ b/tests/test_importers.py @@ -1,5 +1,4 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals, print_function, division +from __future__ import print_function, division from django.contrib.sites.models import Site from django.core.exceptions import ValidationError diff --git a/tests/test_managers.py b/tests/test_managers.py index a9ddef3..50cc77e 100644 --- a/tests/test_managers.py +++ b/tests/test_managers.py @@ -1,5 +1,4 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals, print_function, division +from __future__ import print_function, division from django.contrib.sites.models import Site from django.test import TestCase diff --git a/tests/test_middleware.py b/tests/test_middleware.py index e37adbf..02a078f 100644 --- a/tests/test_middleware.py +++ b/tests/test_middleware.py @@ -1,5 +1,4 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals, print_function, division +from __future__ import print_function, division from django.contrib.sites.models import Site from django.test import TestCase diff --git a/tests/test_models.py b/tests/test_models.py index ee3a931..0c29cb0 100644 --- a/tests/test_models.py +++ b/tests/test_models.py @@ -1,5 +1,4 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals, print_function, division +from __future__ import print_function, division from django.contrib.sites.models import Site from django.core.exceptions import ValidationError From 5ae0b6b90b422a5b209206bdff65bdb4093475b5 Mon Sep 17 00:00:00 2001 From: Angelo Dini Date: Tue, 15 Feb 2022 15:23:37 +0100 Subject: [PATCH 2/2] set version to 1.4.0 --- aldryn_redirects/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aldryn_redirects/__init__.py b/aldryn_redirects/__init__.py index 0f4c166..6c5cd89 100644 --- a/aldryn_redirects/__init__.py +++ b/aldryn_redirects/__init__.py @@ -1,3 +1,3 @@ -__version__ = '1.3.7' +__version__ = '1.4.0' default_app_config = 'aldryn_redirects.apps.AldrynRedirects'