From fe69194d2a6f8d91d9af39f77fee6464893eaa85 Mon Sep 17 00:00:00 2001 From: Julien Sana Date: Sat, 4 Mar 2023 23:33:21 +0100 Subject: [PATCH 01/12] =?UTF-8?q?qq=20am=C3=A9liorations=20pour=20django?= =?UTF-8?q?=204=20et=20python=203.11?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + pages/__init__.py | 2 +- pages/admin/__init__.py | 26 +++++++++---------- pages/admin/forms.py | 6 ++--- pages/{app_config.py => apps.py} | 3 ++- pages/models.py | 2 +- pages/placeholders.py | 2 +- pages/plugins/jsonexport/actions.py | 2 +- .../management/commands/pages_export_json.py | 2 +- .../management/commands/pages_import_json.py | 2 +- pages/plugins/jsonexport/utils.py | 2 +- pages/settings.py | 4 +-- pages/testproj/documents/models.py | 2 +- pages/testproj/documents/urls.py | 6 ++--- pages/urlconf_registry.py | 2 +- pages/urls.py | 20 +++++++------- pages/widgets.py | 2 +- pages/widgets_registry.py | 2 +- 18 files changed, 45 insertions(+), 43 deletions(-) rename pages/{app_config.py => apps.py} (60%) diff --git a/.gitignore b/.gitignore index 15d97136..4ef432f6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ mptt/ venv/ +.venv/ tagging/ build/ coverage diff --git a/pages/__init__.py b/pages/__init__.py index cf2096ee..155c1b2a 100644 --- a/pages/__init__.py +++ b/pages/__init__.py @@ -10,5 +10,5 @@ __license__ = 'BSD' __keywords__ = ['django', 'cms'] -default_app_config = 'pages.app_config.BasicCmsConfig' +# default_app_config = 'pages.app_config.BasicCmsConfig' diff --git a/pages/admin/__init__.py b/pages/admin/__init__.py index 16ad9e59..5658c759 100644 --- a/pages/admin/__init__.py +++ b/pages/admin/__init__.py @@ -13,7 +13,7 @@ import urllib from collections import defaultdict from django.contrib import admin -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from django.utils.encoding import force_text from django.conf import settings as global_settings from django.http import HttpResponseRedirect, Http404 @@ -85,29 +85,29 @@ class Media: def get_urls(self): urls = super(PageAdmin, self).get_urls() - from django.conf.urls import url + from django.conf.urls import re_path pages_urls = [ - url(r'^$', self.list_pages, name='page-changelist'), - url(r'^(?P[0-9]+)/traduction/(?P[-\w]+)/$', + re_path(r'^$', self.list_pages, name='page-changelist'), + re_path(r'^(?P[0-9]+)/traduction/(?P[-\w]+)/$', views.traduction, name='page-traduction'), - url(r'^(?P[0-9]+)/get-content/(?P[0-9]+)/$', + re_path(r'^(?P[0-9]+)/get-content/(?P[0-9]+)/$', views.get_content, name='page-get-content'), - url(r'^(?P[0-9]+)/modify-content/(?P[-\w]+)/(?P[-\w]+)/$', + re_path(r'^(?P[0-9]+)/modify-content/(?P[-\w]+)/(?P[-\w]+)/$', views.modify_content, name='page-modify-content'), - url(r'^(?P[0-9]+)/modify-placeholder/$', + re_path(r'^(?P[0-9]+)/modify-placeholder/$', views.modify_placeholder, name='page-modify-placeholder'), - url(r'^(?P[0-9]+)/get-last-content/$', + re_path(r'^(?P[0-9]+)/get-last-content/$', views.get_last_content, name='page-get-last-content'), - url(r'^(?P[0-9]+)/delete-content/(?P[-\w]+)/$', + re_path(r'^(?P[0-9]+)/delete-content/(?P[-\w]+)/$', views.delete_content, name='page-delete-content'), - url(r'^(?P[0-9]+)/sub-menu/$', + re_path(r'^(?P[0-9]+)/sub-menu/$', views.sub_menu, name='page-sub-menu'), - url(r'^(?P[0-9]+)/move-page/$', + re_path(r'^(?P[0-9]+)/move-page/$', views.move_page, name='page-move-page'), - url(r'^(?P[0-9]+)/change-status/$', + re_path(r'^(?P[0-9]+)/change-status/$', views.change_status, name='page-change-status'), - url(r'^(?P[0-9]+)/media-url/$', + re_path(r'^(?P[0-9]+)/media-url/$', views.get_media_url, name='get-media-url'), ] diff --git a/pages/admin/forms.py b/pages/admin/forms.py index 7379605d..dbb4135a 100644 --- a/pages/admin/forms.py +++ b/pages/admin/forms.py @@ -2,7 +2,7 @@ """Page CMS forms""" from django import forms from django.template.defaultfilters import slugify -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from django.conf import settings as global_settings from pages import settings @@ -10,7 +10,7 @@ from pages.urlconf_registry import get_choices from pages.widgets import LanguageChoiceWidget -import collections +import collections.abc error_dict = { 'another_page_error': _('Another page with this slug already exists'), @@ -23,7 +23,7 @@ def automatic_slug_renaming(slug, is_slug_safe): """Helper to add numbers to slugs""" - if not isinstance(is_slug_safe, collections.Callable): + if not isinstance(is_slug_safe, collections.abc.Callable): raise TypeError('is_slug_safe must be callable') if is_slug_safe(slug): diff --git a/pages/app_config.py b/pages/apps.py similarity index 60% rename from pages/app_config.py rename to pages/apps.py index f34932b8..060b49b5 100644 --- a/pages/app_config.py +++ b/pages/apps.py @@ -1,8 +1,9 @@ from django.apps import AppConfig -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ class BasicCmsConfig(AppConfig): + default_auto_field = 'django.db.models.AutoField' name = 'pages' verbose_name = _("Pages") diff --git a/pages/models.py b/pages/models.py index 3fb7f99e..93c4d57d 100644 --- a/pages/models.py +++ b/pages/models.py @@ -11,7 +11,7 @@ from django.db import models from django.conf import settings as django_settings -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from django.utils.safestring import mark_safe from django.urls import reverse from django.conf import settings as global_settings diff --git a/pages/placeholders.py b/pages/placeholders.py index fa04378f..0dfe9128 100644 --- a/pages/placeholders.py +++ b/pages/placeholders.py @@ -13,7 +13,7 @@ from django.forms import Textarea, ImageField, CharField, FileField from django.forms import TextInput from django.conf import settings as global_settings -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from django.utils.safestring import mark_safe from django.utils.text import unescape_string_literal from django.template.loader import render_to_string diff --git a/pages/plugins/jsonexport/actions.py b/pages/plugins/jsonexport/actions.py index e53add7b..4faf8d1e 100644 --- a/pages/plugins/jsonexport/actions.py +++ b/pages/plugins/jsonexport/actions.py @@ -1,4 +1,4 @@ -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from django.http import HttpResponse from django.db import transaction from django.shortcuts import render diff --git a/pages/plugins/jsonexport/management/commands/pages_export_json.py b/pages/plugins/jsonexport/management/commands/pages_export_json.py index ea78acdf..610f0ada 100644 --- a/pages/plugins/jsonexport/management/commands/pages_export_json.py +++ b/pages/plugins/jsonexport/management/commands/pages_export_json.py @@ -1,4 +1,4 @@ -from django.utils.translation import ugettext as _ +from django.utils.translation import gettext as _ from django.core.management.base import BaseCommand, CommandError from pages.plugins.jsonexport.utils import (pages_to_json, monkeypatch_remove_pages_site_restrictions) diff --git a/pages/plugins/jsonexport/management/commands/pages_import_json.py b/pages/plugins/jsonexport/management/commands/pages_import_json.py index a98aec24..5e2761ab 100644 --- a/pages/plugins/jsonexport/management/commands/pages_import_json.py +++ b/pages/plugins/jsonexport/management/commands/pages_import_json.py @@ -1,4 +1,4 @@ -from django.utils.translation import ugettext as _ +from django.utils.translation import gettext as _ from django.core.management.base import BaseCommand, CommandError from django.contrib.auth import get_user_model from pages.plugins.jsonexport.utils import (json_to_pages, diff --git a/pages/plugins/jsonexport/utils.py b/pages/plugins/jsonexport/utils.py index b6551562..1863dcd2 100644 --- a/pages/plugins/jsonexport/utils.py +++ b/pages/plugins/jsonexport/utils.py @@ -1,5 +1,5 @@ from django.db.models import Max -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from django.contrib.sites.models import Site from django.conf import settings as global_settings from django.contrib.auth import get_user_model diff --git a/pages/settings.py b/pages/settings.py index f34303ee..8ad5a14b 100644 --- a/pages/settings.py +++ b/pages/settings.py @@ -4,7 +4,7 @@ the appropriate settings.""" from django.conf import settings from django.core.exceptions import ImproperlyConfigured -import collections +import collections.abc url = 'http://packages.python.org/django-page-cms/settings-list.html#%s' @@ -52,7 +52,7 @@ def get_page_templates(): """The callable that is used by the CMS.""" PAGE_TEMPLATES = get_setting('PAGE_TEMPLATES', default_value=()) - if isinstance(PAGE_TEMPLATES, collections.Callable): + if isinstance(PAGE_TEMPLATES, collections.abc.Callable): return PAGE_TEMPLATES() else: return PAGE_TEMPLATES diff --git a/pages/testproj/documents/models.py b/pages/testproj/documents/models.py index 5b37fafa..e9fc298c 100644 --- a/pages/testproj/documents/models.py +++ b/pages/testproj/documents/models.py @@ -1,7 +1,7 @@ from django.db import models from django.forms import ModelForm from pages.models import Page -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ class Document(models.Model): diff --git a/pages/testproj/documents/urls.py b/pages/testproj/documents/urls.py index 0852d282..8bfaaa9c 100644 --- a/pages/testproj/documents/urls.py +++ b/pages/testproj/documents/urls.py @@ -1,7 +1,7 @@ -from django.conf.urls import url +from django.conf.urls import re_path from pages.testproj.documents.views import document_view urlpatterns = [ - url(r'^doc-(?P[0-9]+)$', document_view, name='document_details'), - url(r'^$', document_view, name='document_root'), + re_path(r'^doc-(?P[0-9]+)$', document_view, name='document_details'), + re_path(r'^$', document_view, name='document_root'), ] diff --git a/pages/urlconf_registry.py b/pages/urlconf_registry.py index b49f9423..43510334 100644 --- a/pages/urlconf_registry.py +++ b/pages/urlconf_registry.py @@ -1,5 +1,5 @@ """Django page CMS urlconf registry.""" -from django.utils.translation import ugettext as _ +from django.utils.translation import gettext as _ class UrlconfAlreadyRegistered(Exception): diff --git a/pages/urls.py b/pages/urls.py index 7add6eef..a37b49d8 100644 --- a/pages/urls.py +++ b/pages/urls.py @@ -1,6 +1,6 @@ """Django page CMS urls module.""" -from django.conf.urls import url +from django.conf.urls import re_path from pages import views from pages import settings @@ -13,21 +13,21 @@ print("API not present because of import error: %s" % detail) else: urlpatterns += [ - url(r'^api/$', api.PageList.as_view()), - url(r'^api/pages/$', api.PageList.as_view()), - url(r'^api/pages/(?P[0-9]+)/$', api.PageEdit.as_view()), - url(r'^api/contents/$', api.ContentList.as_view()), - url(r'^api/contents/(?P[0-9]+)/$', api.ContentEdit.as_view()) + re_path(r'^api/$', api.PageList.as_view()), + re_path(r'^api/pages/$', api.PageList.as_view()), + re_path(r'^api/pages/(?P[0-9]+)/$', api.PageEdit.as_view()), + re_path(r'^api/contents/$', api.ContentList.as_view()), + re_path(r'^api/contents/(?P[0-9]+)/$', api.ContentEdit.as_view()) ] if settings.PAGE_USE_LANGUAGE_PREFIX: urlpatterns += [ - url(r'^(?P[-\w]+)/(?P.*)$', views.details, + re_path(r'^(?P[-\w]+)/(?P.*)$', views.details, name='pages-details-by-path'), - url(r'^$', views.details, {'path': '', 'name': 'pages-root'}), + re_path(r'^$', views.details, {'path': '', 'name': 'pages-root'}), ] else: urlpatterns += [ - url(r'^(?P.*)$', views.details, name='pages-details-by-path'), - url(r'^$', views.details, {'path': '', 'name': 'pages-root'}), + re_path(r'^(?P.*)$', views.details, name='pages-details-by-path'), + re_path(r'^$', views.details, {'path': '', 'name': 'pages-root'}), ] diff --git a/pages/widgets.py b/pages/widgets.py index ea65ea98..424cf968 100755 --- a/pages/widgets.py +++ b/pages/widgets.py @@ -15,7 +15,7 @@ from django.contrib.admin.widgets import AdminTextareaWidget from django.utils.safestring import mark_safe from django.template.loader import render_to_string -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from os.path import join diff --git a/pages/widgets_registry.py b/pages/widgets_registry.py index 0e8e0be1..a8449af8 100644 --- a/pages/widgets_registry.py +++ b/pages/widgets_registry.py @@ -1,5 +1,5 @@ """Django page CMS widget registry.""" -from django.utils.translation import ugettext as _ +from django.utils.translation import gettext as _ __all__ = ('register_widget',) From c450ec52932b84a714702925b4b430d465f690e1 Mon Sep 17 00:00:00 2001 From: Julien Sana Date: Sun, 5 Mar 2023 22:16:06 +0100 Subject: [PATCH 02/12] retrait limite version django --- setup.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 44a27311..a5604724 100644 --- a/setup.py +++ b/setup.py @@ -42,7 +42,8 @@ def local_open(fname): download_url = url_schema % (package_name, package_name, pages.__version__) install_requires = [ - 'Django>=2.1.5,<4', + # 'Django>=2.1.5,<4', + 'Django>=2.1.5', 'django-mptt>=0.9', 'django-taggit>=1.1.0', 'Pillow>=3.2', From 99e69a6a41a2a28c20867add7b08e137c1e59aad Mon Sep 17 00:00:00 2001 From: Julien Sana Date: Sun, 5 Mar 2023 22:16:52 +0100 Subject: [PATCH 03/12] ajout search CBV et tags facets --- example/templates/search/search.html | 30 ++++++++++++++++++++++++++++ example/views.py | 12 +++++++++++ pages/search_indexes.py | 7 ++++++- 3 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 example/views.py diff --git a/example/templates/search/search.html b/example/templates/search/search.html index 1c0d0b42..d4512d18 100644 --- a/example/templates/search/search.html +++ b/example/templates/search/search.html @@ -7,6 +7,36 @@

Search results