diff --git a/src/tixlbase/admin.py b/src/tixlbase/admin.py index 80d826ad6f..cb84edd131 100644 --- a/src/tixlbase/admin.py +++ b/src/tixlbase/admin.py @@ -4,7 +4,8 @@ from django.utils.translation import ugettext as _ from django import forms from tixlbase.models import ( - User, Organizer, OrganizerPermission, Event, EventPermission + User, Organizer, OrganizerPermission, Event, EventPermission, + Property, PropertyValue, Item, ItemFlavor ) @@ -90,6 +91,36 @@ class EventAdmin(admin.ModelAdmin): list_filter = ('date_from', 'locale', 'currency') +class PropertyValueInline(admin.StackedInline): + + model = PropertyValue + extra = 4 + + +class PropertyAdmin(admin.ModelAdmin): + + model = Property + inlines = [PropertyValueInline] + list_display = ('name', 'event') + search_fields = ('name', 'event') + + +class ItemFlavorInline(admin.TabularInline): + + model = ItemFlavor + extra = 4 + + +class ItemAdmin(admin.ModelAdmin): + + model = Item + inlines = [ItemFlavorInline] + list_display = ('name', 'event', 'category') + search_fields = ('name', 'event', 'category', 'short_description') + + admin.site.register(User, TixlUserAdmin) admin.site.register(Organizer, OrganizerAdmin) admin.site.register(Event, EventAdmin) +admin.site.register(Property, PropertyAdmin) +admin.site.register(Item, ItemAdmin) diff --git a/src/tixlbase/models.py b/src/tixlbase/models.py index f497790d0d..8ee903d59f 100644 --- a/src/tixlbase/models.py +++ b/src/tixlbase/models.py @@ -358,6 +358,9 @@ class Property(models.Model): verbose_name=_("Property name"), ) + def __str__(self): + return self.name + class Meta: verbose_name = _("Item property") verbose_name_plural = _("Item properties") @@ -379,6 +382,9 @@ class PropertyValue(models.Model): verbose_name=_("Value"), ) + def __str__(self): + return "%s: %s" % (self.prop.name, self.value) + class Item(models.Model): """ @@ -467,12 +473,12 @@ class ItemFlavor(models.Model): Item, related_name='flavors' ) - prop = models.ManyToManyField( + values = models.ManyToManyField( PropertyValue, - related_name='values' + related_name='flavors', ) active = models.BooleanField( - default=True + default=True, ) default_price = models.DecimalField( decimal_places=2, max_digits=7,