예제 #1
0
파일: forms.py 프로젝트: pilamb/djangoShop
def page(request, pk):
    try:
        mod = Product.objects.get(id=pk)
    except Product.DoesNotExist:
        raise Product.DoesNotExist
    user = request.user
    if request.POST:
        if "cancel" in request.POST:
            return HttpResponseRedirect(reverse_lazy('index'))
        else:
            form = NewConcreteOrderForm(request.POST)
            if request.user.is_authenticated():
                if form.is_valid():
                    p = Order(
                        user=user,
                        module=mod,
                        information=mod.information,
                        paid=False,
                        )
                    if mod.on_sale:
                        mod.on_sale = False
                        mod.save()
                    p.painting = False
                    # TODO: remove all paint color logic from template view etc
                    p.save()
                    new_message = ContactMessage(
                        user=user,
                        notified=False,
                        text=
                        u"""Congratulations, the order has been created
                        correctly and it is in the state %s.
                        Soon you will receive confirmation of the states changes
                        . Thanks""" % p.state)
                    new_message.save()
                    mod.quitar_of_sale()
                    mod.save()
                    messages.success(
                        request,
                        '¡Order created <b>correctly</b>, thanks!')
                    return HttpResponseRedirect(reverse_lazy('panel'))
                else:
                    return render(request,
                                  'shop/create_order.html',
                                  {'form': form, 'pk': pk})
    else:
        form = NewConcreteOrderForm()
        return render(request, 'shop/create_order.html',
                      {'form': form, 'pk': pk})