Skip to content

Commit 697fa69

Browse files
committed
Add admin panel for localunit snapshot and restrict mutation
1 parent 489095b commit 697fa69

File tree

3 files changed

+8
-9
lines changed

3 files changed

+8
-9
lines changed

local_units/admin.py

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
from django.core.exceptions import ValidationError
44
from reversion_compare.admin import CompareVersionAdmin
55

6+
from dref.admin import ReadOnlyMixin
7+
68
from .models import (
79
Affiliation,
810
BloodService,
@@ -66,7 +68,7 @@ def save_model(self, request, obj, form, change):
6668

6769

6870
@admin.register(LocalUnitChangeRequest)
69-
class LocalUnitChangeRequestAdmin(admin.ModelAdmin):
71+
class LocalUnitChangeRequestAdmin(ReadOnlyMixin, admin.ModelAdmin):
7072
autocomplete_fields = (
7173
"local_unit",
7274
"triggered_by",
@@ -82,11 +84,6 @@ class LocalUnitChangeRequestAdmin(admin.ModelAdmin):
8284
"status",
8385
"current_validator",
8486
)
85-
readonly_fields = (
86-
"previous_data",
87-
"rejected_data",
88-
"rejected_reason",
89-
)
9087
ordering = ("id",)
9188

9289
def get_queryset(self, request):

local_units/test_views.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,8 +87,9 @@ def test_deprecate_local_unit(self):
8787

8888
# Test for validation
8989
response = self.client.post(url, data=data)
90-
self.assert_400(response)
90+
self.assert_404(response)
9191

92+
self.client.force_authenticate(self.root_user)
9293
# test revert deprecate
9394
data = {}
9495
url = f"/api/v2/local-units/{local_unit_obj.id}/revert-deprecate/"

local_units/views.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
from django.shortcuts import get_object_or_404
12
from django.utils import timezone
23
from drf_spectacular.utils import extend_schema
34
from rest_framework import permissions, response, status, views, viewsets
@@ -238,11 +239,11 @@ def deprecate(self, request, pk=None):
238239
detail=True,
239240
methods=["post"],
240241
url_path="revert-deprecate",
241-
permission_classes=[permissions.IsAuthenticated, DenyGuestUserPermission],
242+
permission_classes=[permissions.IsAuthenticated, ValidateLocalUnitPermission, DenyGuestUserPermission],
242243
)
243244
def revert_deprecate(self, request, pk=None):
244245
"""Revert the deprecate local unit object."""
245-
local_unit = self.get_object()
246+
local_unit = get_object_or_404(LocalUnit, pk=pk)
246247
local_unit.is_deprecated = False
247248
local_unit.deprecated_reason = None
248249
local_unit.deprecated_reason_overview = ""

0 commit comments

Comments
 (0)