forked from CGM_Public/pretix_original
- [x] Data model - [x] CRUD - [x] Editor - [x] Migration from old settings - [x] Clone files when copying events - [x] badges? - [x] Actual ticket output - [x] Default layout on event creation - [x] Link well from ticketing settings - [x] Tests - [x] Shipping plugin - [x] Migration - [x] Settings - [x] Create default - [x] API
This commit is contained in:
30
src/pretix/plugins/badges/api.py
Normal file
30
src/pretix/plugins/badges/api.py
Normal file
@@ -0,0 +1,30 @@
|
||||
from rest_framework import viewsets
|
||||
|
||||
from pretix.api.serializers.i18n import I18nAwareModelSerializer
|
||||
from pretix.api.serializers.order import CompatibleJSONField
|
||||
|
||||
from .models import BadgeItem, BadgeLayout
|
||||
|
||||
|
||||
class ItemAssignmentSerializer(I18nAwareModelSerializer):
|
||||
class Meta:
|
||||
model = BadgeItem
|
||||
fields = ('item',)
|
||||
|
||||
|
||||
class BadgeLayoutSerializer(I18nAwareModelSerializer):
|
||||
layout = CompatibleJSONField()
|
||||
item_assignments = ItemAssignmentSerializer(many=True)
|
||||
|
||||
class Meta:
|
||||
model = BadgeLayout
|
||||
fields = ('id', 'name', 'default', 'layout', 'background', 'item_assignments')
|
||||
|
||||
|
||||
class BadgeLayoutViewSet(viewsets.ReadOnlyModelViewSet):
|
||||
serializer_class = BadgeLayoutSerializer
|
||||
queryset = BadgeLayout.objects.none()
|
||||
lookup_field = 'id'
|
||||
|
||||
def get_queryset(self):
|
||||
return self.request.event.badge_layouts.all()
|
||||
@@ -19,6 +19,7 @@ class BadgeItemForm(forms.ModelForm):
|
||||
event = kwargs.pop('event')
|
||||
super().__init__(*args, **kwargs)
|
||||
self.fields['layout'].label = _('Badge layout')
|
||||
self.fields['layout'].empty_label = _('(Event default)')
|
||||
self.fields['layout'].queryset = event.badge_layouts.all()
|
||||
self.fields['layout'].required = False
|
||||
|
||||
|
||||
@@ -70,6 +70,10 @@ def event_copy_data_receiver(sender, other, item_map, **kwargs):
|
||||
bl.pk = None
|
||||
bl.event = sender
|
||||
bl.save()
|
||||
|
||||
if bl.background and bl.background.name:
|
||||
bl.background.save('background.pdf', bl.background)
|
||||
|
||||
layout_map[oldid] = bl
|
||||
|
||||
for bi in BadgeItem.objects.filter(item__event=other):
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
from django.conf.urls import url
|
||||
|
||||
from pretix.api.urls import event_router
|
||||
from pretix.plugins.badges.api import BadgeLayoutViewSet
|
||||
|
||||
from .views import (
|
||||
LayoutCreate, LayoutDelete, LayoutEditorView, LayoutListView,
|
||||
LayoutSetDefault, OrderPrintDo,
|
||||
@@ -19,3 +22,4 @@ urlpatterns = [
|
||||
url(r'^control/event/(?P<organizer>[^/]+)/(?P<event>[^/]+)/badges/(?P<layout>\d+)/editor',
|
||||
LayoutEditorView.as_view(), name='edit'),
|
||||
]
|
||||
event_router.register('badgelayouts', BadgeLayoutViewSet)
|
||||
|
||||
Reference in New Issue
Block a user