diff --git a/modoboa/admin/api.py b/modoboa/admin/api.py
index b50cef20c..b3295152f 100644
--- a/modoboa/admin/api.py
+++ b/modoboa/admin/api.py
@@ -31,7 +31,6 @@ class DomainViewSet(viewsets.ModelViewSet):
permission_classes = [IsAuthenticated, DjangoModelPermissions, ]
serializer_class = serializers.DomainSerializer
- http_method_names = ["get", "post", "put", "delete"]
def get_queryset(self):
"""Filter queryset based on current user."""
diff --git a/modoboa/admin/serializers.py b/modoboa/admin/serializers.py
index d5e2ac88c..009b475d6 100644
--- a/modoboa/admin/serializers.py
+++ b/modoboa/admin/serializers.py
@@ -34,9 +34,9 @@ class DomainSerializer(serializers.ModelSerializer):
fields = (
"pk", "name", "quota", "default_mailbox_quota", "enabled", "type",
"enable_dkim", "dkim_key_selector", "dkim_key_length",
- "dkim_public_key"
+ "dkim_public_key", "dkim_private_key_path"
)
- read_only_fields = ("pk", "dkim_public_key", )
+ read_only_fields = ("pk", )
def validate_name(self, value):
"""Check name constraints."""
diff --git a/modoboa/admin/templates/admin/domain_detail.html b/modoboa/admin/templates/admin/domain_detail.html
index 96dafeb9c..fbebca6ab 100644
--- a/modoboa/admin/templates/admin/domain_detail.html
+++ b/modoboa/admin/templates/admin/domain_detail.html
@@ -106,6 +106,7 @@
+
{% else %}
{% trans "Not generated" %}
{% endif %}
@@ -148,3 +149,25 @@
{% endif %}
{% endblock %}
+
+{% block extra_js %}
+ {{ block.super }}
+
+{% endblock %}
diff --git a/modoboa/admin/tests/test_api.py b/modoboa/admin/tests/test_api.py
index c32260ead..d57b657bb 100644
--- a/modoboa/admin/tests/test_api.py
+++ b/modoboa/admin/tests/test_api.py
@@ -130,6 +130,15 @@ class DomainAPITestCase(ModoAPITestCase):
models.Mailbox.objects.filter(
address="user", domain__name="test42.com").exists())
+ def test_patch_domain(self):
+ """Check domain partial update."""
+ domain = models.Domain.objects.get(name="test.com")
+ url = reverse("api:domain-detail", args=[domain.pk])
+ response = self.client.put(url, {"name": "toto.test"})
+ self.assertEqual(response.status_code, 200)
+ domain.refresh_from_db()
+ self.assertEqual(domain.name, "toto.test")
+
def test_delete_domain(self):
"""Try to delete a domain."""
domain = models.Domain.objects.get(name="test.com")