Skip to content
This repository was archived by the owner on Jun 10, 2026. It is now read-only.

Commit 967d575

Browse files
committed
feat(admin): add ReadOnlyMixin to admin classes
- Apply ReadOnlyMixin to ContactRequestAdmin and RecommendationResultAdmin
1 parent ef1b4ae commit 967d575

3 files changed

Lines changed: 16 additions & 2 deletions

File tree

apps/resources/admin.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,11 @@
22
from django.contrib import admin
33

44
from apps.resources.models import CaseStudy, ContactRequest
5+
from apps.tool_picker.admin import ReadOnlyMixin
56

67

78
@admin.register(ContactRequest)
8-
class ContactRequestAdmin(admin.ModelAdmin[ContactRequest]):
9+
class ContactRequestAdmin(ReadOnlyMixin, admin.ModelAdmin[ContactRequest]):
910
list_display = ("name", "email", "national_society", "created_at")
1011
search_fields = ("name", "email")
1112

apps/tool_picker/admin.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,17 @@
2323
)
2424

2525

26+
class ReadOnlyMixin:
27+
def has_add_permission(self, *args, **kwargs):
28+
return False
29+
30+
def has_change_permission(self, *args, **kwargs):
31+
return False
32+
33+
def has_delete_permission(self, *args, **kwargs):
34+
return False
35+
36+
2637
# Inline for Checkbox Options within Question
2738
class CheckboxOptionInline(admin.TabularInline): # type: ignore[reportMissingTypeArgument]
2839
model = CheckboxOption
@@ -393,7 +404,7 @@ def formfield_for_manytomany(self, db_field, request, **kwargs): # type: ignore
393404

394405

395406
@admin.register(RecommendationResult)
396-
class RecommendationResultAdmin(admin.ModelAdmin): # type: ignore[reportMissingTypeArgument]
407+
class RecommendationResultAdmin(ReadOnlyMixin, admin.ModelAdmin): # type: ignore[reportMissingTypeArgument]
397408
list_display = ["submission_short", "rank", "tool", "score", "catalog"]
398409
list_filter = ["submission__catalog", "rank"]
399410
search_fields = ["submission__id", "tool__name"]

main/urls.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
multipart_uploads_enabled=True,
1313
)
1414

15+
admin.site.site_header = "RC Select Admin Portal"
16+
1517
urlpatterns = [
1618
path("admin/", admin.site.urls),
1719
path("health-check/", include("health_check.urls")),

0 commit comments

Comments
 (0)