From 0e8c320695cd220bb64dc610c7665c218187236c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Lebleu?= Date: Wed, 1 Jan 2020 18:59:56 +0100 Subject: [PATCH] Bump djangorestframework to 3.9 and adapt the code See: https://www.django-rest-framework.org/community/3.9-announcement/ The 3.10 release begins the deprecation process for the CoreAPI based schema generation and requires thus more changes - especially for the documentation. --- modoboa/admin/api.py | 6 +++--- modoboa/admin/urls_api.py | 10 +++++----- modoboa/limits/urls_api.py | 2 +- modoboa/relaydomains/urls_api.py | 2 +- requirements.txt | 2 +- 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/modoboa/admin/api.py b/modoboa/admin/api.py index 3ca68504b..061637973 100644 --- a/modoboa/admin/api.py +++ b/modoboa/admin/api.py @@ -8,7 +8,7 @@ from django import http from django.contrib.contenttypes.models import ContentType from rest_framework import filters, status, viewsets -from rest_framework.decorators import detail_route, list_route +from rest_framework.decorators import action from rest_framework.exceptions import ParseError from rest_framework.permissions import DjangoModelPermissions, IsAuthenticated from rest_framework.response import Response @@ -86,7 +86,7 @@ class AccountViewSet(viewsets.ModelViewSet): queryset = queryset.filter(mailbox__domain__name=domain) return queryset - @detail_route(methods=["put"]) + @action(methods=["put"], detail=True) def password(self, request, pk=None): """Change account password.""" try: @@ -100,7 +100,7 @@ class AccountViewSet(viewsets.ModelViewSet): return Response( serializer.errors, status=status.HTTP_400_BAD_REQUEST) - @list_route() + @action(detail=False) def exists(self, request): """Check if account exists. diff --git a/modoboa/admin/urls_api.py b/modoboa/admin/urls_api.py index 63bad995f..4227d9cfa 100644 --- a/modoboa/admin/urls_api.py +++ b/modoboa/admin/urls_api.py @@ -9,12 +9,12 @@ from rest_framework import routers from . import api router = routers.SimpleRouter() -router.register(r"domains", api.DomainViewSet, base_name="domain") +router.register(r"domains", api.DomainViewSet, basename="domain") router.register( - r"domainaliases", api.DomainAliasViewSet, base_name="domain_alias") -router.register(r"accounts", api.AccountViewSet, base_name="account") -router.register(r"aliases", api.AliasViewSet, base_name="alias") + r"domainaliases", api.DomainAliasViewSet, basename="domain_alias") +router.register(r"accounts", api.AccountViewSet, basename="account") +router.register(r"aliases", api.AliasViewSet, basename="alias") router.register( - r"senderaddresses", api.SenderAddressViewSet, base_name="sender_address") + r"senderaddresses", api.SenderAddressViewSet, basename="sender_address") urlpatterns = router.urls diff --git a/modoboa/limits/urls_api.py b/modoboa/limits/urls_api.py index 8295e069f..39c2e4f03 100644 --- a/modoboa/limits/urls_api.py +++ b/modoboa/limits/urls_api.py @@ -10,6 +10,6 @@ from . import viewsets router = routers.SimpleRouter() router.register( - r"resources", viewsets.ResourcesViewSet, base_name="resources") + r"resources", viewsets.ResourcesViewSet, basename="resources") urlpatterns = router.urls diff --git a/modoboa/relaydomains/urls_api.py b/modoboa/relaydomains/urls_api.py index 56b3562b1..275a160dc 100644 --- a/modoboa/relaydomains/urls_api.py +++ b/modoboa/relaydomains/urls_api.py @@ -10,5 +10,5 @@ from . import viewsets router = routers.SimpleRouter() router.register( - r"relaydomains", viewsets.RelayDomainViewSet, base_name="relaydomain") + r"relaydomains", viewsets.RelayDomainViewSet, basename="relaydomain") urlpatterns = router.urls diff --git a/requirements.txt b/requirements.txt index ab9d46428..5f09d4a98 100644 --- a/requirements.txt +++ b/requirements.txt @@ -9,7 +9,7 @@ dj-database-url coreapi==2.3.3 coreapi-cli==1.0.9 -djangorestframework==3.7.7 +djangorestframework>=3.9,<3.10 passlib==1.7.2 bcrypt # Requires libffi-dev and python-dev