im/inventory/admin.py

105 lines
2.3 KiB
Python
Raw Normal View History

2018-09-16 10:35:02 +00:00
from django.contrib import admin
2018-09-30 14:14:39 +00:00
from .models import PantryItem, PantryItemLine, Unit, Category, Location
from .models import ShoppingListItem
2018-09-16 11:14:54 +00:00
class PantryItemInLine(admin.TabularInline):
model = PantryItemLine
extra = 1
class LocationInLine(admin.TabularInline):
model = Location
extra = 1
2018-09-20 21:00:05 +00:00
def upper_case_name(obj):
return obj.name.upper()
2020-11-08 14:31:33 +00:00
2018-09-20 21:00:05 +00:00
upper_case_name.short_description = 'Name'
def capitalize_name(obj):
return obj.name.capitalize()
2020-11-08 14:31:33 +00:00
2018-09-20 21:00:05 +00:00
upper_case_name.short_description = 'Name'
class PantryItemLineAdmin(admin.ModelAdmin):
2021-07-04 19:05:00 +00:00
list_filter = ['expiry_date', 'pantry_item__unit', 'pantry_item', 'pantry_item__min_quantity', 'location']
2018-09-20 21:00:05 +00:00
search_fields = ['info', 'pantry_item__name', 'pantry_item__info']
autocomplete_fields = ['pantry_item']
readonly_fields = ['unit']
fields = (
2018-09-20 21:00:05 +00:00
'pantry_item',
'quantity',
'expiry_date',
('size', 'unit'),
'info',
)
2018-09-16 13:31:21 +00:00
list_display = (
'pantry_item',
'quantity',
'expiry_date',
'size',
'unit',
'info',
)
2018-09-30 14:14:39 +00:00
class AutocompleteAdmin(admin.ModelAdmin):
"""Class used to satisfy an admin check"""
search_fields = ["name"]
2018-09-16 11:14:54 +00:00
2018-09-30 14:14:39 +00:00
class LocationAdmin(AutocompleteAdmin):
inlines = [LocationInLine]
2018-09-16 11:14:54 +00:00
class PantryItemAdmin(admin.ModelAdmin):
2021-07-04 19:05:00 +00:00
list_filter = ['category', 'unit', 'min_quantity']
2018-09-23 20:49:58 +00:00
search_fields = ['info', 'name', 'category__name', 'unit__name']
autocomplete_fields = ['category', 'unit']
2018-09-16 11:14:54 +00:00
inlines = [PantryItemInLine]
2018-09-30 14:14:39 +00:00
2020-11-08 16:10:39 +00:00
autocomplete_fields = ['category', ]
fields = (
2018-09-16 13:31:21 +00:00
'name',
'category',
2018-09-20 21:00:05 +00:00
('min_quantity', 'unit'),
2018-09-30 14:14:39 +00:00
'location',
2018-09-20 21:00:05 +00:00
'info',
2018-09-30 14:14:39 +00:00
'expiry_duration',
2018-09-20 21:00:05 +00:00
)
list_display = (
capitalize_name,
'category',
2018-09-16 13:31:21 +00:00
'min_quantity',
'unit',
'info',
)
2018-09-16 11:14:54 +00:00
class ShoppingListItemAdmin(PantryItemAdmin):
inlines = []
fields = (
'name',
('min_quantity', 'unit'),
'info',
)
2020-11-08 14:31:33 +00:00
2018-09-16 11:14:54 +00:00
admin.site.register(PantryItem, PantryItemAdmin)
admin.site.register(ShoppingListItem, ShoppingListItemAdmin)
admin.site.register(PantryItemLine, PantryItemLineAdmin)
admin.site.register(Unit, AutocompleteAdmin)
admin.site.register(Category, AutocompleteAdmin)
admin.site.register(Location, LocationAdmin)