From 69e956942fc7fd0af7fea0d6dfc71d4cddaccd7e Mon Sep 17 00:00:00 2001 From: Maarten van Gompel Date: Fri, 17 Dec 2021 14:20:43 +0100 Subject: [PATCH] Implementing support for Django 4, dropping support for Django 1 and 2 #181 --- flat/modes/editor/urls.py | 27 ++++------- flat/modes/metadata/urls.py | 12 +---- flat/modes/structureeditor/urls.py | 13 ++--- flat/modes/viewer/urls.py | 17 ++----- flat/urls.py | 77 +++++++++++++----------------- requires.txt | 2 +- setup.py | 2 +- 7 files changed, 54 insertions(+), 96 deletions(-) diff --git a/flat/modes/editor/urls.py b/flat/modes/editor/urls.py index 635c3c9a..9cadffe1 100644 --- a/flat/modes/editor/urls.py +++ b/flat/modes/editor/urls.py @@ -1,28 +1,21 @@ #from django.conf.urls import patterns, include, url from django import VERSION -if VERSION[0] > 1 or VERSION[1] >= 8: #Django 1.8 and higher - from django.conf.urls import url, include -elif VERSION[1] >= 6: #Django 1.6 - from django.conf.urls import patterns, url, include -else: - from django.conf.urls.defaults import * +from django.urls import re_path, include import flat.modes.editor.views urlpatterns = [ # Examples: - url(r'^pub/(?P[\w\d\-_\./@]+)/(?P[\w\d\-_\.]+)/?$', flat.modes.editor.views.pub_view, name='view'), - url(r'^(?P[\w\d\-_\./@]+)/(?P[\w\d\-_\.]+)/history/?$', flat.modes.editor.views.history, name='history'), - url(r'^(?P[\w\d\-_\./@]+)/(?P[\w\d\-_\.]+)/revert/(?P[a-f0-9]*)/?$', flat.modes.editor.views.revert, name='revert'), - url(r'^(?P[\w\d\-_\./@]+)/(?P[\w\d\-_\.]+)/save/?$', flat.modes.editor.views.save, name='save'), - url(r'^(?P[\w\d\-_\./@]+)/(?P[\w\d\-_\.]+)/?$', flat.modes.editor.views.view, name='view'), + re_path(r'^pub/(?P[\w\d\-_\./@]+)/(?P[\w\d\-_\.]+)/?$', flat.modes.editor.views.pub_view, name='view'), + re_path(r'^(?P[\w\d\-_\./@]+)/(?P[\w\d\-_\.]+)/history/?$', flat.modes.editor.views.history, name='history'), + re_path(r'^(?P[\w\d\-_\./@]+)/(?P[\w\d\-_\.]+)/revert/(?P[a-f0-9]*)/?$', flat.modes.editor.views.revert, name='revert'), + re_path(r'^(?P[\w\d\-_\./@]+)/(?P[\w\d\-_\.]+)/save/?$', flat.modes.editor.views.save, name='save'), + re_path(r'^(?P[\w\d\-_\./@]+)/(?P[\w\d\-_\.]+)/?$', flat.modes.editor.views.view, name='view'), #redeclare viewer stuff: (why?) - url(r'^pub/(?P[\w\d\-_\.]+)/poll/?$', flat.modes.viewer.views.pub_poll, name='poll'), - url(r'^(?P[\w\d\-_\./@]+)/(?P[\w\d\-_\.]+)/poll/?$', flat.modes.viewer.views.poll, name='poll'), - url(r'^(?P[\w\d\-_\./@]+)/(?P[\w\d\-_\.]+)/query/?$', flat.modes.viewer.views.query, name='query'), - #url(r'^(?P[\w\d\-_\./]+)/(?P[\w\d\-_\.]+)/(?P[\w\d\-_\.]+)/?$', 'flat.modes.viewer.views.subview', name='subview'), + re_path(r'^pub/(?P[\w\d\-_\.]+)/poll/?$', flat.modes.viewer.views.pub_poll, name='poll'), + re_path(r'^(?P[\w\d\-_\./@]+)/(?P[\w\d\-_\.]+)/poll/?$', flat.modes.viewer.views.poll, name='poll'), + re_path(r'^(?P[\w\d\-_\./@]+)/(?P[\w\d\-_\.]+)/query/?$', flat.modes.viewer.views.query, name='query'), + #re_path(r'^(?P[\w\d\-_\./]+)/(?P[\w\d\-_\.]+)/(?P[\w\d\-_\.]+)/?$', 'flat.modes.viewer.views.subview', name='subview'), ] -if VERSION[0] == 1 and VERSION[1] < 8: #Django <1.8 - urlpatterns = patterns('',*urlpatterns) diff --git a/flat/modes/metadata/urls.py b/flat/modes/metadata/urls.py index b1fa5b25..d4ed8f38 100644 --- a/flat/modes/metadata/urls.py +++ b/flat/modes/metadata/urls.py @@ -1,17 +1,9 @@ #from django.conf.urls import patterns, include, url from django import VERSION -if VERSION[0] > 1 or VERSION[1] >= 8: #Django 1.8 and higher - from django.conf.urls import url, include -elif VERSION[1] >= 6: #Django 1.6 - from django.conf.urls import patterns, url, include -else: - from django.conf.urls.defaults import * +from django.urls import re_path, include import flat.modes.metadata.views urlpatterns = [ - url(r'^(?P[\w\d\-_\./@]+)/(?P[\w\d\-_\.]+)/?$', flat.modes.metadata.views.view, name='view'), + re_path(r'^(?P[\w\d\-_\./@]+)/(?P[\w\d\-_\.]+)/?$', flat.modes.metadata.views.view, name='view'), ] - -if VERSION[0] == 1 and VERSION[1] < 8: #Django <1.8 - urlpatterns = patterns('',*urlpatterns) diff --git a/flat/modes/structureeditor/urls.py b/flat/modes/structureeditor/urls.py index aa053725..fc0dcbea 100644 --- a/flat/modes/structureeditor/urls.py +++ b/flat/modes/structureeditor/urls.py @@ -1,19 +1,12 @@ #from django.conf.urls import patterns, include, url from django import VERSION -if VERSION[0] > 1 or VERSION[1] >= 8: #Django 1.8 and higher - from django.conf.urls import url, include -elif VERSION[1] >= 6: #Django 1.6 - from django.conf.urls import patterns, url, include -else: - from django.conf.urls.defaults import * +from django.urls import re_path, include import flat.modes.structureeditor.views urlpatterns = [ # Examples: - url(r'^(?P[\w\-_\.@]+)/(?P[\w\-\.]+)/?$', flat.modes.structureeditor.views.view, name='view'), - #url(r'^(?P[\w\-\.]+)/(?P[\w\-\.]+)/annotate/?$', 'flat.modes.structureeditor.views.annotate', name='annotate'), + re_path(r'^(?P[\w\-_\.@]+)/(?P[\w\-\.]+)/?$', flat.modes.structureeditor.views.view, name='view'), + #re_path(r'^(?P[\w\-\.]+)/(?P[\w\-\.]+)/annotate/?$', 'flat.modes.structureeditor.views.annotate', name='annotate'), ] -if VERSION[0] == 1 and VERSION[1] < 8: #Django <1.8 - urlpatterns = patterns('',*urlpatterns) diff --git a/flat/modes/viewer/urls.py b/flat/modes/viewer/urls.py index 25938100..4af76bf7 100644 --- a/flat/modes/viewer/urls.py +++ b/flat/modes/viewer/urls.py @@ -1,21 +1,14 @@ #from django.conf.urls import patterns, include, url from django import VERSION -if VERSION[0] > 1 or VERSION[1] >= 8: #Django 1.8 and higher - from django.conf.urls import url, include -elif VERSION[1] >= 6: #Django 1.6 - from django.conf.urls import patterns, url, include -else: - from django.conf.urls.defaults import * +from django.urls import re_path, include import flat.modes.viewer.views urlpatterns = [ # Examples: - url(r'^pub/(?P[\w\d\-_\.]+)/poll/?$', flat.modes.viewer.views.pub_poll, name='poll'), - url(r'^pub/(?P[\w\d\-_\./@]+)/(?P[\w\d\-_\.]+)/?$', flat.modes.viewer.views.pub_view, name='view'), - url(r'^(?P[\w\d\-_\./@]+)/(?P[\w\d\-_\.]+)/poll/?$', flat.modes.viewer.views.poll, name='poll'), - url(r'^(?P[\w\d\-_\./@]+)/(?P[\w\d\-_\.]+)/?$', flat.modes.viewer.views.view, name='view'), + re_path(r'^pub/(?P[\w\d\-_\.]+)/poll/?$', flat.modes.viewer.views.pub_poll, name='poll'), + re_path(r'^pub/(?P[\w\d\-_\./@]+)/(?P[\w\d\-_\.]+)/?$', flat.modes.viewer.views.pub_view, name='view'), + re_path(r'^(?P[\w\d\-_\./@]+)/(?P[\w\d\-_\.]+)/poll/?$', flat.modes.viewer.views.poll, name='poll'), + re_path(r'^(?P[\w\d\-_\./@]+)/(?P[\w\d\-_\.]+)/?$', flat.modes.viewer.views.view, name='view'), ] -if VERSION[0] == 1 and VERSION[1] < 8: #Django <1.8 - urlpatterns = patterns('',*urlpatterns) diff --git a/flat/urls.py b/flat/urls.py index 30026a59..ef169964 100644 --- a/flat/urls.py +++ b/flat/urls.py @@ -2,14 +2,8 @@ from django.contrib import admin, auth -if VERSION[0] >= 2 or VERSION[1] >= 8: #Django 1.8 and higher - from django.conf.urls import url, include - from django.conf.urls.static import static -elif VERSION[1] >= 6: #Django 1.6 - from django.conf.urls import patterns, url, include - from django.conf.urls.static import static -else: - from django.conf.urls.defaults import * +from django.urls import re_path, include +from django.conf.urls.static import static from django.conf import settings import flat.views @@ -17,53 +11,46 @@ urlpatterns = [ # Examples: - url(r'^$', flat.views.index, name='index'), - url(r'^index/?$', flat.views.index, name='index'), - url(r'^pub/?$', flat.views.pub, name='pub'), - url(r'^config/?$', flat.views.config, name='config'), - url(r'^index/(?P[\w\d\-_\./@]+)/?$', flat.views.index, name='index'), - url(r'^login/?$', flat.views.login, name='login'), - url(r'^selectconf/?$', flat.views.selectconf, name='selectconf'), - url(r'^logout/?$', flat.views.logout, name='logout'), - url(r'^account/', include('django.contrib.auth.urls')), - url(r'^admin/', admin.site.urls if VERSION[0] >= 2 else include(admin.site.urls)), - url(r'^admin/doc/', include('django.contrib.admindocs.urls')), - url(r'^register/?$', flat.views.register, name='register'), - url(r'^download/pub/(?P[\w\d\-_\.]+)\.folia\.xml/?$', flat.views.pub_download, name='download'), - url(r'^download/pub/(?P[\w\d\-_\.]+)/?$', flat.views.pub_download, name='download'), - url(r'^download/(?P[\w\d\-_\./@]+)/(?P[\w\d\-_\.]+)\.folia\.xml/?$', flat.views.download, name='download'), - url(r'^download/(?P[\w\d\-_\./@]+)/(?P[\w\d\-_\.]+)/?$', flat.views.download, name='download'), - url(r'^pub/upload/?$', flat.views.pub_upload, name='pub_upload'), - url(r'^upload/?$', flat.views.upload, name='upload'), - url(r'^filemanagement/?$', flat.views.filemanagement, name='filemanagement'), - url(r'^addnamespace/?$', flat.views.addnamespace, name='addnamespace'), - url(r'^pub/(?P[\w\d\-_\./@]+)/(?P[\w\d\-_\.]+)/query/?$', flat.views.pub_query, name='query'), #generic query function - url(r'^(?P[\w\d\-_\./@]+)/(?P[\w\d\-_\.]+)/query/?$', flat.views.query, name='query'), #generic query function - url('^oidc/', include('mozilla_django_oidc.urls')), - # url(r'^flat/', include('flat.foo.urls')), + re_path(r'^$', flat.views.index, name='index'), + re_path(r'^index/?$', flat.views.index, name='index'), + re_path(r'^pub/?$', flat.views.pub, name='pub'), + re_path(r'^config/?$', flat.views.config, name='config'), + re_path(r'^index/(?P[\w\d\-_\./@]+)/?$', flat.views.index, name='index'), + re_path(r'^login/?$', flat.views.login, name='login'), + re_path(r'^selectconf/?$', flat.views.selectconf, name='selectconf'), + re_path(r'^logout/?$', flat.views.logout, name='logout'), + re_path(r'^account/', include('django.contrib.auth.urls')), + re_path(r'^admin/', admin.site.urls if VERSION[0] >= 2 else include(admin.site.urls)), + re_path(r'^admin/doc/', include('django.contrib.admindocs.urls')), + re_path(r'^register/?$', flat.views.register, name='register'), + re_path(r'^download/pub/(?P[\w\d\-_\.]+)\.folia\.xml/?$', flat.views.pub_download, name='download'), + re_path(r'^download/pub/(?P[\w\d\-_\.]+)/?$', flat.views.pub_download, name='download'), + re_path(r'^download/(?P[\w\d\-_\./@]+)/(?P[\w\d\-_\.]+)\.folia\.xml/?$', flat.views.download, name='download'), + re_path(r'^download/(?P[\w\d\-_\./@]+)/(?P[\w\d\-_\.]+)/?$', flat.views.download, name='download'), + re_path(r'^pub/upload/?$', flat.views.pub_upload, name='pub_upload'), + re_path(r'^upload/?$', flat.views.upload, name='upload'), + re_path(r'^filemanagement/?$', flat.views.filemanagement, name='filemanagement'), + re_path(r'^addnamespace/?$', flat.views.addnamespace, name='addnamespace'), + re_path(r'^pub/(?P[\w\d\-_\./@]+)/(?P[\w\d\-_\.]+)/query/?$', flat.views.pub_query, name='query'), #generic query function + re_path(r'^(?P[\w\d\-_\./@]+)/(?P[\w\d\-_\.]+)/query/?$', flat.views.query, name='query'), #generic query function + re_path('^oidc/', include('mozilla_django_oidc.urls')), + # re_path(r'^flat/', include('flat.foo.urls')), ] if VERSION[0] == 1 and VERSION[1] < 8: #Django <1.8 urlpatterns = patterns('',*urlpatterns) -if settings.DEBUG: - if VERSION[0] > 1 or VERSION[1] >= 6: #Django 1.6 - urlpatterns += static(settings.STYLE_URL, document_root=settings.STYLE_ROOT) - urlpatterns += static(settings.SCRIPT_URL, document_root=settings.SCRIPT_ROOT) - else: - #Django 1.3 - urlpatterns += patterns('', - (r'^style/(?P.*)$', 'django.views.static.serve', {'document_root': settings.STYLE_ROOT}), - (r'^script/(?P.*)$', 'django.views.static.serve', {'document_root': settings.SCRIPT_ROOT}), - ) +if VERSION[0] > 1 or VERSION[1] >= 6: #Django 1.6 + urlpatterns += static(settings.STYLE_URL, document_root=settings.STYLE_ROOT) + urlpatterns += static(settings.SCRIPT_URL, document_root=settings.SCRIPT_ROOT) for mode, _ in settings.MODES: - urlpatterns += [ url(r'^' + mode + '/', include('flat.modes.' + mode + '.urls'))] + urlpatterns += [ re_path(r'^' + mode + '/', include('flat.modes.' + mode + '.urls'))] if VERSION[0] == 1 and VERSION[1] < 8: #Django <1.8 - urlpatterns += patterns('', url(r'^' + mode + '/', include('flat.modes.' + mode + '.urls'))) + urlpatterns += patterns('', re_path(r'^' + mode + '/', include('flat.modes.' + mode + '.urls'))) else: - urlpatterns += [ url(r'^' + mode + '/', include('flat.modes.' + mode + '.urls'))] + urlpatterns += [ re_path(r'^' + mode + '/', include('flat.modes.' + mode + '.urls'))] diff --git a/requires.txt b/requires.txt index 2c01227d..feae12a0 100644 --- a/requires.txt +++ b/requires.txt @@ -1,5 +1,5 @@ folia >= 2.5.4 foliadocserve >= 0.7.6 -Django>=1.8.13 +Django>=3.0 requests mozilla_django_oidc diff --git a/setup.py b/setup.py index 3ca61106..c10f4f76 100755 --- a/setup.py +++ b/setup.py @@ -42,5 +42,5 @@ def read(fname): ], zip_safe=False, package_data = {'flat':['templates/*.html','style/*','script/*'], 'flat.modes.structureeditor':['templates/*.html'], 'flat.modes.viewer':['templates/*.html'], 'flat.modes.editor':['templates/*.html'], 'flat.modes.metadata':['templates/*.html'] }, - install_requires=['folia >= 2.5.5','Django >= 1.8','requests', 'foliadocserve >= 0.7.6', 'mozilla-django-oidc'] + install_requires=['folia >= 2.5.5','Django >= 3.0','requests', 'foliadocserve >= 0.7.6', 'mozilla-django-oidc'] )