示例#1
0
文件: order.py 项目: bsod85/pretix
    def extend(self, request, **kwargs):
        new_date = request.data.get('expires', None)
        force = request.data.get('force', False)
        if not new_date:
            return Response({'detail': 'New date is missing.'},
                            status=status.HTTP_400_BAD_REQUEST)

        df = serializers.DateField()
        try:
            new_date = df.to_internal_value(new_date)
        except:
            return Response({'detail': 'New date is invalid.'},
                            status=status.HTTP_400_BAD_REQUEST)

        tz = pytz.timezone(self.request.event.settings.timezone)
        new_date = make_aware(
            datetime.datetime.combine(
                new_date, datetime.time(hour=23, minute=59, second=59)), tz)

        order = self.get_object()

        try:
            extend_order(
                order,
                new_date=new_date,
                force=force,
                user=request.user if request.user.is_authenticated else None,
                auth=request.auth,
            )
            return self.retrieve(request, [], **kwargs)
        except OrderError as e:
            return Response({'detail': str(e)},
                            status=status.HTTP_400_BAD_REQUEST)
示例#2
0
文件: orders.py 项目: dafal/pretix
 def post(self, *args, **kwargs):
     if self.form.is_valid():
         try:
             extend_order(self.order,
                          new_date=self.form.cleaned_data.get('expires'),
                          force=self.form.cleaned_data.get(
                              'quota_ignore', False),
                          user=self.request.user)
             messages.success(self.request,
                              _('The payment term has been changed.'))
         except OrderError as e:
             messages.error(self.request, str(e))
             return self._redirect_here()
         except LockTimeoutException:
             messages.error(
                 self.request,
                 _('We were not able to process the request completely as the '
                   'server was too busy.'))
         return self._redirect_back()
     else:
         return self.get(*args, **kwargs)
示例#3
0
    def extend(self, request, **kwargs):
        new_date = request.data.get('expires', None)
        force = request.data.get('force', False)
        if not new_date:
            return Response(
                {'detail': 'New date is missing.'},
                status=status.HTTP_400_BAD_REQUEST
            )

        df = serializers.DateField()
        try:
            new_date = df.to_internal_value(new_date)
        except:
            return Response(
                {'detail': 'New date is invalid.'},
                status=status.HTTP_400_BAD_REQUEST
            )

        tz = pytz.timezone(self.request.event.settings.timezone)
        new_date = make_aware(datetime.datetime.combine(
            new_date,
            datetime.time(hour=23, minute=59, second=59)
        ), tz)

        order = self.get_object()

        try:
            extend_order(
                order,
                new_date=new_date,
                force=force,
                user=request.user if request.user.is_authenticated else None,
                auth=request.auth,
            )
            return self.retrieve(request, [], **kwargs)
        except OrderError as e:
            return Response(
                {'detail': str(e)},
                status=status.HTTP_400_BAD_REQUEST
            )