From 498b795fade0bd9a03a1cb382d4ae6004fae82bc Mon Sep 17 00:00:00 2001 From: AlexP077 Date: Mon, 16 Oct 2023 15:52:48 +0300 Subject: [PATCH] restrict_groups_editing --- service/admin.py | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/service/admin.py b/service/admin.py index a4cf7bc..0173cba 100644 --- a/service/admin.py +++ b/service/admin.py @@ -70,6 +70,12 @@ class CategoryAdmin(admin.ModelAdmin): class PostPvzCategoryAdmin(CategoryAdmin): + def get_readonly_fields(self, request, obj=None): + if obj.id in (1, 2): + return ['id', 'name'] + else: + return super().get_readonly_fields(request, obj) + def save_model(self, request, obj, form, change): obj.save() run_psql_command() @@ -97,6 +103,12 @@ class GroupAdmin(admin.ModelAdmin): class PostPvzGroupAdmin(GroupAdmin): + def get_readonly_fields(self, request, obj=None): + if obj.id in (7, 8, 9, 10, 12, 17, 19, 20, 24, 25): + return ['id', 'name'] + else: + return super().get_readonly_fields(request, obj) + def save_model(self, request, obj, form, change): obj.save() run_psql_command() @@ -113,11 +125,11 @@ class PostPvzGroupAdmin(GroupAdmin): class OtherObjectsGroupAdmin(GroupAdmin): - def save_model(self, request, obj, form, change): + def get_readonly_fields(self, request, obj=None): if obj.id in (4, 5) or obj.id in list(range(22, 43)): - pass + return ['id', 'name'] else: - super().save_model(request, obj, form, change) + return super().get_readonly_fields(request, obj) def delete_model(self, request, obj): if obj.id in (4, 5) or obj.id in list(range(22, 43)): @@ -127,12 +139,11 @@ class OtherObjectsGroupAdmin(GroupAdmin): class OtherObjectsCategoryAdmin(CategoryAdmin): - - def save_model(self, request, obj, form, change): + def get_readonly_fields(self, request, obj=None): if obj.id in (4, 5) or obj.id in list(range(22, 43)): - pass + return ['id', 'name'] else: - super().save_model(request, obj, form, change) + return super().get_readonly_fields(request, obj) def delete_model(self, request, obj): if obj.id in (4, 5) or obj.id in list(range(22, 43)):