Esempio n. 1
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.get_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
Esempio n. 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.get_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