mirror of
https://github.com/pretix/pretix.git
synced 2026-05-06 15:24:02 +00:00
56 lines
1.9 KiB
Python
56 lines
1.9 KiB
Python
from django_countries.serializers import CountryFieldMixin
|
|
from rest_framework.fields import Field
|
|
|
|
from pretix.api.serializers.i18n import I18nAwareModelSerializer
|
|
from pretix.base.models import Event, TaxRule
|
|
from pretix.base.models.event import SubEvent
|
|
from pretix.base.models.items import SubEventItem, SubEventItemVariation
|
|
|
|
|
|
class MetaDataField(Field):
|
|
|
|
def to_representation(self, value):
|
|
return {
|
|
v.property.name: v.value for v in value.meta_values.all()
|
|
}
|
|
|
|
|
|
class EventSerializer(I18nAwareModelSerializer):
|
|
meta_data = MetaDataField(source='*')
|
|
|
|
class Meta:
|
|
model = Event
|
|
fields = ('name', 'slug', 'live', 'currency', 'date_from',
|
|
'date_to', 'date_admission', 'is_public', 'presale_start',
|
|
'presale_end', 'location', 'has_subevents', 'meta_data')
|
|
|
|
|
|
class SubEventItemSerializer(I18nAwareModelSerializer):
|
|
class Meta:
|
|
model = SubEventItem
|
|
fields = ('item', 'price')
|
|
|
|
|
|
class SubEventItemVariationSerializer(I18nAwareModelSerializer):
|
|
class Meta:
|
|
model = SubEventItemVariation
|
|
fields = ('variation', 'price')
|
|
|
|
|
|
class SubEventSerializer(I18nAwareModelSerializer):
|
|
item_price_overrides = SubEventItemSerializer(source='subeventitem_set', many=True)
|
|
variation_price_overrides = SubEventItemVariationSerializer(source='subeventitemvariation_set', many=True)
|
|
meta_data = MetaDataField(source='*')
|
|
|
|
class Meta:
|
|
model = SubEvent
|
|
fields = ('id', 'name', 'date_from', 'date_to', 'active', 'date_admission',
|
|
'presale_start', 'presale_end', 'location',
|
|
'item_price_overrides', 'variation_price_overrides', 'meta_data')
|
|
|
|
|
|
class TaxRuleSerializer(CountryFieldMixin, I18nAwareModelSerializer):
|
|
class Meta:
|
|
model = TaxRule
|
|
fields = ('id', 'name', 'rate', 'price_includes_tax', 'eu_reverse_charge', 'home_country')
|