コード例 #1
0
ファイル: order.py プロジェクト: syaiful6/shopie
 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)
コード例 #2
0
ファイル: payment.py プロジェクト: syaiful6/shopie
 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
コード例 #3
0
ファイル: payment.py プロジェクト: syaiful6/shopie
 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
コード例 #4
0
ファイル: current_order.py プロジェクト: syaiful6/shopie
 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
コード例 #5
0
ファイル: current_order.py プロジェクト: syaiful6/shopie
 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()
コード例 #6
0
ファイル: current_order.py プロジェクト: syaiful6/shopie
 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
コード例 #7
0
ファイル: current_order.py プロジェクト: syaiful6/shopie
    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)
コード例 #8
0
ファイル: current_order.py プロジェクト: syaiful6/shopie
 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)
コード例 #9
0
ファイル: current_order.py プロジェクト: syaiful6/shopie
 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()