def exibe_produto(request, id, slug_do_produto): produto = get_object_or_404(Product, id=id) carrinho = Carrinho(request) qtd = carrinho.get_quantidade_total(produto.id) form = QuantidadeForm(initial={'quantidade': qtd, 'id': produto.id}) return render(request, 'carrinho/exibe_produto.html', {'produto': produto})
def remove_produto_carrinho(request): form = RemoveProdutoDoCarrinhoForm(request.POST) if form.is_valid(): carrinho = Carrinho(request) carrinho.remover(form.cleaned_data['produto_id']) return exibe_carrinho(request) else: #print(form.errors) p/ debug raise ValueError('Ocorreu um erro inesperado ao adicionar um produto ao carrinho.')
def atualiza_carrinho(request): form = QuantidadeForm(request.POST) if form.is_valid(): produto_id = form.cleaned_data['produto_id'] quantidade = form.cleaned_data['quantidade'] carrinho = Carrinho(request) if (quantidade == 0): carrinho.remover(produto_id) preco_total = 0.0 else: carrinho.atualiza(produto_id, quantidade) preco_total = carrinho.get_preco_total(produto_id) qtd = carrinho.get_quantidade_carrinho() preco_carrinho = carrinho.get_preco_carrinho() print('***** id do produto = ' + produto_id + ' quantidade = ' + str(quantidade) + ' preço total do produto = ' + str(preco_total)) print('***** qtd no carrinho = ' + str(qtd) + ' valor do carrinho = ' + str(preco_carrinho)) return render(request, 'carrinho/resposta_ajax.html') else: raise ValueError( 'Ocorreu um erro inesperado ao adicionar um produto ao carrinho.')
def atualiza_qtd_carrinho(request): form = EstoqueForm(request.POST) if form.is_valid(): produto_id = form.cleaned_data['produto_id'] estoque = form.cleaned_data['estoque'] carrinho = Carrinho(request) carrinho.alterar(produto_id, estoque) return exibe_carrinho(request) else: # print(form.errors) p/ debug raise ValueError('Ocorreu um erro inesperado ao adicionar um produto ao carrinho.')
def exibe_produto(request, id, slug_do_produto): produto = get_object_or_404(Produto, id=id) carrinho = Carrinho(request) qtd = carrinho.get_quantidade_total(id) form = QuantidadeForm(initial={ 'quantidade': qtd, 'produto_id': signer.sign(id) }) return render(request, 'carrinho/exibe_produto.html', { 'produto': produto, 'form': form })
def adicionar_ao_carrinho(request): form = QuantidadeForm(request.POST) if form.is_valid(): quantidade = form.cleaned_data['quantidade'] produto_id = form.cleaned_data['produto_id'] carrinho = Carrinho(request) carrinho.adicionar(produto_id, quantidade) return exibe_carrinho(request) else: print(form.errors) raise ValueError( 'Ocorreu um erro inesperado ao adicionar um produto ao carrinho.')
def exibe_carrinho(request): carrinho = Carrinho(request) lista_de_produtos_no_carrinho = carrinho.get_lista_de_produtos() produtos_no_carrinho = [] valor_do_carrinho = 0 for item in lista_de_produtos_no_carrinho: valor_do_carrinho = valor_do_carrinho + int(item['quantidade']) * Decimal(item['preco']) produtos_no_carrinho.append({'produto': item['produto'], 'form': EstoqueForm(initial={'estoque': item['quantidade']})}) return render(request, 'carrinho/produtos_no_carrinho.html', {'produtos_no_carrinho': produtos_no_carrinho, 'valor_do_carrinho': valor_do_carrinho})
def adicionar_ao_carrinho(request): form = EstoqueForm(request.POST) print("anus") if form.is_valid(): estoque = form.cleaned_data['estoque'] produto_id = form.cleaned_data['produto_id'] carrinho = Carrinho(request) carrinho.adicionar(produto_id, estoque) messages.add_message(request, messages.INFO, 'Produto cadastrado com sucesso.') return render(request,"produtos.html") #return exibe_carrinho(request) else: raise ValueError('Ocorreu um erro inesperado ao adicionar um produto ao carrinho.')
def exibe_carrinho(request): carrinho = Carrinho(request) produtos_no_carrinho = carrinho.get_produtos() lista_de_forms = [] for produto in produtos_no_carrinho: lista_de_forms.append( QuantidadeForm(initial={ 'quantidade': produto['quantidade'], 'produto_id': produto['id'] })) valor_do_carrinho = carrinho.get_preco_carrinho() return render( request, 'carrinho/produtos_no_carrinho.html', { 'listas': zip(produtos_no_carrinho, lista_de_forms), 'valor_do_carrinho': valor_do_carrinho })
def exibe_carrinho(request): carrinho = Carrinho(request) lista_de_produtos_no_carrinho = carrinho.get_produtos() produtos_no_carrinho = [] lista_de_forms = [] valor_do_carrinho = 0 for item in lista_de_produtos_no_carrinho: produtos_no_carrinho.append(item['produto']) lista_de_forms.append( QuantidadeForm(initial={'quantidade': item['quantidade']})) valor_do_carrinho = valor_do_carrinho + int( item['quantidade']) * Decimal(item['preco']) return render( request, 'carrinho/produtos_no_carrinho.html', { 'listas': zip(produtos_no_carrinho, lista_de_forms), 'valor_do_carrinho': valor_do_carrinho })
def lista_produtos(request, slug_da_categoria=None): categoria = None categorias = Categoria.objects.all().order_by('nome') lista_de_produtos = Produto.objects.filter( disponivel=True).order_by('nome') if slug_da_categoria: categoria = get_object_or_404(Categoria, slug=slug_da_categoria) lista_de_produtos = lista_de_produtos.filter( categoria=categoria).order_by('nome') paginator = Paginator(lista_de_produtos, 12) pagina = request.GET.get('pagina') try: produtos = paginator.page(pagina) except PageNotAnInteger: produtos = paginator.page(1) except EmptyPage: if request.is_ajax(): return HttpResponse('') produtos = paginator.page(paginator.num_pages) carrinho = Carrinho(request) lista_de_forms = [] for produto in produtos: qtd = carrinho.get_quantidade_total(produto.id) lista_de_forms.append( QuantidadeForm(initial={ 'quantidade': qtd, 'produto_id': signer.sign(produto.id) })) if request.is_ajax(): return render(request, 'carrinho/pagina_de_produtos.html', {'listas': zip(produtos, lista_de_forms)}) return render( request, 'carrinho/lista_produtos.html', { 'categorias': categorias, 'listas': zip(produtos, lista_de_forms), 'categoria': categoria })
def lista_produtos(request, slug_da_categoria=None): categoria = None categorias = Category.objects.all().order_by('name') produtos = Product.objects.filter(available=True).order_by('name') if slug_da_categoria: categoria = get_object_or_404(Category, slug=slug_da_categoria) produtos = produtos.filter(category=categoria).order_by('name') carrinho = Carrinho(request) lista_de_forms = [] for produto in produtos: qtd = carrinho.get_quantidade_total(produto.id) lista_de_forms.append( QuantidadeForm(initial={ 'quantidade': qtd, 'produto_id': produto.id })) return render( request, 'carrinho/lista_produtos.html', { 'categorias': categorias, 'listas': zip(produtos, lista_de_forms), 'categoria': categoria })
def atualiza_carrinho(request): form = QuantidadeForm(request.POST) if form.is_valid(): produto_id = signer.unsign(form.cleaned_data['produto_id']) quantidade = form.cleaned_data['quantidade'] carrinho = Carrinho(request) if (quantidade == 0): carrinho.remover(produto_id) preco_total = 0.0 else: carrinho.atualiza(produto_id, quantidade) preco_total = carrinho.get_preco_total(produto_id) qtd = carrinho.get_quantidade_carrinho() preco_carrinho = carrinho.get_preco_carrinho() print('***** id do produto = ' + produto_id + ' quantidade = ' + str(quantidade) + ' preço total do produto = ' + str(preco_total)) print('***** qtd no carrinho = ' + str(qtd) + ' valor do carrinho = ' + str(preco_carrinho)) locale.setlocale(locale.LC_ALL, 'pt_BR') preco_carrinho = locale.currency(preco_carrinho, grouping=True) preco_total = Decimal(preco_total) preco_total = locale.currency(preco_total, grouping=True) return JsonResponse({ 'quantidade': qtd, 'preco_carrinho': preco_carrinho, 'preco_total': preco_total }) else: raise ValueError( 'Ocorreu um erro inesperado ao adicionar um produto ao carrinho.')
def calcula_totais_carrinho(request): carrinho = Carrinho(request) quantidade = carrinho.get_quantidade_carrinho() preco_carrinho = carrinho.get_preco_carrinho() return {'quantidade': quantidade, 'preco_carrinho': preco_carrinho}