web_AI-5/django/didgeridoo/webshop/admin.py

91 lines
2.3 KiB
Python

from django.contrib import admin
from django.contrib.auth.admin import UserAdmin as BaseUserAdmin
from django.contrib.auth.models import User
# Register your models here.
from webshop.models import (Article, Order, OrderPosition,
Person, City, Picture, OrderOfGoods,
Category, Option)
from webshop.forms import PictureForm
class PersonInline(admin.StackedInline):
model = Person
can_delete = False
verbose_name_plural = 'person'
class PictureAdmin(admin.ModelAdmin):
form = PictureForm
ordering = ('name',)
list_display = ('name', 'article',)
class PictureInline(admin.StackedInline):
model = Picture
form = PictureForm
can_delete = False
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,)
class ArticleAdmin(admin.ModelAdmin):
inlines = (PictureInline,)
class OrderPositionInline(admin.StackedInline):
model = OrderPosition
can_delete = False
verbose_name_plural = 'Order Positions'
class OrderAdmin(admin.ModelAdmin):
list_display = ('id', 'user', 'date')
list_filter = ('date',)
date_hierarchy = 'date'
ordering = ('-date',)
inlines = (OrderPositionInline,)
class OrderOfGoodsAdmin(admin.ModelAdmin):
list_display = ('id', 'article', 'order_status', 'order_date')
list_filter = ('order_date',)
date_hierarchy = 'order_date'
ordering = ('-order_date',)
admin.site.unregister(User)
admin.site.register(User, UserAdmin)
admin.site.register(Article, ArticleAdmin)
admin.site.register(Order, OrderAdmin)
admin.site.register(Picture, PictureAdmin)
admin.site.register(City)
admin.site.register(OrderOfGoods, OrderOfGoodsAdmin)
admin.site.register(Category)
admin.site.register(Option, OptionAdmin)