Item update: restrict choices

This commit is contained in:
Raphael Michel
2014-09-29 11:14:19 +02:00
parent 9749181101
commit d831980f1e
3 changed files with 23 additions and 4 deletions

View File

@@ -5,7 +5,7 @@ from django import forms
from tixlbase.models import ( from tixlbase.models import (
User, Organizer, OrganizerPermission, Event, EventPermission, 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') search_fields = ('name', 'event')
class ItemCategoryAdmin(admin.ModelAdmin):
model = ItemCategory
list_display = ('name', 'event')
search_fields = ('name', 'event')
class ItemVariationInline(admin.TabularInline): class ItemVariationInline(admin.TabularInline):
model = ItemVariation model = ItemVariation
@@ -124,3 +131,4 @@ admin.site.register(Organizer, OrganizerAdmin)
admin.site.register(Event, EventAdmin) admin.site.register(Event, EventAdmin)
admin.site.register(Property, PropertyAdmin) admin.site.register(Property, PropertyAdmin)
admin.site.register(Item, ItemAdmin) admin.site.register(Item, ItemAdmin)
admin.site.register(ItemCategory, ItemCategoryAdmin)

View File

@@ -332,8 +332,11 @@ class ItemCategory(models.Model):
""" """
Items can be sorted into categories Items can be sorted into categories
""" """
event = models.ForeignKey(Event, event = models.ForeignKey(
on_delete=models.CASCADE) Event,
on_delete=models.CASCADE,
related_name='categories',
)
name = models.CharField( name = models.CharField(
max_length=255, max_length=255,
verbose_name=_("Category name"), verbose_name=_("Category name"),
@@ -358,7 +361,10 @@ class Property(models.Model):
with the item 'T-Shirt'. with the item 'T-Shirt'.
""" """
event = models.ForeignKey(Event) event = models.ForeignKey(
Event,
related_name="properties",
)
name = models.CharField( name = models.CharField(
max_length=250, max_length=250,
verbose_name=_("Property name"), verbose_name=_("Property name"),

View File

@@ -42,6 +42,11 @@ class PropertyList(ListView):
class ItemUpdateFormGeneral(forms.ModelForm): 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: class Meta:
model = Item model = Item
localized_fields = '__all__' localized_fields = '__all__'