Example #1
0
    def post(self, request, **kwargs):
        action = request.POST.get('_action', None)
        cart = get_cart(request)

        if action == 'remove_all':
            cart.empty()
        else:
            form = ProductForm(request.POST)

            if form.is_valid():
                product = form.cleaned_data.get('product')
                quantity = form.cleaned_data.get('quantity', 1)

                if action == 'add':
                    cart.append(product, int(product.price), quantity)

                elif action == 'remove':
                    cart.remove(product, quantity)

                elif action == 'remove_product':
                    cart.remove(product)

                else:
                    raise Http404
        cart.save()
        if request.is_ajax():
            return HttpResponse(json.dumps({'cart': cart.serialize()}),
                                content_type='application/json', **kwargs)
        else:
            return redirect('plugshop-cart')
Example #2
0
 def notify_managers(self, order):
     cart = get_cart(self.request)
     msg = render_to_string('plugshop/email/order_admin.html', {
         'cart': cart,
         'order': order,
         'total': cart.price_total(),
     })
     mail_managers(self.get_admin_mail_title(order), '', html_message=msg)
Example #3
0
    def get_initial(self, *args, **kwargs):
        cart = get_cart(self.request)
        user = self.request.user
        initial = {}
        if user.is_authenticated():
            initial.update({
                'name': "%s %s" % (user.first_name, user.last_name),
                'email': user.email
            })

        return initial
Example #4
0
    def notify_customer(self, order):
        cart = get_cart(self.request)

        msg = render_to_string('plugshop/email/order_user.html', {
            'cart': cart,
            'order': order,
            'total': cart.price_total(),
        })
        mail = EmailMessage(self.get_customer_mail_title(order), msg,
                            django_settings.SERVER_EMAIL, [order.user.email])
        mail.content_subtype = 'html'
        mail.send()
Example #5
0
    def get(self, request, **kwargs):
        cart = get_cart(request)
        context = {}

        if request.is_ajax():
            context['cart'] = cart.serialize()
            context = self.extend_context_ajax(context)
            return HttpResponse(json.dumps(context),
                                content_type='application/json', **kwargs)
        else:
            context['form'] = ORDER_FORM_CLASS()
            context = self.extend_context(context)
            if len(cart) == 0:
                return redirect('plugshop')
            else:
                return self.render_to_response(context)
Example #6
0
    def form_valid(self, form):
        from plugshop.signals import order_create

        cart = get_cart(self.request)
        if len(cart) == 0:
            raise Http404
        order = form.save(cart=cart)

        self.notify_managers(order)
        self.notify_customer(order)

        messages.info(self.request, settings.MESSAGE_SUCCESS)
        cart.empty()

        self.request.session['order'] = order

        order_create.send(sender=self, order=order, request=self.request)

        return redirect(order.get_absolute_url())
Example #7
0
 def get(self, request, **kwargs):
     cart = get_cart(request)
     if len(cart) == 0:
         return redirect('plugshop')
     else:
         return super(OrderCreateView, self).get(request, **kwargs)
Example #8
0
 def get_form_kwargs(self):
     cart = get_cart(self.request)
     form_kwargs = super(OrderCreateView, self).get_form_kwargs()
     return form_kwargs