forked from CGM_Public/pretix_original
API: Modified settings endpoint for devices
This commit is contained in:
@@ -526,7 +526,7 @@ information about the properties.
|
|||||||
|
|
||||||
Get current values of event settings.
|
Get current values of event settings.
|
||||||
|
|
||||||
Permission required: "Can change event settings"
|
Permission required: "Can change event settings" (Exception: with device auth, *some* settings can always be *read*.)
|
||||||
|
|
||||||
**Example request**:
|
**Example request**:
|
||||||
|
|
||||||
|
|||||||
@@ -660,3 +660,40 @@ class EventSettingsSerializer(serializers.Serializer):
|
|||||||
settings_dict.update(data)
|
settings_dict.update(data)
|
||||||
validate_settings(self.event, settings_dict)
|
validate_settings(self.event, settings_dict)
|
||||||
return data
|
return data
|
||||||
|
|
||||||
|
|
||||||
|
class DeviceEventSettingsSerializer(EventSettingsSerializer):
|
||||||
|
default_fields = [
|
||||||
|
'locales',
|
||||||
|
'locale',
|
||||||
|
'last_order_modification_date',
|
||||||
|
'show_quota_left',
|
||||||
|
'max_items_per_order',
|
||||||
|
'attendee_names_asked',
|
||||||
|
'attendee_names_required',
|
||||||
|
'attendee_emails_asked',
|
||||||
|
'attendee_emails_required',
|
||||||
|
'attendee_addresses_asked',
|
||||||
|
'attendee_addresses_required',
|
||||||
|
'attendee_company_asked',
|
||||||
|
'attendee_company_required',
|
||||||
|
'ticket_download',
|
||||||
|
'ticket_download_addons',
|
||||||
|
'ticket_download_nonadm',
|
||||||
|
'ticket_download_pending',
|
||||||
|
'invoice_address_asked',
|
||||||
|
'invoice_address_required',
|
||||||
|
'invoice_address_vatid',
|
||||||
|
'invoice_address_company_required',
|
||||||
|
'invoice_address_beneficiary',
|
||||||
|
'invoice_address_custom_field',
|
||||||
|
'invoice_name_required',
|
||||||
|
'invoice_address_not_asked_free',
|
||||||
|
'invoice_address_from_name',
|
||||||
|
'invoice_address_from',
|
||||||
|
'invoice_address_from_zipcode',
|
||||||
|
'invoice_address_from_city',
|
||||||
|
'invoice_address_from_country',
|
||||||
|
'invoice_address_from_tax_id',
|
||||||
|
'invoice_address_from_vat_id',
|
||||||
|
]
|
||||||
|
|||||||
@@ -10,8 +10,8 @@ from rest_framework.response import Response
|
|||||||
|
|
||||||
from pretix.api.auth.permission import EventCRUDPermission
|
from pretix.api.auth.permission import EventCRUDPermission
|
||||||
from pretix.api.serializers.event import (
|
from pretix.api.serializers.event import (
|
||||||
CloneEventSerializer, EventSerializer, EventSettingsSerializer,
|
CloneEventSerializer, DeviceEventSettingsSerializer, EventSerializer,
|
||||||
SubEventSerializer, TaxRuleSerializer,
|
EventSettingsSerializer, SubEventSerializer, TaxRuleSerializer,
|
||||||
)
|
)
|
||||||
from pretix.api.views import ConditionalListView
|
from pretix.api.views import ConditionalListView
|
||||||
from pretix.base.models import (
|
from pretix.base.models import (
|
||||||
@@ -337,10 +337,16 @@ class TaxRuleViewSet(ConditionalListView, viewsets.ModelViewSet):
|
|||||||
|
|
||||||
|
|
||||||
class EventSettingsView(views.APIView):
|
class EventSettingsView(views.APIView):
|
||||||
permission = 'can_change_event_settings'
|
permission = None
|
||||||
|
write_permission = 'can_change_event_settings'
|
||||||
|
|
||||||
def get(self, request, *args, **kwargs):
|
def get(self, request, *args, **kwargs):
|
||||||
|
if isinstance(request.auth, Device):
|
||||||
|
s = DeviceEventSettingsSerializer(instance=request.event.settings, event=request.event)
|
||||||
|
elif 'can_change_event_settings' in request.eventpermset:
|
||||||
s = EventSettingsSerializer(instance=request.event.settings, event=request.event)
|
s = EventSettingsSerializer(instance=request.event.settings, event=request.event)
|
||||||
|
else:
|
||||||
|
raise PermissionDenied()
|
||||||
if 'explain' in request.GET:
|
if 'explain' in request.GET:
|
||||||
return Response({
|
return Response({
|
||||||
fname: {
|
fname: {
|
||||||
|
|||||||
Reference in New Issue
Block a user