Ejemplo n.º 1
0
 def perform_update(self, serializer):
     serializer.save(event=self.request.event)
     serializer.instance.question.log_action(
         'pretix.event.question.option.changed',
         user=self.request.user,
         auth=self.request.auth,
         data=merge_dicts(self.request.data, {'ORDER': serializer.instance.position}, {'id': serializer.instance.pk})
     )
Ejemplo n.º 2
0
 def perform_update(self, serializer):
     serializer.save(event=self.request.event)
     serializer.instance.base_item.log_action(
         'pretix.event.item.bundles.changed',
         user=self.request.user,
         auth=self.request.auth,
         data=merge_dicts(self.request.data, {'id': serializer.instance.pk})
     )
Ejemplo n.º 3
0
 def perform_update(self, serializer):
     serializer.save(event=self.request.event)
     serializer.instance.base_item.log_action(
         'pretix.event.item.bundles.changed',
         user=self.request.user,
         auth=self.request.auth,
         data=merge_dicts(self.request.data,
                          {'id': serializer.instance.pk}))
Ejemplo n.º 4
0
 def perform_update(self, serializer):
     serializer.save(event=self.request.event)
     serializer.instance.question.log_action(
         'pretix.event.question.option.changed',
         user=self.request.user,
         auth=self.request.auth,
         data=merge_dicts(self.request.data, {'ORDER': serializer.instance.position}, {'id': serializer.instance.pk})
     )
Ejemplo n.º 5
0
 def perform_create(self, serializer):
     inst = serializer.save(organizer=self.request.organizer)
     self.request.organizer.log_action(
         'pretix.webhook.created',
         user=self.request.user,
         auth=self.request.auth,
         data=merge_dicts(self.request.data, {'id': inst.pk})
     )
Ejemplo n.º 6
0
 def perform_update(self, serializer):
     serializer.save(event=self.request.event)
     serializer.instance.question.log_action(
         'pretix.event.question.option.changed',
         user=self.request.user,
         api_token=(self.request.auth if isinstance(self.request.auth, TeamAPIToken) else None),
         data=merge_dicts(self.request.data, {'ORDER': serializer.instance.position}, {'id': serializer.instance.pk})
     )
Ejemplo n.º 7
0
 def perform_create(self, serializer):
     inst = serializer.save(organizer=self.request.organizer)
     self.request.organizer.log_action('pretix.seatingplan.added',
                                       user=self.request.user,
                                       auth=self.request.auth,
                                       data=merge_dicts(
                                           self.request.data,
                                           {'id': inst.pk}))
Ejemplo n.º 8
0
 def perform_create(self, serializer):
     value = serializer.validated_data.pop('value')
     inst = serializer.save(issuer=self.request.organizer)
     inst.transactions.create(value=value)
     inst.log_action('pretix.giftcards.transaction.manual',
                     user=self.request.user,
                     auth=self.request.auth,
                     data=merge_dicts(self.request.data, {'id': inst.pk}))
Ejemplo n.º 9
0
 def perform_create(self, serializer):
     item = get_object_or_404(Item, pk=self.kwargs['item'], event=self.request.event)
     serializer.save(base_item=item)
     item.log_action(
         'pretix.event.item.bundles.added',
         user=self.request.user,
         auth=self.request.auth,
         data=merge_dicts(self.request.data, {'id': serializer.instance.pk})
     )
Ejemplo n.º 10
0
 def perform_create(self, serializer):
     q = get_object_or_404(Question, pk=self.kwargs['question'], event=self.request.event)
     serializer.save(question=q)
     q.log_action(
         'pretix.event.question.option.added',
         user=self.request.user,
         auth=self.request.auth,
         data=merge_dicts(self.request.data, {'ORDER': serializer.instance.position}, {'id': serializer.instance.pk})
     )
Ejemplo n.º 11
0
 def perform_create(self, serializer):
     item = get_object_or_404(Item, pk=self.kwargs['item'], event=self.request.event)
     serializer.save(base_item=item)
     item.log_action(
         'pretix.event.item.bundles.added',
         user=self.request.user,
         auth=self.request.auth,
         data=merge_dicts(self.request.data, {'id': serializer.instance.pk})
     )
Ejemplo n.º 12
0
 def perform_update(self, serializer):
     inst = serializer.save(organizer=self.request.organizer)
     self.request.organizer.log_action(
         'pretix.webhook.changed',
         user=self.request.user,
         auth=self.request.auth,
         data=merge_dicts(self.request.data, {'id': serializer.instance.pk})
     )
     return inst
Ejemplo n.º 13
0
 def perform_update(self, serializer):
     inst = serializer.save(organizer=self.request.organizer)
     self.request.organizer.log_action('pretix.webhook.changed',
                                       user=self.request.user,
                                       auth=self.request.auth,
                                       data=merge_dicts(
                                           self.request.data,
                                           {'id': serializer.instance.pk}))
     return inst
