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)
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)
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)
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)