From f1d96467d6ecd145031536597b65da0dda3929b0 Mon Sep 17 00:00:00 2001 From: Mono Mono Date: Sat, 31 Aug 2024 09:46:03 -0500 Subject: [PATCH] feat(buy): send products list to buy view. --- .../templates/don_confiao/purchase.html | 5 ++++- .../don_confiao/tests/test_buy_form.py | 22 +++++++++++++++++++ tienda_ilusion/don_confiao/views.py | 9 ++++++++ 3 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 tienda_ilusion/don_confiao/tests/test_buy_form.py diff --git a/tienda_ilusion/don_confiao/templates/don_confiao/purchase.html b/tienda_ilusion/don_confiao/templates/don_confiao/purchase.html index 4386551..0a23b0e 100644 --- a/tienda_ilusion/don_confiao/templates/don_confiao/purchase.html +++ b/tienda_ilusion/don_confiao/templates/don_confiao/purchase.html @@ -1,6 +1,9 @@ {% extends 'don_confiao/base.html' %} {% block content %} {% load static %} +
@@ -15,7 +18,6 @@
{% endfor %}
-
@@ -26,6 +28,7 @@ {{ summary_form }} + diff --git a/tienda_ilusion/don_confiao/tests/test_buy_form.py b/tienda_ilusion/don_confiao/tests/test_buy_form.py new file mode 100644 index 0000000..5a61817 --- /dev/null +++ b/tienda_ilusion/don_confiao/tests/test_buy_form.py @@ -0,0 +1,22 @@ +from django.test import Client, TestCase +from ..models import Product + + +class TestBuyForm(TestCase): + def setUp(self): + self.client = Client() + self.product = Product() + self.product.name = "Arroz" + self.product.price = 5000 + self.product.save() + + def test_buy_contains_products_list(self): + response = self.client.get('/don_confiao/comprar') + self.assertIn( + self.product.name, + response.context['list_products'] + ) + content = response.content.decode('utf-8') + self.assertIn('5000', content) + self.assertIn('Arroz', content) + self.assertIn(str(self.product.id), content) diff --git a/tienda_ilusion/don_confiao/views.py b/tienda_ilusion/don_confiao/views.py index 962c605..35b0e0d 100644 --- a/tienda_ilusion/don_confiao/views.py +++ b/tienda_ilusion/don_confiao/views.py @@ -8,8 +8,16 @@ from .forms import ImportProductsForm, PurchaseForm, SaleLineFormSet, Reconcilia import csv import io +import json +from decimal import Decimal +class DecimalEncoder(json.JSONEncoder): + def default(self, obj): + if isinstance(obj, Decimal): + return float(obj) + return json.JSONEncoder.default(self, obj) + def index(request): return render(request, 'don_confiao/index.html') @@ -47,6 +55,7 @@ def buy(request): 'sale_form': sale_form, 'linea_formset': line_formset, 'summary_form': sale_summary_form, + 'list_products': json.dumps(Product.to_list(), cls=DecimalEncoder), } )