forked from CGM_Public/pretix_original
Add API for badge and ticket layout assignments
This commit is contained in:
@@ -6,7 +6,13 @@ from pretix.api.serializers.order import CompatibleJSONField
|
||||
from .models import BadgeItem, BadgeLayout
|
||||
|
||||
|
||||
class ItemAssignmentSerializer(I18nAwareModelSerializer):
|
||||
class BadgeItemAssignmentSerializer(I18nAwareModelSerializer):
|
||||
class Meta:
|
||||
model = BadgeItem
|
||||
fields = ('id', 'item', 'layout')
|
||||
|
||||
|
||||
class NestedItemAssignmentSerializer(I18nAwareModelSerializer):
|
||||
class Meta:
|
||||
model = BadgeItem
|
||||
fields = ('item',)
|
||||
@@ -14,7 +20,7 @@ class ItemAssignmentSerializer(I18nAwareModelSerializer):
|
||||
|
||||
class BadgeLayoutSerializer(I18nAwareModelSerializer):
|
||||
layout = CompatibleJSONField()
|
||||
item_assignments = ItemAssignmentSerializer(many=True)
|
||||
item_assignments = NestedItemAssignmentSerializer(many=True)
|
||||
|
||||
class Meta:
|
||||
model = BadgeLayout
|
||||
@@ -28,3 +34,12 @@ class BadgeLayoutViewSet(viewsets.ReadOnlyModelViewSet):
|
||||
|
||||
def get_queryset(self):
|
||||
return self.request.event.badge_layouts.all()
|
||||
|
||||
|
||||
class BadgeItemViewSet(viewsets.ReadOnlyModelViewSet):
|
||||
serializer_class = BadgeItemAssignmentSerializer
|
||||
queryset = BadgeItem.objects.none()
|
||||
lookup_field = 'id'
|
||||
|
||||
def get_queryset(self):
|
||||
return BadgeItem.objects.filter(item__event=self.request.event)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
from django.conf.urls import url
|
||||
|
||||
from pretix.api.urls import event_router
|
||||
from pretix.plugins.badges.api import BadgeLayoutViewSet
|
||||
from pretix.plugins.badges.api import BadgeItemViewSet, BadgeLayoutViewSet
|
||||
|
||||
from .views import (
|
||||
LayoutCreate, LayoutDelete, LayoutEditorView, LayoutListView,
|
||||
@@ -23,3 +23,4 @@ urlpatterns = [
|
||||
LayoutEditorView.as_view(), name='edit'),
|
||||
]
|
||||
event_router.register('badgelayouts', BadgeLayoutViewSet)
|
||||
event_router.register('badgeitems', BadgeItemViewSet)
|
||||
|
||||
Reference in New Issue
Block a user