From 0dec800637dcac3532ea1c9ad7887014cbf5e701 Mon Sep 17 00:00:00 2001 From: Mono Mono Date: Sat, 11 Jan 2025 17:05:39 -0500 Subject: [PATCH 1/6] #88 feat(frontend): initial secure pages. --- .../don-confiao/src/pages/cuadrar_tarro.vue | 32 +++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/tienda_ilusion/don_confiao/frontend/don-confiao/src/pages/cuadrar_tarro.vue b/tienda_ilusion/don_confiao/frontend/don-confiao/src/pages/cuadrar_tarro.vue index 4578345..b019700 100644 --- a/tienda_ilusion/don_confiao/frontend/don-confiao/src/pages/cuadrar_tarro.vue +++ b/tienda_ilusion/don_confiao/frontend/don-confiao/src/pages/cuadrar_tarro.vue @@ -1,7 +1,35 @@ From 0308da7370fef27c93193964281570a1a7a7c4ac Mon Sep 17 00:00:00 2001 From: Mono Mono Date: Sat, 11 Jan 2025 18:02:28 -0500 Subject: [PATCH 2/6] #88 refactor(frontend): extract to Component. --- .../don-confiao/src/components/CodeDialog.vue | 39 +++++++++++++++ .../don-confiao/src/pages/cuadrar_tarro.vue | 49 ++++++++----------- 2 files changed, 59 insertions(+), 29 deletions(-) create mode 100644 tienda_ilusion/don_confiao/frontend/don-confiao/src/components/CodeDialog.vue diff --git a/tienda_ilusion/don_confiao/frontend/don-confiao/src/components/CodeDialog.vue b/tienda_ilusion/don_confiao/frontend/don-confiao/src/components/CodeDialog.vue new file mode 100644 index 0000000..1c3deab --- /dev/null +++ b/tienda_ilusion/don_confiao/frontend/don-confiao/src/components/CodeDialog.vue @@ -0,0 +1,39 @@ + + + diff --git a/tienda_ilusion/don_confiao/frontend/don-confiao/src/pages/cuadrar_tarro.vue b/tienda_ilusion/don_confiao/frontend/don-confiao/src/pages/cuadrar_tarro.vue index b019700..60645eb 100644 --- a/tienda_ilusion/don_confiao/frontend/don-confiao/src/pages/cuadrar_tarro.vue +++ b/tienda_ilusion/don_confiao/frontend/don-confiao/src/pages/cuadrar_tarro.vue @@ -1,35 +1,26 @@ - From a7e3b9aaa8faa5204ad530a54683afea1d7e5bb8 Mon Sep 17 00:00:00 2001 From: Mono Mono Date: Sat, 11 Jan 2025 18:10:44 -0500 Subject: [PATCH 3/6] #88 refactor(frontend): remove method. --- .../frontend/don-confiao/src/pages/cuadrar_tarro.vue | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/tienda_ilusion/don_confiao/frontend/don-confiao/src/pages/cuadrar_tarro.vue b/tienda_ilusion/don_confiao/frontend/don-confiao/src/pages/cuadrar_tarro.vue index 60645eb..fb60ff4 100644 --- a/tienda_ilusion/don_confiao/frontend/don-confiao/src/pages/cuadrar_tarro.vue +++ b/tienda_ilusion/don_confiao/frontend/don-confiao/src/pages/cuadrar_tarro.vue @@ -1,6 +1,6 @@ @@ -15,12 +15,6 @@ } }, components: { CodeDialog }, - methods: { - activateComponent(verified) { - if (verified) { - this.showComponent = true; - } - }, - }, + methods: {}, } From 0caa6fbb56b7499f1c3fa8dfb270d09c194efdb2 Mon Sep 17 00:00:00 2001 From: Mono Mono Date: Sat, 11 Jan 2025 19:08:05 -0500 Subject: [PATCH 4/6] #88 feat(AdminCode): create model and api view. --- tienda_ilusion/don_confiao/api_views.py | 7 +++- .../don_confiao/migrations/0037_admincode.py | 20 +++++++++ tienda_ilusion/don_confiao/models.py | 4 ++ .../don_confiao/tests/test_admin_code.py | 41 +++++++++++++++++++ tienda_ilusion/don_confiao/urls.py | 1 + 5 files changed, 72 insertions(+), 1 deletion(-) create mode 100644 tienda_ilusion/don_confiao/migrations/0037_admincode.py create mode 100644 tienda_ilusion/don_confiao/tests/test_admin_code.py diff --git a/tienda_ilusion/don_confiao/api_views.py b/tienda_ilusion/don_confiao/api_views.py index 1f5581f..31be80a 100644 --- a/tienda_ilusion/don_confiao/api_views.py +++ b/tienda_ilusion/don_confiao/api_views.py @@ -3,7 +3,7 @@ from rest_framework.response import Response from rest_framework.status import HTTP_400_BAD_REQUEST from rest_framework.views import APIView -from .models import Sale, SaleLine, Customer, Product, ReconciliationJar, PaymentMethods +from .models import Sale, SaleLine, Customer, Product, ReconciliationJar, PaymentMethods, AdminCode from .serializers import SaleSerializer, ProductSerializer, CustomerSerializer, ReconciliationJarSerializer, PaymentMethodSerializer, SaleForRenconciliationSerializer, SaleSummarySerializer from decimal import Decimal @@ -126,3 +126,8 @@ class SaleSummary(APIView): sale = Sale.objects.get(pk=id) serializer = SaleSummarySerializer(sale) return Response(serializer.data) + +class AdminCodeValidateView(APIView): + def get(self, request, code): + codes = AdminCode.objects.filter(value=code) + return Response({'validCode': bool(codes)}) diff --git a/tienda_ilusion/don_confiao/migrations/0037_admincode.py b/tienda_ilusion/don_confiao/migrations/0037_admincode.py new file mode 100644 index 0000000..1abc7b5 --- /dev/null +++ b/tienda_ilusion/don_confiao/migrations/0037_admincode.py @@ -0,0 +1,20 @@ +# Generated by Django 5.0.6 on 2025-01-11 23:52 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('don_confiao', '0036_merge_20241228_2212'), + ] + + operations = [ + migrations.CreateModel( + name='AdminCode', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('value', models.CharField(max_length=255)), + ], + ), + ] diff --git a/tienda_ilusion/don_confiao/models.py b/tienda_ilusion/don_confiao/models.py index 05d2d23..032998e 100644 --- a/tienda_ilusion/don_confiao/models.py +++ b/tienda_ilusion/don_confiao/models.py @@ -198,3 +198,7 @@ class Payment(models.Model): class PaymentSale(models.Model): payment = models.ForeignKey(Payment, on_delete=models.CASCADE) sale = models.ForeignKey(Sale, on_delete=models.CASCADE) + + +class AdminCode(models.Model): + value = models.CharField(max_length=255, null=False, blank=False) diff --git a/tienda_ilusion/don_confiao/tests/test_admin_code.py b/tienda_ilusion/don_confiao/tests/test_admin_code.py new file mode 100644 index 0000000..87194f0 --- /dev/null +++ b/tienda_ilusion/don_confiao/tests/test_admin_code.py @@ -0,0 +1,41 @@ +from django.test import TestCase, Client + +from ..models import AdminCode + +import json + + +class TestAdminCode(TestCase): + def setUp(self): + self.valid_code = 'some valid code' + admin_code = AdminCode() + admin_code.value = self.valid_code + admin_code.clean() + admin_code.save() + + self.client = Client() + + def test_validate_code(self): + url = '/don_confiao/api/admin_code/validate/' + self.valid_code + response = self.client.get(url) + self.assertEqual(response.status_code, 200) + + content = json.loads(response.content.decode('utf-8')) + self.assertTrue(content['validCode']) + + def test_invalid_code(self): + invalid_code = 'some invalid code' + url = '/don_confiao/api/admin_code/validate/' + invalid_code + + response = self.client.get(url) + self.assertEqual(response.status_code, 200) + + content = json.loads(response.content.decode('utf-8')) + self.assertFalse(content['validCode']) + + def test_empty_code(self): + empty_code = '' + url = '/don_confiao/api/admin_code/validate/' + empty_code + + response = self.client.get(url) + self.assertEqual(response.status_code, 404) diff --git a/tienda_ilusion/don_confiao/urls.py b/tienda_ilusion/don_confiao/urls.py index fb8659b..5f8f654 100644 --- a/tienda_ilusion/don_confiao/urls.py +++ b/tienda_ilusion/don_confiao/urls.py @@ -28,5 +28,6 @@ urlpatterns = [ path("payment_methods/all/select_format", api_views.PaymentMethodView.as_view(), name="payment_methods_to_select"), path('purchases/for_reconciliation', api_views.SalesForReconciliationView.as_view(), name='sales_for_reconciliation'), path('reconciliate_jar', api_views.ReconciliateJarView.as_view()), + path('api/admin_code/validate/', api_views.AdminCodeValidateView.as_view()), path('api/', include(router.urls)), ] From 9ff1deb68705a489f56712303f3803c1f5b2dfe0 Mon Sep 17 00:00:00 2001 From: Mono Mono Date: Sat, 11 Jan 2025 19:21:00 -0500 Subject: [PATCH 5/6] dev(rakeFile): add terminal django. --- Rakefile | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Rakefile b/Rakefile index 6519992..ec719a9 100644 --- a/Rakefile +++ b/Rakefile @@ -65,6 +65,11 @@ namespace :dev do compose('exec', 'django', 'python', '/app/manage.py', 'test', '/app/don_confiao') end + desc 'terminal django' + task :djangoShell do + compose('exec', 'django', 'python', '/app/manage.py', 'shell') + end + desc 'crear migraciones' task :makemigrations do compose('exec', 'django', 'python', '/app/manage.py', 'makemigrations') From e5ae1bb142b4430c08ee7989160d2f42784ad4e7 Mon Sep 17 00:00:00 2001 From: Mono Mono Date: Sat, 11 Jan 2025 19:22:48 -0500 Subject: [PATCH 6/6] feat(frontend): using api for admin valid code. --- .../don-confiao/src/components/CodeDialog.vue | 25 +++++++++++++------ .../frontend/don-confiao/src/services/api.js | 4 +++ .../don-confiao/src/services/django-api.js | 5 ++++ 3 files changed, 27 insertions(+), 7 deletions(-) diff --git a/tienda_ilusion/don_confiao/frontend/don-confiao/src/components/CodeDialog.vue b/tienda_ilusion/don_confiao/frontend/don-confiao/src/components/CodeDialog.vue index 1c3deab..70dba1b 100644 --- a/tienda_ilusion/don_confiao/frontend/don-confiao/src/components/CodeDialog.vue +++ b/tienda_ilusion/don_confiao/frontend/don-confiao/src/components/CodeDialog.vue @@ -17,22 +17,33 @@