def current(self, request, *args, **kwargs): obj = get_or_create_current_order(self.request, save=True) serializer = OrderSerializer(obj, many=False) try: headers = {'Location': serializer.data[api_settings.URL_FIELD_NAME]} except (TypeError, KeyError): headers = {} return Response(serializer.data, status=200, headers=headers)
def get_context_data(self, **kwargs): ctx = super(PaymentCheckoutStep, self).get_context_data(**kwargs) order = get_or_create_current_order(self.request) order_items = order.items.all() ctx.update({ 'order': order, 'order_items': order_items }) return ctx
def get_form_kwargs(self): kwargs = super(PaymentCheckoutStep, self).get_form_kwargs() instance = None if hasattr(self, 'object'): instance = self.object else: instance = get_or_create_current_order(self.request) kwargs.update({ 'instance': instance }) return kwargs
def get_context_data(self, **kwargs): ctx = {} order = get_or_create_current_order(self.request) order_items = order.items.all() formset = get_current_order_item_formset(order_items=order_items) ctx.update({ 'order': order, 'order_items': order_items, 'formset': formset }) return ctx
def delete(self, request, *args, **kwargs): order = get_or_create_current_order(request) item_id = kwargs.get('item_id') try: item = order.items.get(pk=item_id) item.delete() order.save() except ObjectDoesNotExist: return Http404("%d doesnt exists" % (item_id,)) else: self.delete_success()
def post(self, request, *args, **kwargs): order = get_or_create_current_order(request) item_id = kwargs.get('item_id') try: quantity = int(request.POST['item_quantity']) except (KeyError, ValueError): response = HttpResponseBadRequest('The quantity has to be a number') else: order.update_quantity(quantity, order_item=item_id) response = self.put_success() return response
def post(self, request, *args, **kwargs): try: product_id = int(self.request.POST['add_item_id']) product_quantity = int(self.request.POST.get('add_item_quantity', 1)) except (KeyError, ValueError): message_api.warning(self.request, 'error, silahkan pilih product') return HttpResponseRedirect(reverse('shopie:cart')) product = Product.objects.get(pk=product_id) order = get_or_create_current_order(self.request, save=True) item = order.add_item(product, product_quantity) order.save() return self.post_success(product, item)
def put(self, *args, **kwargs): order = get_or_create_current_order(self.request) order_items = order.items.all() try: formset = get_current_order_item_formset(order_items=order_items, data=self.request.POST) except ValidationError: return redirect('shopie:cart') if formset.is_valid(): formset.save() return self.put_success() ctx = self.get_context_data(**kwargs) ctx.update({'formset': formset, }) return self.render_to_response(ctx)
def delete(self, *args, **kwargs): order = get_or_create_current_order(self.request) if order.pk: order.items.all().delete() order.delete() return self.delete_success()