From d4502c655f43b6617a14a9addcb6c0dae4783530 Mon Sep 17 00:00:00 2001 From: Andreas Zweili Date: Sun, 14 Jan 2018 12:18:13 +0100 Subject: [PATCH] prevent options from deletion und don't allow new options --- django/didgeridoo/webshop/admin.py | 22 ++++++++++++++++++- .../didgeridoo/webshop/fixtures/webshop.yaml | 6 +++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/django/didgeridoo/webshop/admin.py b/django/didgeridoo/webshop/admin.py index 625d248..46148f2 100644 --- a/django/didgeridoo/webshop/admin.py +++ b/django/didgeridoo/webshop/admin.py @@ -20,6 +20,26 @@ class PictureInline(admin.StackedInline): verbose_name_plural = 'pictures' +class OptionAdmin(admin.ModelAdmin): + model = Option + list_display = ('name', 'description',) + readonly_fields = ('name','description',) + + + def get_actions(self, request): + #Disable delete + actions = super(OptionAdmin, self).get_actions(request) + del actions['delete_selected'] + return actions + + def has_delete_permission(self, request, obj=None): + #Disable delete + return False + + def has_add_permission(self, request): + return False + + class UserAdmin(BaseUserAdmin): inlines = (PersonInline,) @@ -57,4 +77,4 @@ admin.site.register(Order, OrderAdmin) admin.site.register(City) admin.site.register(OrderOfGoods, OrderOfGoodsAdmin) admin.site.register(Category) -admin.site.register(Option) +admin.site.register(Option, OptionAdmin) diff --git a/django/didgeridoo/webshop/fixtures/webshop.yaml b/django/didgeridoo/webshop/fixtures/webshop.yaml index a3c429d..d405c5a 100644 --- a/django/didgeridoo/webshop/fixtures/webshop.yaml +++ b/django/didgeridoo/webshop/fixtures/webshop.yaml @@ -95,3 +95,9 @@ stock: 44 status: 3 price_in_chf: 41.4 + +- model: webshop.Option + fields: + name: max_pictures + value: 5 + enabled: True