mirror of
https://github.com/pretix/pretix.git
synced 2026-05-04 15:04:03 +00:00
Add API for badge and ticket layout assignments
This commit is contained in:
@@ -8,6 +8,13 @@ from .models import TicketLayout, TicketLayoutItem
|
||||
|
||||
class ItemAssignmentSerializer(I18nAwareModelSerializer):
|
||||
|
||||
class Meta:
|
||||
model = TicketLayoutItem
|
||||
fields = ('id', 'layout', 'item', 'sales_channel')
|
||||
|
||||
|
||||
class NestedItemAssignmentSerializer(I18nAwareModelSerializer):
|
||||
|
||||
class Meta:
|
||||
model = TicketLayoutItem
|
||||
fields = ('item', 'sales_channel')
|
||||
@@ -15,7 +22,7 @@ class ItemAssignmentSerializer(I18nAwareModelSerializer):
|
||||
|
||||
class TicketLayoutSerializer(I18nAwareModelSerializer):
|
||||
layout = CompatibleJSONField()
|
||||
item_assignments = ItemAssignmentSerializer(many=True)
|
||||
item_assignments = NestedItemAssignmentSerializer(many=True)
|
||||
|
||||
class Meta:
|
||||
model = TicketLayout
|
||||
@@ -29,3 +36,12 @@ class TicketLayoutViewSet(viewsets.ReadOnlyModelViewSet):
|
||||
|
||||
def get_queryset(self):
|
||||
return self.request.event.ticket_layouts.all()
|
||||
|
||||
|
||||
class TicketLayoutItemViewSet(viewsets.ReadOnlyModelViewSet):
|
||||
serializer_class = ItemAssignmentSerializer
|
||||
queryset = TicketLayoutItem.objects.none()
|
||||
lookup_field = 'id'
|
||||
|
||||
def get_queryset(self):
|
||||
return TicketLayoutItem.objects.filter(item__event=self.request.event)
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
from django.conf.urls import url
|
||||
|
||||
from pretix.api.urls import event_router
|
||||
from pretix.plugins.ticketoutputpdf.api import TicketLayoutViewSet
|
||||
from pretix.plugins.ticketoutputpdf.api import (
|
||||
TicketLayoutItemViewSet, TicketLayoutViewSet,
|
||||
)
|
||||
from pretix.plugins.ticketoutputpdf.views import (
|
||||
LayoutCreate, LayoutDelete, LayoutEditorView, LayoutGetDefault,
|
||||
LayoutListView, LayoutSetDefault,
|
||||
@@ -22,3 +24,4 @@ urlpatterns = [
|
||||
LayoutEditorView.as_view(), name='edit'),
|
||||
]
|
||||
event_router.register('ticketlayouts', TicketLayoutViewSet)
|
||||
event_router.register('ticketlayoutitems', TicketLayoutItemViewSet)
|
||||
|
||||
Reference in New Issue
Block a user