From c9cfc7f873d349beae458c75a33c29f18b5d96ac Mon Sep 17 00:00:00 2001 From: Mono Mono Date: Sun, 12 Jan 2025 00:24:30 -0500 Subject: [PATCH 01/14] #90 feat(ReconcilaitionJar): create api view with pagination. --- tienda_ilusion/don_confiao/api_views.py | 13 +++++++++ .../tests/test_jar_reconciliation.py | 28 +++++++++++++++++++ tienda_ilusion/don_confiao/urls.py | 3 +- 3 files changed, 43 insertions(+), 1 deletion(-) diff --git a/tienda_ilusion/don_confiao/api_views.py b/tienda_ilusion/don_confiao/api_views.py index 31be80a..fc462cc 100644 --- a/tienda_ilusion/don_confiao/api_views.py +++ b/tienda_ilusion/don_confiao/api_views.py @@ -2,6 +2,7 @@ from rest_framework import viewsets from rest_framework.response import Response from rest_framework.status import HTTP_400_BAD_REQUEST from rest_framework.views import APIView +from rest_framework.pagination import PageNumberPagination from .models import Sale, SaleLine, Customer, Product, ReconciliationJar, PaymentMethods, AdminCode from .serializers import SaleSerializer, ProductSerializer, CustomerSerializer, ReconciliationJarSerializer, PaymentMethodSerializer, SaleForRenconciliationSerializer, SaleSummarySerializer @@ -9,6 +10,12 @@ from .serializers import SaleSerializer, ProductSerializer, CustomerSerializer, from decimal import Decimal import json + +class Pagination(PageNumberPagination): + page_size = 10 + page_size_query_param = 'page_size' + + class SaleView(viewsets.ModelViewSet): queryset = Sale.objects.all() serializer_class = SaleSerializer @@ -131,3 +138,9 @@ class AdminCodeValidateView(APIView): def get(self, request, code): codes = AdminCode.objects.filter(value=code) return Response({'validCode': bool(codes)}) + + +class ReconciliateJarModelView(viewsets.ModelViewSet): + queryset = ReconciliationJar.objects.all().order_by('-date_time') + pagination_class = Pagination + serializer_class = ReconciliationJarSerializer diff --git a/tienda_ilusion/don_confiao/tests/test_jar_reconciliation.py b/tienda_ilusion/don_confiao/tests/test_jar_reconciliation.py index de8503c..a7544cc 100644 --- a/tienda_ilusion/don_confiao/tests/test_jar_reconciliation.py +++ b/tienda_ilusion/don_confiao/tests/test_jar_reconciliation.py @@ -197,6 +197,34 @@ class TestJarReconcliation(TestCase): purchases = Sale.objects.filter(reconciliation_id=content['id']) self.assertEqual(len(purchases), 3) + def test_list_reconciliations(self): + self._create_simple_reconciliation() + self._create_simple_reconciliation() + + url = '/don_confiao/api/reconciliate_jar/' + + response = self.client.get(url) + self.assertEqual(response.status_code, 200) + + content = json.loads(response.content.decode('utf-8')) + self.assertEqual(2, len(content['results'])) + self.assertEqual('2024-07-30T00:00:00Z', + content['results'][0]['date_time']) + + def test_list_reconciliations_pagination(self): + self._create_simple_reconciliation() + self._create_simple_reconciliation() + + url = '/don_confiao/api/reconciliate_jar/?page=2&page_size=1' + + response = self.client.get(url) + self.assertEqual(response.status_code, 200) + + content = json.loads(response.content.decode('utf-8')) + self.assertEqual(1, len(content['results'])) + self.assertEqual('2024-07-30T00:00:00Z', + content['results'][0]['date_time']) + def _create_simple_reconciliation(self): reconciliation = ReconciliationJar() reconciliation.date_time = "2024-07-30" diff --git a/tienda_ilusion/don_confiao/urls.py b/tienda_ilusion/don_confiao/urls.py index 5f8f654..3b4dd69 100644 --- a/tienda_ilusion/don_confiao/urls.py +++ b/tienda_ilusion/don_confiao/urls.py @@ -10,7 +10,8 @@ router = DefaultRouter() router.register(r'sales', api_views.SaleView, basename='sale') router.register(r'customers', api_views.CustomerView, basename='customer') router.register(r'products', api_views.ProductView, basename='product') - +router.register(r'reconciliate_jar', api_views.ReconciliateJarModelView, + basename='reconciliate_jar') urlpatterns = [ path("", views.index, name="wellcome"), From 8bc2d025720a197ecc68abd8667de3297e9145b0 Mon Sep 17 00:00:00 2001 From: Mono Mono Date: Sun, 12 Jan 2025 01:18:53 -0500 Subject: [PATCH 02/14] #90 test: minor fix. --- tienda_ilusion/don_confiao/tests/test_jar_reconciliation.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tienda_ilusion/don_confiao/tests/test_jar_reconciliation.py b/tienda_ilusion/don_confiao/tests/test_jar_reconciliation.py index a7544cc..1fdb0b4 100644 --- a/tienda_ilusion/don_confiao/tests/test_jar_reconciliation.py +++ b/tienda_ilusion/don_confiao/tests/test_jar_reconciliation.py @@ -207,6 +207,7 @@ class TestJarReconcliation(TestCase): self.assertEqual(response.status_code, 200) content = json.loads(response.content.decode('utf-8')) + self.assertEqual(2, content['count']) self.assertEqual(2, len(content['results'])) self.assertEqual('2024-07-30T00:00:00Z', content['results'][0]['date_time']) From d9d3239662d6dec2877d02479ef87b47f4b16240 Mon Sep 17 00:00:00 2001 From: Mono Mono Date: Sun, 12 Jan 2025 01:20:33 -0500 Subject: [PATCH 03/14] #90 api(frontend): add getListReconcliations. --- .../don_confiao/frontend/don-confiao/src/services/api.js | 4 ++++ .../frontend/don-confiao/src/services/django-api.js | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/tienda_ilusion/don_confiao/frontend/don-confiao/src/services/api.js b/tienda_ilusion/don_confiao/frontend/don-confiao/src/services/api.js index 92186b5..9cbe147 100644 --- a/tienda_ilusion/don_confiao/frontend/don-confiao/src/services/api.js +++ b/tienda_ilusion/don_confiao/frontend/don-confiao/src/services/api.js @@ -23,6 +23,10 @@ class Api { return this.apiImplementation.getPurchasesForReconciliation(); } + getListReconcliations(page=1, itemsPerPage=10) { + return this.apiImplementation.getListReconcliations(page, itemsPerPage); + } + isValidAdminCode(code) { return this.apiImplementation.isValidAdminCode(code); } diff --git a/tienda_ilusion/don_confiao/frontend/don-confiao/src/services/django-api.js b/tienda_ilusion/don_confiao/frontend/don-confiao/src/services/django-api.js index 5faae05..f2b8687 100644 --- a/tienda_ilusion/don_confiao/frontend/don-confiao/src/services/django-api.js +++ b/tienda_ilusion/don_confiao/frontend/don-confiao/src/services/django-api.js @@ -24,6 +24,11 @@ class DjangoApi { return this.getRequest(url); } + getListReconcliations(page, itemsPerPage) { + const url = `/don_confiao/api/reconciliate_jar/?page=${page}&page_size=${itemsPerPage}`; + return this.getRequest(url); + } + isValidAdminCode(code) { const url = `/don_confiao/api/admin_code/validate/${code}` return this.getRequest(url) From baa0677e7a80d1e09e12e9065554068ad80ce3a3 Mon Sep 17 00:00:00 2001 From: Mono Mono Date: Sun, 12 Jan 2025 01:23:17 -0500 Subject: [PATCH 04/14] #90 feat(frontend): add cuadres_de_tarro page. --- .../don-confiao/src/components/NavBar.vue | 3 +- .../src/components/ReconciliationJarIndex.vue | 59 +++++++++++++++++++ .../src/pages/cuadres_de_tarro.vue | 20 +++++++ 3 files changed, 81 insertions(+), 1 deletion(-) create mode 100644 tienda_ilusion/don_confiao/frontend/don-confiao/src/components/ReconciliationJarIndex.vue create mode 100644 tienda_ilusion/don_confiao/frontend/don-confiao/src/pages/cuadres_de_tarro.vue diff --git a/tienda_ilusion/don_confiao/frontend/don-confiao/src/components/NavBar.vue b/tienda_ilusion/don_confiao/frontend/don-confiao/src/components/NavBar.vue index 3c25a2a..66c44c1 100644 --- a/tienda_ilusion/don_confiao/frontend/don-confiao/src/components/NavBar.vue +++ b/tienda_ilusion/don_confiao/frontend/don-confiao/src/components/NavBar.vue @@ -29,7 +29,8 @@ menuItems: [ { title: 'Inicio', route: '/'}, { title: 'Comprar', route:'/comprar'}, - { title: 'Cuadrar tarro', route: '/cuadrar_tarro'} + { title: 'Cuadrar tarro', route: '/cuadrar_tarro'}, + { title: 'Cuadres de tarro', route: '/cuadres_de_tarro'}, ], }), watch: { diff --git a/tienda_ilusion/don_confiao/frontend/don-confiao/src/components/ReconciliationJarIndex.vue b/tienda_ilusion/don_confiao/frontend/don-confiao/src/components/ReconciliationJarIndex.vue new file mode 100644 index 0000000..e08b97d --- /dev/null +++ b/tienda_ilusion/don_confiao/frontend/don-confiao/src/components/ReconciliationJarIndex.vue @@ -0,0 +1,59 @@ + + diff --git a/tienda_ilusion/don_confiao/frontend/don-confiao/src/pages/cuadres_de_tarro.vue b/tienda_ilusion/don_confiao/frontend/don-confiao/src/pages/cuadres_de_tarro.vue new file mode 100644 index 0000000..739a1e9 --- /dev/null +++ b/tienda_ilusion/don_confiao/frontend/don-confiao/src/pages/cuadres_de_tarro.vue @@ -0,0 +1,20 @@ + + + From 1b06818583c991d591054702bd8e72df2e8265d5 Mon Sep 17 00:00:00 2001 From: Mono Mono Date: Sat, 18 Jan 2025 12:22:45 -0500 Subject: [PATCH 05/14] #90 feat(frontend): add ReconciliationJarView.vue. --- .../src/components/ReconciliationJarView.vue | 79 +++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 tienda_ilusion/don_confiao/frontend/don-confiao/src/components/ReconciliationJarView.vue diff --git a/tienda_ilusion/don_confiao/frontend/don-confiao/src/components/ReconciliationJarView.vue b/tienda_ilusion/don_confiao/frontend/don-confiao/src/components/ReconciliationJarView.vue new file mode 100644 index 0000000..10d46a1 --- /dev/null +++ b/tienda_ilusion/don_confiao/frontend/don-confiao/src/components/ReconciliationJarView.vue @@ -0,0 +1,79 @@ + + From aa45ea44acaf617afe19c27d12b07a3ebd8846a2 Mon Sep 17 00:00:00 2001 From: Mono Mono Date: Sat, 18 Jan 2025 12:42:33 -0500 Subject: [PATCH 06/14] #90 feat(frontend): getReconciliation api method. --- .../frontend/don-confiao/src/services/django-api.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tienda_ilusion/don_confiao/frontend/don-confiao/src/services/django-api.js b/tienda_ilusion/don_confiao/frontend/don-confiao/src/services/django-api.js index f2b8687..abe9f4d 100644 --- a/tienda_ilusion/don_confiao/frontend/don-confiao/src/services/django-api.js +++ b/tienda_ilusion/don_confiao/frontend/don-confiao/src/services/django-api.js @@ -29,6 +29,11 @@ class DjangoApi { return this.getRequest(url); } + getReconciliation(reconciliationId) { + const url = `/don_confiao/api/reconciliate_jar/${reconciliationId}/`; + return this.getRequest(url); + } + isValidAdminCode(code) { const url = `/don_confiao/api/admin_code/validate/${code}` return this.getRequest(url) From d85ad7cc3852b69b5aa4fa73adc45a36036a136e Mon Sep 17 00:00:00 2001 From: Mono Mono Date: Sat, 18 Jan 2025 12:43:01 -0500 Subject: [PATCH 07/14] #90 feat(frontend): getReconciliation api method. --- .../don_confiao/frontend/don-confiao/src/services/api.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tienda_ilusion/don_confiao/frontend/don-confiao/src/services/api.js b/tienda_ilusion/don_confiao/frontend/don-confiao/src/services/api.js index 9cbe147..2e6ef11 100644 --- a/tienda_ilusion/don_confiao/frontend/don-confiao/src/services/api.js +++ b/tienda_ilusion/don_confiao/frontend/don-confiao/src/services/api.js @@ -27,6 +27,10 @@ class Api { return this.apiImplementation.getListReconcliations(page, itemsPerPage); } + getReconciliation(reconciliationId) { + return this.apiImplementation.getReconciliation(reconciliationId); + } + isValidAdminCode(code) { return this.apiImplementation.isValidAdminCode(code); } From a5d4c1977a4ba0b51d51bdb81f28c379285165c0 Mon Sep 17 00:00:00 2001 From: Mono Mono Date: Sat, 18 Jan 2025 12:43:50 -0500 Subject: [PATCH 08/14] #90 feat(frontend): minor fix. --- .../don-confiao/src/components/ReconciliationJarView.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tienda_ilusion/don_confiao/frontend/don-confiao/src/components/ReconciliationJarView.vue b/tienda_ilusion/don_confiao/frontend/don-confiao/src/components/ReconciliationJarView.vue index 10d46a1..76665d6 100644 --- a/tienda_ilusion/don_confiao/frontend/don-confiao/src/components/ReconciliationJarView.vue +++ b/tienda_ilusion/don_confiao/frontend/don-confiao/src/components/ReconciliationJarView.vue @@ -1,7 +1,7 @@