コード例 #1
0
    def post(self, request, *args, **kwargs):
        form_class = self.get_form_class()
        form = form_class(request.POST, instance=get_order_product(product=self.get_object(),
                                                                   order=get_or_create_order(
                                                                       user=self.request.user
                                                                   )))
        if form.is_valid():
            order = get_or_create_order(request.user)
            assert order.finalized is False
            assert order.paid is False

            order_product = form.save(commit=False)
            order_product.order = order

            order_product.retail_price = self.get_object().retail_price
            order_product.base_price = self.get_object().base_price

            if order_product.product.order_round:
                assert order_product.product.order_round == self.request.current_order_round  # TODO: nicer error, or just disable ordering.

            # Remove product from order when amount is zero
            if order_product.amount < 1:
                if order_product.id is not None:
                    order_product.delete()
                return self.form_valid(form)

            order_product.save()
        return self.form_valid(form)
コード例 #2
0
ファイル: views.py プロジェクト: thomaspaulb/voko
    def post(self, request, *args, **kwargs):
        form_class = self.get_form_class()
        form = form_class(request.POST, instance=get_order_product(
            product=self.get_object(),
            order=get_or_create_order(user=self.request.user)))

        if form.is_valid():
            order = get_or_create_order(request.user)

            # Sanity checks
            assert order.finalized is False
            assert order.paid is False

            order_product = form.save(commit=False)
            order_product.order = order

            order_product.retail_price = self.get_object().retail_price
            order_product.base_price = self.get_object().base_price

            if order_product.product.order_round:
                # TODO: nicer error, or just disable ordering.
                assert (order_product.product.order_round ==
                        self.request.current_order_round)

            # Remove product from order when amount is zero
            if order_product.amount < 1:
                if order_product.id is not None:
                    order_product.delete()
                return self.form_valid(form)

            order_product.save()
        return self.form_valid(form)
コード例 #3
0
ファイル: views.py プロジェクト: thomaspaulb/voko
 def form(self):
     existing_op = get_order_product(
         product=self.get_object(),
         order=get_or_create_order(self.request.user)
     )
     return OrderProductForm(initial=self._get_initial(),
                             instance=existing_op)
コード例 #4
0
 def form(self):
     existing_op = get_order_product(product=self.get_object(),
                                     order=get_or_create_order(self.request.user))
     return OrderProductForm(initial=self._get_initial(), instance=existing_op)