Ejemplo n.º 14
0
 def perform_create(self, serializer):
     q = get_object_or_404(Question, pk=self.kwargs['question'], event=self.request.event)
     serializer.save(question=q)
     q.log_action(
         'pretix.event.question.option.added',
         user=self.request.user,
         auth=self.request.auth,
         data=merge_dicts(self.request.data, {'ORDER': serializer.instance.position}, {'id': serializer.instance.pk})
     )
Ejemplo n.º 15
0
 def perform_create(self, serializer):
     item = get_object_or_404(Item, pk=self.kwargs['item'], event=self.request.event)
     category = get_object_or_404(ItemCategory, pk=self.request.data['addon_category'])
     serializer.save(base_item=item, addon_category=category)
     item.log_action(
         'pretix.event.item.addons.added',
         user=self.request.user,
         api_token=(self.request.auth if isinstance(self.request.auth, TeamAPIToken) else None),
         data=merge_dicts(self.request.data, {'ORDER': serializer.instance.position}, {'id': serializer.instance.pk})
     )
Ejemplo n.º 16
0
 def perform_create(self, serializer):
     item = self.item
     category = get_object_or_404(ItemCategory, pk=self.request.data['addon_category'])
     serializer.save(base_item=item, addon_category=category)
     item.log_action(
         'pretix.event.item.addons.added',
         user=self.request.user,
         auth=self.request.auth,
         data=merge_dicts(self.request.data, {'ORDER': serializer.instance.position}, {'id': serializer.instance.pk})
     )
Ejemplo n.º 17
0
 def perform_create(self, serializer):
     item = self.item
     category = get_object_or_404(ItemCategory, pk=self.request.data['addon_category'])
     serializer.save(base_item=item, addon_category=category)
     item.log_action(
         'pretix.event.item.addons.added',
         user=self.request.user,
         auth=self.request.auth,
         data=merge_dicts(self.request.data, {'ORDER': serializer.instance.position}, {'id': serializer.instance.pk})
     )
Ejemplo n.º 18
0
 def perform_update(self, serializer):
     if serializer.instance.events.exists() or serializer.instance.subevents.exists():
         raise PermissionDenied('This plan can not be changed while it is in use for an event.')
     inst = serializer.save(organizer=self.request.organizer)
     self.request.organizer.log_action(
         'pretix.seatingplan.changed',
         user=self.request.user,
         auth=self.request.auth,
         data=merge_dicts(self.request.data, {'id': serializer.instance.pk})
     )
     return inst
Ejemplo n.º 19
0
 def perform_create(self, serializer):
     item = self.item
     if not item.has_variations:
         raise PermissionDenied('This variation cannot be created because the item does not have variations. '
                                'Changing a product without variations to a product with variations is not allowed.')
     serializer.save(item=item)
     item.log_action(
         'pretix.event.item.variation.added',
         user=self.request.user,
         auth=self.request.auth,
         data=merge_dicts(self.request.data, {'ORDER': serializer.instance.position}, {'id': serializer.instance.pk},
                          {'value': serializer.instance.value})
     )
Ejemplo n.º 20
0
 def perform_create(self, serializer):
     item = get_object_or_404(Item, pk=self.kwargs['item'], event=self.request.event)
     if not item.has_variations:
         raise PermissionDenied('This variation cannot be created because the item does not have variations. '
                                'Changing a product without variations to a product with variations is not allowed.')
     serializer.save(item=item)
     item.log_action(
         'pretix.event.item.variation.added',
         user=self.request.user,
         api_token=(self.request.auth if isinstance(self.request.auth, TeamAPIToken) else None),
         data=merge_dicts(self.request.data, {'ORDER': serializer.instance.position}, {'id': serializer.instance.pk},
                          {'value': serializer.instance.value})
     )
Ejemplo n.º 21
0
 def perform_create(self, serializer):
     item = self.item
     if not item.has_variations:
         raise PermissionDenied('This variation cannot be created because the item does not have variations. '
                                'Changing a product without variations to a product with variations is not allowed.')
     serializer.save(item=item)
     item.log_action(
         'pretix.event.item.variation.added',
         user=self.request.user,
         auth=self.request.auth,
         data=merge_dicts(self.request.data, {'ORDER': serializer.instance.position}, {'id': serializer.instance.pk},
                          {'value': serializer.instance.value})
     )
Ejemplo n.º 22
0
    def perform_update(self, serializer):
        current_live_value = serializer.instance.live
        updated_live_value = serializer.validated_data.get('live', None)
        current_plugins_value = serializer.instance.get_plugins()
        updated_plugins_value = serializer.validated_data.get('plugins', None)

        super().perform_update(serializer)

        if updated_live_value is not None and updated_live_value != current_live_value:
            log_action = 'pretix.event.live.activated' if updated_live_value else 'pretix.event.live.deactivated'
            serializer.instance.log_action(
                log_action,
                user=self.request.user,
                api_token=(self.request.auth if isinstance(
                    self.request.auth, TeamAPIToken) else None),
                data=self.request.data)

        if updated_plugins_value is not None and set(
                updated_plugins_value) != set(current_plugins_value):
            enabled = {
                m: 'enabled'
                for m in updated_plugins_value
                if m not in current_plugins_value
            }
            disabled = {
                m: 'disabled'
                for m in current_plugins_value
                if m not in updated_plugins_value
            }
            changed = merge_dicts(enabled, disabled)

            for module, action in changed.items():
                serializer.instance.log_action(
                    'pretix.event.plugins.' + action,
                    user=self.request.user,
                    api_token=(self.request.auth if isinstance(
                        self.request.auth, TeamAPIToken) else None),
                    data={'plugin': module})

        other_keys = {
            k: v
            for k, v in serializer.validated_data.items()
            if k not in ['plugins', 'live']
        }
        if other_keys:
            serializer.instance.log_action(
                'pretix.event.changed',
                user=self.request.user,
                api_token=(self.request.auth if isinstance(
                    self.request.auth, TeamAPIToken) else None),
                data=self.request.data)
