forked from CGM_Public/pretix_original
* Data model * little crud * SubEventItemForm etc * Drop SubEventItem.active, quota editor * Fix failing tests * First frontend stuff * Addons form stuff * Quota calculation * net price display on EventIndex * Add tests, solve some bugs * Correct quota selection in more places, consolidate pricing logic * Fix failing quota tests * Fix TypeError * Add tests for checkout * Fixed a bug in QuotaForm * Prevent immutable cart if a quota was removed from an item * Add tests for pricing * Handle waiting list * Filter in check-in list * Fixed import lost in rebase * Fix waiting list widget * Voucher management * Voucher redemption * Fix broken tests * Add subevents to OrderChangeManager * Create a subevent during event creation * Fix bulk voucher creation * Introduce subevent.active * Copy from for subevents * Show active in list * ICal download for subevents * Check start and end of presale * Failing tests / show cart logic * Test * Rebase migrations * REST API integration of sub-events * Integrate quota calculation into the traditional quota form * Make subevent argument to add_position optional * Log-display foo * pretixdroid and subevents * Filter by subevent * Add more tests * Some mor tests * Rebase fixes * More tests * Relative dates * Restrict selection in relative datetime widgets * Filter subevent list * Re-label has_subevents * Rebase fixes, subevents in calendar view * Performance and caching issues * Refactor calendar templates * Permission tests * Calendar fixes and month selection * subevent selection * Rename subevents to dates * Add tests for calendar views
65 lines
1.9 KiB
Python
65 lines
1.9 KiB
Python
from rest_framework import serializers
|
|
|
|
from pretix.api.serializers.i18n import I18nAwareModelSerializer
|
|
from pretix.base.models import (
|
|
Item, ItemAddOn, ItemCategory, ItemVariation, Question, QuestionOption,
|
|
Quota,
|
|
)
|
|
|
|
|
|
class InlineItemVariationSerializer(I18nAwareModelSerializer):
|
|
class Meta:
|
|
model = ItemVariation
|
|
fields = ('id', 'value', 'active', 'description',
|
|
'position', 'default_price', 'price')
|
|
|
|
|
|
class InlineItemAddOnSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = ItemAddOn
|
|
fields = ('addon_category', 'min_count', 'max_count',
|
|
'position')
|
|
|
|
|
|
class ItemSerializer(I18nAwareModelSerializer):
|
|
addons = InlineItemAddOnSerializer(many=True)
|
|
variations = InlineItemVariationSerializer(many=True)
|
|
|
|
class Meta:
|
|
model = Item
|
|
fields = ('id', 'category', 'name', 'active', 'description',
|
|
'default_price', 'free_price', 'tax_rate', 'admission',
|
|
'position', 'picture', 'available_from', 'available_until',
|
|
'require_voucher', 'hide_without_voucher', 'allow_cancel',
|
|
'min_per_order', 'max_per_order', 'has_variations',
|
|
'variations', 'addons')
|
|
|
|
|
|
class ItemCategorySerializer(I18nAwareModelSerializer):
|
|
|
|
class Meta:
|
|
model = ItemCategory
|
|
fields = ('id', 'name', 'description', 'position', 'is_addon')
|
|
|
|
|
|
class InlineQuestionOptionSerializer(I18nAwareModelSerializer):
|
|
|
|
class Meta:
|
|
model = QuestionOption
|
|
fields = ('id', 'answer')
|
|
|
|
|
|
class QuestionSerializer(I18nAwareModelSerializer):
|
|
options = InlineQuestionOptionSerializer(many=True)
|
|
|
|
class Meta:
|
|
model = Question
|
|
fields = ('id', 'question', 'type', 'required', 'items', 'options', 'position')
|
|
|
|
|
|
class QuotaSerializer(I18nAwareModelSerializer):
|
|
|
|
class Meta:
|
|
model = Quota
|
|
fields = ('id', 'name', 'size', 'items', 'variations', 'subevent')
|