示例#1
0
文件: handlers.py 项目: tovmeod/anaf
    def create(self, request, *args, **kwargs):
        if request.data is None:
            return rc.BAD_REQUEST

        if not self.check_create_permission(request, "x"):
            return rc.FORBIDDEN

        order = getOrNone(
            SaleOrder, pk=request.data['order']) if 'order' in request.data else None
        product = getOrNone(
            OrderedProduct, pk=request.data['product']) if 'product' in request.data else None
        productset = getOrNone(
            Product, pk=request.data['productset']) if 'productset' in request.data else None
        subscription = Subscription()
        if order:
            subscription.client = order.client
        if product:
            subscription.product = product.product
        if productset:
            subscription.product = productset
        form = SubscriptionForm(
            request.user.profile, request.data, instance=subscription)
        if form.is_valid():
            subscription = form.save(commit=False)
            subscription.renew()
            subscription.save()
            subscription.set_user_from_request(request)
            if product:
                product.subscription = subscription
                product.save()
            return subscription
        else:
            self.status = 400
            return form.errors
示例#2
0
    def create(self, request, *args, **kwargs):
        if request.data is None:
            return rc.BAD_REQUEST

        if not self.check_create_permission(request, "x"):
            return rc.FORBIDDEN

        order = getOrNone(
            SaleOrder,
            pk=request.data['order']) if 'order' in request.data else None
        product = getOrNone(
            OrderedProduct,
            pk=request.data['product']) if 'product' in request.data else None
        productset = getOrNone(Product, pk=request.data['productset']
                               ) if 'productset' in request.data else None
        subscription = Subscription()
        if order:
            subscription.client = order.client
        if product:
            subscription.product = product.product
        if productset:
            subscription.product = productset
        form = SubscriptionForm(request.user.profile,
                                request.data,
                                instance=subscription)
        if form.is_valid():
            subscription = form.save(commit=False)
            subscription.renew()
            subscription.save()
            subscription.set_user_from_request(request)
            if product:
                product.subscription = subscription
                product.save()
            return subscription
        else:
            self.status = 400
            return form.errors