Update to Django 4.0
This commit is contained in:
parent
6a6d9a5ab2
commit
1aed14f487
2
Pipfile
2
Pipfile
@ -6,7 +6,7 @@ name = "pypi"
|
||||
[packages]
|
||||
dnspython = "*"
|
||||
netaddr = "*"
|
||||
django = "~=3.2.0"
|
||||
django = "~=4.0.0"
|
||||
django-bootstrap-form = "*"
|
||||
django-referrer-policy = "*"
|
||||
django-registration-redux = "*"
|
||||
|
21
Pipfile.lock
generated
21
Pipfile.lock
generated
@ -1,7 +1,7 @@
|
||||
{
|
||||
"_meta": {
|
||||
"hash": {
|
||||
"sha256": "2d84c864a69bb0acaa84f8ef23dab9dd7c5311888976f1a0f022e3c8c39d6836"
|
||||
"sha256": "5fbe7a1db419af7b2b43b27cfcd7e9e69e295019a597bdaf1d95c875513c75f8"
|
||||
},
|
||||
"pipfile-spec": 6,
|
||||
"requires": {
|
||||
@ -233,11 +233,11 @@
|
||||
},
|
||||
"django": {
|
||||
"hashes": [
|
||||
"sha256:18ba8efa36b69cfcd4b670d0fa187c6fe7506596f0ababe580e16909bcdec121",
|
||||
"sha256:3adc285124244724a394fa9b9839cc8cd116faf7d159554c43ecdaa8cdf0b94d"
|
||||
"sha256:07e6433f263c3839939cfabeb6d7557841e0419e47759a7b7d37f6d44d40adcb",
|
||||
"sha256:27cb08fa6458c1eff8b97c4c2d03774646fb26feeaa4587dca10c49e6d4fc6a3"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==3.2.16"
|
||||
"version": "==4.0.8"
|
||||
},
|
||||
"django-bootstrap-form": {
|
||||
"hashes": [
|
||||
@ -331,13 +331,6 @@
|
||||
],
|
||||
"version": "==3.2.0"
|
||||
},
|
||||
"pytz": {
|
||||
"hashes": [
|
||||
"sha256:01a0681c4b9684a28304615eba55d1ab31ae00bf68ec157ec3708a8182dbbcd0",
|
||||
"sha256:78f4f37d8198e0627c5f1143240bb0206b8691d8d7ac6d78fee88b78733f8c4a"
|
||||
],
|
||||
"version": "==2022.7.1"
|
||||
},
|
||||
"requests": {
|
||||
"hashes": [
|
||||
"sha256:64299f4909223da747622c030b781c0d7811e359c37124b4bd368fb8c6518baa",
|
||||
@ -571,11 +564,11 @@
|
||||
},
|
||||
"django": {
|
||||
"hashes": [
|
||||
"sha256:18ba8efa36b69cfcd4b670d0fa187c6fe7506596f0ababe580e16909bcdec121",
|
||||
"sha256:3adc285124244724a394fa9b9839cc8cd116faf7d159554c43ecdaa8cdf0b94d"
|
||||
"sha256:07e6433f263c3839939cfabeb6d7557841e0419e47759a7b7d37f6d44d40adcb",
|
||||
"sha256:27cb08fa6458c1eff8b97c4c2d03774646fb26feeaa4587dca10c49e6d4fc6a3"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==3.2.16"
|
||||
"version": "==4.0.8"
|
||||
},
|
||||
"django-debug-toolbar": {
|
||||
"hashes": [
|
||||
|
@ -1,7 +1,7 @@
|
||||
# packages always needed
|
||||
dnspython
|
||||
netaddr
|
||||
django~=3.2.0
|
||||
django~=4.0.0
|
||||
django-bootstrap-form
|
||||
django-referrer-policy
|
||||
django-registration-redux
|
||||
|
2
setup.py
2
setup.py
@ -31,7 +31,7 @@ setup(
|
||||
install_requires=[
|
||||
'dnspython',
|
||||
'netaddr',
|
||||
'django>=3.2.0',
|
||||
'django>=4.0.0',
|
||||
'django-bootstrap-form',
|
||||
'django-referrer-policy',
|
||||
'django-registration-redux',
|
||||
|
@ -7,9 +7,9 @@ from django.conf import settings
|
||||
from django.db.models.signals import post_save
|
||||
from django.dispatch import receiver
|
||||
from django.contrib.auth.signals import user_logged_in
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from django.utils.translation import LANGUAGE_SESSION_KEY
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
LANGUAGE_SESSION_KEY = "_language"
|
||||
|
||||
class UserProfile(models.Model):
|
||||
"""
|
||||
|
@ -7,7 +7,7 @@ logger = logging.getLogger(__name__)
|
||||
|
||||
from django import forms
|
||||
from django.conf import settings
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from registration.forms import RegistrationForm
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
from django.conf.urls import url
|
||||
from django.urls import re_path
|
||||
from django.views.generic.base import TemplateView
|
||||
|
||||
from registration.backends.default.views import ActivationView
|
||||
@ -8,12 +8,12 @@ from .views import UserProfileView, DeleteUserView, UserChangePasswordView
|
||||
|
||||
|
||||
urlpatterns = (
|
||||
url(r'^profile/', UserProfileView.as_view(), name="account_profile"),
|
||||
url(r'^settings/', UserChangePasswordView.as_view(), name='account_settings'),
|
||||
url(r'^delete/', DeleteUserView.as_view(), name="account_delete"),
|
||||
re_path(r'^profile/', UserProfileView.as_view(), name="account_profile"),
|
||||
re_path(r'^settings/', UserChangePasswordView.as_view(), name='account_settings'),
|
||||
re_path(r'^delete/', DeleteUserView.as_view(), name="account_delete"),
|
||||
|
||||
# registration start
|
||||
url(r'^activate/complete/$',
|
||||
re_path(r'^activate/complete/$',
|
||||
TemplateView.as_view(template_name='registration/activation_complete.html'),
|
||||
name='registration_activation_complete'),
|
||||
# Activation keys get matched by \w+ instead of the more specific
|
||||
@ -21,16 +21,16 @@ urlpatterns = (
|
||||
# that way it can return a sensible "invalid key" message instead of a
|
||||
# confusing 404.
|
||||
|
||||
url(r'^activate/(?P<activation_key>\w+)/$',
|
||||
re_path(r'^activate/(?P<activation_key>\w+)/$',
|
||||
ActivationView.as_view(),
|
||||
name='registration_activate'),
|
||||
url(r'^register/$',
|
||||
re_path(r'^register/$',
|
||||
RegistrationView.as_view(),
|
||||
name='registration_register'),
|
||||
url(r'^register/complete/$',
|
||||
re_path(r'^register/complete/$',
|
||||
TemplateView.as_view(template_name='registration/registration_complete.html'),
|
||||
name='registration_complete'),
|
||||
url(r'^register/closed/$',
|
||||
re_path(r'^register/closed/$',
|
||||
TemplateView.as_view(template_name='registration/registration_closed.html'),
|
||||
name='registration_disallowed'),
|
||||
# registration end
|
||||
|
@ -10,7 +10,7 @@ from django.views.decorators.debug import sensitive_post_parameters
|
||||
from django.urls import reverse, reverse_lazy
|
||||
from django.shortcuts import redirect
|
||||
from django.contrib import messages
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
from django.contrib.auth import update_session_auth_hash
|
||||
|
||||
from .forms import UserForm, UserProfileForm
|
||||
|
@ -1,25 +1,25 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from django.conf.urls import url
|
||||
from django.urls import re_path
|
||||
from django.contrib.auth.views import LoginView, LogoutView, \
|
||||
PasswordResetView, PasswordResetDoneView, PasswordResetConfirmView, PasswordResetCompleteView
|
||||
|
||||
urlpatterns = (
|
||||
# login and logout url
|
||||
url(r'^login/$', LoginView.as_view(template_name='login.html'), name='login'),
|
||||
re_path(r'^login/$', LoginView.as_view(template_name='login.html'), name='login'),
|
||||
# or use logout with template 'logout.html'
|
||||
url(r'^logout/$', LogoutView.as_view(), name='logout'),
|
||||
re_path(r'^logout/$', LogoutView.as_view(), name='logout'),
|
||||
|
||||
# password reset urls
|
||||
url(r'^password_reset/$',
|
||||
re_path(r'^password_reset/$',
|
||||
PasswordResetView.as_view(template_name='password_reset.html'),
|
||||
name='password_reset'),
|
||||
url(r'^password_reset_done/$',
|
||||
re_path(r'^password_reset_done/$',
|
||||
PasswordResetDoneView.as_view(template_name='password_reset_done.html'),
|
||||
name='password_reset_done'),
|
||||
url(r'^password_reset_confirm/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>.+)/$',
|
||||
re_path(r'^password_reset_confirm/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>.+)/$',
|
||||
PasswordResetConfirmView.as_view(template_name='password_reset_confirm.html'),
|
||||
name='password_reset_confirm'),
|
||||
url(r'^password_reset_complete/$',
|
||||
re_path(r'^password_reset_complete/$',
|
||||
PasswordResetCompleteView.as_view(template_name='password_reset_complete.html'),
|
||||
name='password_reset_complete'),
|
||||
)
|
||||
|
@ -6,7 +6,7 @@ form definitions (which fields are available, order, autofocus, ...)
|
||||
import binascii
|
||||
|
||||
from django import forms
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from .models import Host, RelatedHost, Domain, ServiceUpdaterHostConfig
|
||||
from .dnstools import check_domain, NameServerNotAvailable
|
||||
|
@ -17,7 +17,7 @@ from django.conf import settings
|
||||
from django.db.models.signals import pre_delete, post_save
|
||||
from django.contrib.auth.hashers import make_password
|
||||
from django.utils.timezone import now
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from . import dnstools
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
main app url dispatching
|
||||
"""
|
||||
|
||||
from django.conf.urls import url
|
||||
from django.urls import re_path
|
||||
|
||||
from .views import (
|
||||
HomeView, OverviewView, HostView, AddHostView, DeleteHostView, AboutView, GenerateSecretView, GenerateNSSecretView,
|
||||
@ -16,39 +16,39 @@ from ..api.views import (
|
||||
|
||||
urlpatterns = (
|
||||
# interactive web ui
|
||||
url(r'^$', HomeView.as_view(), name="home"),
|
||||
url(r'^about/$', AboutView.as_view(), name="about"),
|
||||
url(r'^custom/(?P<template>[\w.]+)$', CustomTemplateView.as_view(), name="custom"),
|
||||
url(r'^update$', JsUpdateView.as_view(), name='update'),
|
||||
url(r'^overview/$', OverviewView.as_view(), name='overview'),
|
||||
url(r'^status/$', StatusView.as_view(), name='status'),
|
||||
url(r'^generate_secret/(?P<pk>\d+)/$', GenerateSecretView.as_view(), name='generate_secret_view'),
|
||||
url(r'^generate_ns_secret/(?P<pk>\d+)/$', GenerateNSSecretView.as_view(), name='generate_ns_secret_view'),
|
||||
url(r'^host/(?P<pk>\d+)/$', HostView.as_view(), name='host_view'),
|
||||
url(r'^host/add/$', AddHostView.as_view(), name='add_host'),
|
||||
url(r'^host/(?P<pk>\d+)/delete/$', DeleteHostView.as_view(), name='delete_host'),
|
||||
url(r'^host/(?P<mpk>\d+)/related/$', RelatedHostOverviewView.as_view(), name='related_host_overview'),
|
||||
url(r'^host/(?P<mpk>\d+)/related/(?P<pk>\d+)/$', RelatedHostView.as_view(), name='related_host_view'),
|
||||
url(r'^host/(?P<mpk>\d+)/related/add/$', AddRelatedHostView.as_view(), name='add_related_host'),
|
||||
url(r'^host/(?P<mpk>\d+)/related/(?P<pk>\d+)/delete/$', DeleteRelatedHostView.as_view(),
|
||||
re_path(r'^$', HomeView.as_view(), name="home"),
|
||||
re_path(r'^about/$', AboutView.as_view(), name="about"),
|
||||
re_path(r'^custom/(?P<template>[\w.]+)$', CustomTemplateView.as_view(), name="custom"),
|
||||
re_path(r'^update$', JsUpdateView.as_view(), name='update'),
|
||||
re_path(r'^overview/$', OverviewView.as_view(), name='overview'),
|
||||
re_path(r'^status/$', StatusView.as_view(), name='status'),
|
||||
re_path(r'^generate_secret/(?P<pk>\d+)/$', GenerateSecretView.as_view(), name='generate_secret_view'),
|
||||
re_path(r'^generate_ns_secret/(?P<pk>\d+)/$', GenerateNSSecretView.as_view(), name='generate_ns_secret_view'),
|
||||
re_path(r'^host/(?P<pk>\d+)/$', HostView.as_view(), name='host_view'),
|
||||
re_path(r'^host/add/$', AddHostView.as_view(), name='add_host'),
|
||||
re_path(r'^host/(?P<pk>\d+)/delete/$', DeleteHostView.as_view(), name='delete_host'),
|
||||
re_path(r'^host/(?P<mpk>\d+)/related/$', RelatedHostOverviewView.as_view(), name='related_host_overview'),
|
||||
re_path(r'^host/(?P<mpk>\d+)/related/(?P<pk>\d+)/$', RelatedHostView.as_view(), name='related_host_view'),
|
||||
re_path(r'^host/(?P<mpk>\d+)/related/add/$', AddRelatedHostView.as_view(), name='add_related_host'),
|
||||
re_path(r'^host/(?P<mpk>\d+)/related/(?P<pk>\d+)/delete/$', DeleteRelatedHostView.as_view(),
|
||||
name='delete_related_host'),
|
||||
url(r'^domain/(?P<pk>\d+)/$', DomainView.as_view(), name='domain_view'),
|
||||
url(r'^domain/add/$', AddDomainView.as_view(), name='add_domain'),
|
||||
url(r'^domain/(?P<pk>\d+)/delete/$', DeleteDomainView.as_view(), name='delete_domain'),
|
||||
url(r'^updater_hostconfig_overview/(?P<pk>\d+)/$', UpdaterHostConfigOverviewView.as_view(),
|
||||
re_path(r'^domain/(?P<pk>\d+)/$', DomainView.as_view(), name='domain_view'),
|
||||
re_path(r'^domain/add/$', AddDomainView.as_view(), name='add_domain'),
|
||||
re_path(r'^domain/(?P<pk>\d+)/delete/$', DeleteDomainView.as_view(), name='delete_domain'),
|
||||
re_path(r'^updater_hostconfig_overview/(?P<pk>\d+)/$', UpdaterHostConfigOverviewView.as_view(),
|
||||
name='updater_hostconfig_overview'),
|
||||
url(r'^updater_hostconfig/(?P<pk>\d+)/$', UpdaterHostConfigView.as_view(), name='updater_hostconfig'),
|
||||
url(r'^updater_hostconfig/(?P<pk>\d+)/delete/$', DeleteUpdaterHostConfigView.as_view(),
|
||||
re_path(r'^updater_hostconfig/(?P<pk>\d+)/$', UpdaterHostConfigView.as_view(), name='updater_hostconfig'),
|
||||
re_path(r'^updater_hostconfig/(?P<pk>\d+)/delete/$', DeleteUpdaterHostConfigView.as_view(),
|
||||
name='delete_updater_hostconfig'),
|
||||
# internal use by the web ui
|
||||
url(r'^detectip/(?P<sessionid>\w+)/$', DetectIpView.as_view(), name='detectip'),
|
||||
url(r'^ajax_get_ips/$', AjaxGetIps.as_view(), name="ajax_get_ips"),
|
||||
url(r'^nic/update_authorized$', AuthorizedNicUpdateView.as_view(), name='nic_update_authorized'),
|
||||
url(r'^nic/delete_authorized$', AuthorizedNicDeleteView.as_view(), name='nic_delete_authorized'),
|
||||
re_path(r'^detectip/(?P<sessionid>\w+)/$', DetectIpView.as_view(), name='detectip'),
|
||||
re_path(r'^ajax_get_ips/$', AjaxGetIps.as_view(), name="ajax_get_ips"),
|
||||
re_path(r'^nic/update_authorized$', AuthorizedNicUpdateView.as_view(), name='nic_update_authorized'),
|
||||
re_path(r'^nic/delete_authorized$', AuthorizedNicDeleteView.as_view(), name='nic_delete_authorized'),
|
||||
# api (for update clients)
|
||||
url(r'^myip$', myip_view, name='myip'),
|
||||
url(r'^nic/update$', NicUpdateView.as_view(), name='nic_update'),
|
||||
url(r'^nic/delete$', NicDeleteView.as_view(), name='nic_delete'), # api extension
|
||||
re_path(r'^myip$', myip_view, name='myip'),
|
||||
re_path(r'^nic/update$', NicUpdateView.as_view(), name='nic_update'),
|
||||
re_path(r'^nic/delete$', NicDeleteView.as_view(), name='nic_delete'), # api extension
|
||||
# for bots
|
||||
url(r'^robots.txt$', RobotsTxtView.as_view(), name='robots'),
|
||||
re_path(r'^robots.txt$', RobotsTxtView.as_view(), name='robots'),
|
||||
)
|
||||
|
@ -8,7 +8,7 @@ import dns.message
|
||||
from django.core.management.base import BaseCommand
|
||||
from django.core.mail import send_mail
|
||||
from django.db import transaction
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from nsupdate.main.models import Domain, Host
|
||||
from nsupdate.main.dnstools import FQDN, query_ns, NameServerNotAvailable
|
||||
|
@ -7,7 +7,7 @@ import traceback
|
||||
from django.core.management.base import BaseCommand
|
||||
from django.core.mail import send_mail
|
||||
from django.db import transaction
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from nsupdate.main.models import Host
|
||||
from nsupdate.utils.mail import translate_for_user, send_mail_to_user
|
||||
|
@ -7,7 +7,7 @@ from datetime import datetime
|
||||
from django.core.management.base import BaseCommand
|
||||
from django.db import transaction
|
||||
from django.utils import timezone
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from nsupdate.main.models import Host
|
||||
from nsupdate.utils.mail import translate_for_user, send_mail_to_user
|
||||
|
@ -8,7 +8,7 @@ from django.contrib.auth import get_user_model
|
||||
from django.core.management.base import BaseCommand
|
||||
from django.db import transaction
|
||||
from django.utils import timezone
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from nsupdate.main.models import Host, Domain
|
||||
|
||||
|
@ -3,7 +3,7 @@ top-level url dispatching
|
||||
"""
|
||||
|
||||
from django.conf import settings
|
||||
from django.conf.urls import include, url
|
||||
from django.urls import include, re_path
|
||||
from django.contrib import admin
|
||||
from django.contrib.auth import login
|
||||
from django.conf.urls.static import static
|
||||
@ -24,21 +24,21 @@ def remember_me_login(request, *args, **kw):
|
||||
|
||||
|
||||
urlpatterns = [
|
||||
url('', include('social_django.urls', namespace='social')),
|
||||
url(r'^accounts/', include('nsupdate.login.urls')),
|
||||
re_path('', include('social_django.urls', namespace='social')),
|
||||
re_path(r'^accounts/', include('nsupdate.login.urls')),
|
||||
# registration and user settings
|
||||
url(r'^account/', include('nsupdate.accounts.urls')),
|
||||
re_path(r'^account/', include('nsupdate.accounts.urls')),
|
||||
# https://wicg.github.io/change-password-url/index.html
|
||||
url(r'^.well-known/change-password$', RedirectView.as_view(pattern_name='account_settings', permanent=False)),
|
||||
url(r'^admin/', include((admin.site.get_urls(), 'admin'), namespace='admin')),
|
||||
url(r'^i18n/', include('django.conf.urls.i18n')),
|
||||
url(r'^', include('nsupdate.main.urls')),
|
||||
re_path(r'^.well-known/change-password$', RedirectView.as_view(pattern_name='account_settings', permanent=False)),
|
||||
re_path(r'^admin/', include((admin.site.get_urls(), 'admin'), namespace='admin')),
|
||||
re_path(r'^i18n/', include('django.conf.urls.i18n')),
|
||||
re_path(r'^', include('nsupdate.main.urls')),
|
||||
]
|
||||
|
||||
if settings.DEBUG:
|
||||
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
|
||||
import debug_toolbar
|
||||
urlpatterns += [url(r'^__debug__/', include(debug_toolbar.urls)), ]
|
||||
urlpatterns += [re_path(r'^__debug__/', include(debug_toolbar.urls)), ]
|
||||
|
||||
|
||||
# we have expensive context processors and do not want to invoke them for the
|
||||
|
@ -3,7 +3,7 @@ Tests for mail module.
|
||||
"""
|
||||
|
||||
from django.contrib.auth import get_user_model
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from ..mail import translate_for_user
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user