Ejemplo n.º 23
0
 def form_valid(self, form):
     form.instance.organizer = self.request.organizer
     ret = super().form_valid(form)
     self.request.organizer.log_action(
         'pretix.webhook.created',
         user=self.request.user,
         data=merge_dicts(
             {
                 k: form.cleaned_data[k] if k != 'limit_events' else
                 [e.id for e in getattr(self.object, k).all()]
                 for k in form.changed_data
             }, {'id': form.instance.pk}))
     new_listeners = set(form.cleaned_data['events'])
     for l in new_listeners:
         self.object.listeners.create(action_type=l)
     return ret
Ejemplo n.º 24
0
    def form_valid(self, form):
        if form.has_changed():
            self.request.organizer.log_action(
                'pretix.webhook.changed',
                user=self.request.user,
                data=merge_dicts(
                    {
                        k: form.cleaned_data[k] if k != 'limit_events' else
                        [e.id for e in getattr(self.object, k).all()]
                        for k in form.changed_data
                    }, {'id': form.instance.pk}))

        current_listeners = set(
            self.object.listeners.values_list('action_type', flat=True))
        new_listeners = set(form.cleaned_data['events'])
        for l in current_listeners - new_listeners:
            self.object.listeners.filter(action_type=l).delete()
        for l in new_listeners - current_listeners:
            self.object.listeners.create(action_type=l)

        messages.success(self.request, _('Your changes have been saved.'))
        return super().form_valid(form)
Ejemplo n.º 25
0
    def perform_update(self, serializer):
        current_live_value = serializer.instance.live
        updated_live_value = serializer.validated_data.get('live', None)
        current_plugins_value = serializer.instance.get_plugins()
        updated_plugins_value = serializer.validated_data.get('plugins', None)

        super().perform_update(serializer)

        if updated_live_value is not None and updated_live_value != current_live_value:
            log_action = 'pretix.event.live.activated' if updated_live_value else 'pretix.event.live.deactivated'
            serializer.instance.log_action(
                log_action,
                user=self.request.user,
                auth=self.request.auth,
                data=self.request.data
            )

        if updated_plugins_value is not None and set(updated_plugins_value) != set(current_plugins_value):
            enabled = {m: 'enabled' for m in updated_plugins_value if m not in current_plugins_value}
            disabled = {m: 'disabled' for m in current_plugins_value if m not in updated_plugins_value}
            changed = merge_dicts(enabled, disabled)

            for module, action in changed.items():
                serializer.instance.log_action(
                    'pretix.event.plugins.' + action,
                    user=self.request.user,
                    auth=self.request.auth,
                    data={'plugin': module}
                )

        other_keys = {k: v for k, v in serializer.validated_data.items() if k not in ['plugins', 'live']}
        if other_keys:
            serializer.instance.log_action(
                'pretix.event.changed',
                user=self.request.user,
                auth=self.request.auth,
                data=self.request.data
            )
Ejemplo n.º 26
0
 def form_valid(self, form):
     form.instance.organizer = self.request.organizer
     ret = super().form_valid(form)
     self.request.organizer.log_action('pretix.webhook.created', user=self.request.user, data=merge_dicts({
         k: form.cleaned_data[k] if k != 'limit_events' else [e.id for e in getattr(self.object, k).all()]
         for k in form.changed_data
     }, {'id': form.instance.pk}))
     new_listeners = set(form.cleaned_data['events'])
     for l in new_listeners:
         self.object.listeners.create(action_type=l)
     return ret
Ejemplo n.º 27
0
    def form_valid(self, form):
        if form.has_changed():
            self.request.organizer.log_action('pretix.webhook.changed', user=self.request.user, data=merge_dicts({
                k: form.cleaned_data[k] if k != 'limit_events' else [e.id for e in getattr(self.object, k).all()]
                for k in form.changed_data
            }, {'id': form.instance.pk}))

        current_listeners = set(self.object.listeners.values_list('action_type', flat=True))
        new_listeners = set(form.cleaned_data['events'])
        for l in current_listeners - new_listeners:
            self.object.listeners.filter(action_type=l).delete()
        for l in new_listeners - current_listeners:
            self.object.listeners.create(action_type=l)

        messages.success(self.request, _('Your changes have been saved.'))
        return super().form_valid(form)