diff --git a/src/tixlbase/admin.py b/src/tixlbase/admin.py index 9ca6fe7e9e..32fa56c305 100644 --- a/src/tixlbase/admin.py +++ b/src/tixlbase/admin.py @@ -5,7 +5,7 @@ from django import forms from tixlbase.models import ( User, Organizer, OrganizerPermission, Event, EventPermission, - Property, PropertyValue, Item, ItemVariation + Property, PropertyValue, Item, ItemVariation, ItemCategory ) @@ -105,6 +105,13 @@ class PropertyAdmin(admin.ModelAdmin): search_fields = ('name', 'event') +class ItemCategoryAdmin(admin.ModelAdmin): + + model = ItemCategory + list_display = ('name', 'event') + search_fields = ('name', 'event') + + class ItemVariationInline(admin.TabularInline): model = ItemVariation @@ -124,3 +131,4 @@ admin.site.register(Organizer, OrganizerAdmin) admin.site.register(Event, EventAdmin) admin.site.register(Property, PropertyAdmin) admin.site.register(Item, ItemAdmin) +admin.site.register(ItemCategory, ItemCategoryAdmin) diff --git a/src/tixlbase/models.py b/src/tixlbase/models.py index f4c21acfc6..195237a3a9 100644 --- a/src/tixlbase/models.py +++ b/src/tixlbase/models.py @@ -332,8 +332,11 @@ class ItemCategory(models.Model): """ Items can be sorted into categories """ - event = models.ForeignKey(Event, - on_delete=models.CASCADE) + event = models.ForeignKey( + Event, + on_delete=models.CASCADE, + related_name='categories', + ) name = models.CharField( max_length=255, verbose_name=_("Category name"), @@ -358,7 +361,10 @@ class Property(models.Model): with the item 'T-Shirt'. """ - event = models.ForeignKey(Event) + event = models.ForeignKey( + Event, + related_name="properties", + ) name = models.CharField( max_length=250, verbose_name=_("Property name"), diff --git a/src/tixlcontrol/views/item.py b/src/tixlcontrol/views/item.py index 2274462ac6..248a3f853e 100644 --- a/src/tixlcontrol/views/item.py +++ b/src/tixlcontrol/views/item.py @@ -42,6 +42,11 @@ class PropertyList(ListView): class ItemUpdateFormGeneral(forms.ModelForm): + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.fields['category'].queryset = self.instance.event.categories.all() + self.fields['properties'].queryset = self.instance.event.properties.all() + class Meta: model = Item localized_fields = '__all__'