From 3f27b522fc68f24bbbcd6c11f861f94865269b3b Mon Sep 17 00:00:00 2001 From: Alejandro Lopez Velez Date: Mon, 20 Sep 2021 14:44:51 -0500 Subject: [PATCH 1/3] Archivo de prueba --- Prueba 80031230.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 Prueba 80031230.txt diff --git a/Prueba 80031230.txt b/Prueba 80031230.txt new file mode 100644 index 0000000..e69de29 From f3b80051ee08b53d267ed243d10df9a074883f2f Mon Sep 17 00:00:00 2001 From: Alejandro Lopez Velez Date: Wed, 22 Sep 2021 15:52:14 -0500 Subject: [PATCH 2/3] Fixes #7 para cerrar el issues --- Checkout/__init__.py | 0 Checkout/__pycache__/__init__.cpython-39.pyc | Bin 0 -> 157 bytes Checkout/__pycache__/admin.cpython-39.pyc | Bin 0 -> 349 bytes Checkout/__pycache__/apps.cpython-39.pyc | Bin 0 -> 438 bytes Checkout/__pycache__/models.cpython-39.pyc | Bin 0 -> 2219 bytes .../__pycache__/serializers.cpython-39.pyc | Bin 0 -> 1269 bytes Checkout/__pycache__/urls.cpython-39.pyc | Bin 0 -> 544 bytes Checkout/__pycache__/views.cpython-39.pyc | Bin 0 -> 4654 bytes Checkout/admin.py | 7 + Checkout/apps.py | 6 + Checkout/migrations/0001_initial.py | 48 ++++++ .../migrations/0002_auto_20210921_1544.py | 60 +++++++ Checkout/migrations/__init__.py | 0 .../__pycache__/0001_initial.cpython-39.pyc | Bin 0 -> 1385 bytes .../0002_auto_20210921_1544.cpython-39.pyc | Bin 0 -> 1203 bytes .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 168 bytes Checkout/models.py | 46 ++++++ Checkout/serializers.py | 19 +++ Checkout/tests.py | 3 + Checkout/urls.py | 16 ++ Checkout/views.py | 152 ++++++++++++++++++ Codifo APIS.txt | 25 +++ .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 160 bytes .../__pycache__/settings.cpython-39.pyc | Bin 0 -> 2488 bytes ExEcommerce/__pycache__/urls.cpython-39.pyc | Bin 0 -> 401 bytes ExEcommerce/__pycache__/wsgi.cpython-39.pyc | Bin 0 -> 571 bytes ExEcommerce/settings.py | 4 +- ExEcommerce/urls.py | 3 +- Productos/__pycache__/__init__.cpython-39.pyc | Bin 0 -> 158 bytes Productos/__pycache__/admin.cpython-39.pyc | Bin 0 -> 334 bytes Productos/__pycache__/apps.cpython-39.pyc | Bin 0 -> 384 bytes Productos/__pycache__/models.cpython-39.pyc | Bin 0 -> 2158 bytes .../__pycache__/serializers.cpython-39.pyc | Bin 0 -> 1284 bytes Productos/__pycache__/urls.cpython-39.pyc | Bin 0 -> 525 bytes Productos/__pycache__/views.cpython-39.pyc | Bin 0 -> 1495 bytes .../__pycache__/0001_initial.cpython-39.pyc | Bin 0 -> 1350 bytes .../0002_auto_20210916_1521.cpython-39.pyc | Bin 0 -> 655 bytes .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 169 bytes db.sqlite3 | Bin 155648 -> 196608 bytes 39 files changed, 387 insertions(+), 2 deletions(-) create mode 100644 Checkout/__init__.py create mode 100644 Checkout/__pycache__/__init__.cpython-39.pyc create mode 100644 Checkout/__pycache__/admin.cpython-39.pyc create mode 100644 Checkout/__pycache__/apps.cpython-39.pyc create mode 100644 Checkout/__pycache__/models.cpython-39.pyc create mode 100644 Checkout/__pycache__/serializers.cpython-39.pyc create mode 100644 Checkout/__pycache__/urls.cpython-39.pyc create mode 100644 Checkout/__pycache__/views.cpython-39.pyc create mode 100644 Checkout/admin.py create mode 100644 Checkout/apps.py create mode 100644 Checkout/migrations/0001_initial.py create mode 100644 Checkout/migrations/0002_auto_20210921_1544.py create mode 100644 Checkout/migrations/__init__.py create mode 100644 Checkout/migrations/__pycache__/0001_initial.cpython-39.pyc create mode 100644 Checkout/migrations/__pycache__/0002_auto_20210921_1544.cpython-39.pyc create mode 100644 Checkout/migrations/__pycache__/__init__.cpython-39.pyc create mode 100644 Checkout/models.py create mode 100644 Checkout/serializers.py create mode 100644 Checkout/tests.py create mode 100644 Checkout/urls.py create mode 100644 Checkout/views.py create mode 100644 Codifo APIS.txt create mode 100644 ExEcommerce/__pycache__/__init__.cpython-39.pyc create mode 100644 ExEcommerce/__pycache__/settings.cpython-39.pyc create mode 100644 ExEcommerce/__pycache__/urls.cpython-39.pyc create mode 100644 ExEcommerce/__pycache__/wsgi.cpython-39.pyc create mode 100644 Productos/__pycache__/__init__.cpython-39.pyc create mode 100644 Productos/__pycache__/admin.cpython-39.pyc create mode 100644 Productos/__pycache__/apps.cpython-39.pyc create mode 100644 Productos/__pycache__/models.cpython-39.pyc create mode 100644 Productos/__pycache__/serializers.cpython-39.pyc create mode 100644 Productos/__pycache__/urls.cpython-39.pyc create mode 100644 Productos/__pycache__/views.cpython-39.pyc create mode 100644 Productos/migrations/__pycache__/0001_initial.cpython-39.pyc create mode 100644 Productos/migrations/__pycache__/0002_auto_20210916_1521.cpython-39.pyc create mode 100644 Productos/migrations/__pycache__/__init__.cpython-39.pyc diff --git a/Checkout/__init__.py b/Checkout/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/Checkout/__pycache__/__init__.cpython-39.pyc b/Checkout/__pycache__/__init__.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..581fc09010b355331fe95d65d7af685d4d8f0f60 GIT binary patch literal 157 zcmYe~<>g`kg1aw05<&E15P=LBfgA@QE@lA|DGb33nv8xc8Hzx{2;!HMw^fXDW^zux zf^kexYC(Q+W=VcgW`40kN@|WmKv8~LYK&`zYjS>WZfa3-YK(J6YI1gdX-Q0cd}dx| aNqoFsLFFwDo80`A(wtN~klCMsm;nHPCMK=` literal 0 HcmV?d00001 diff --git a/Checkout/__pycache__/admin.cpython-39.pyc b/Checkout/__pycache__/admin.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..bf51c2892a0d53ddc0b3b7694558d3251019544a GIT binary patch literal 349 zcmYk0KTE_w5XE=1iAKqtjlF5pq_Gq64rW8Kb0zl5@X)R1u( zHPYz*DvPVV;$F26FpaqZsXB`RfzYSKkffT+bO!|2q=)s58h};-HQ1Es={3Sq)#X#!f-wqPRsVfo|0c?ZXBQt+lBrWC OoN(4N_jw``p70;%Fk2k} literal 0 HcmV?d00001 diff --git a/Checkout/__pycache__/apps.cpython-39.pyc b/Checkout/__pycache__/apps.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..01f0d078bf4a5d8ce100425eaa39e7d4809d2d00 GIT binary patch literal 438 zcmYjNOH0E*5Z=wE5c}{TUWHt9$;F#UX)RSjD5AFzSk}y@MmODrXGdquOzj=tkpi5A`SJ&bb-yaw3i;uww)r4q(09B-<38mzUfCub@0F!jd z5)b@)5_MLHA`!I*f3|V}8IC+%Wvu>LW z$NLF9iN##U@DP_8q%!eEF(0>$zAU5y8|>h-sAB`p7owD$+b-vbZk6-GXA)>9Uk{ zCez&zsi-OwS8p{#CU-yMOhA3Q&defad)s{+vi4j~8ELb+RZL=Rz!?(jwQED~Vf5 zYLlS1d4--jLs@G(-ZWfrb~vOsA7{QHS-;=4pjCezuyxO}{=vc3 z=E7hHdZ|Egi<8XC2_*z|JF|0#I!1RgH}B9+?oluIsc&p<7UUrfiS>iUJKTG2aZfm> z-DeK%fyL(mSb_^n1eTC@!P333^m*^0HHuz=Uu#5k@RO3fPAUnymrE|Pa^&dfdnq%) ziv3h%T!)hrrW!T6S5)FyG$Z(=yDybUkBbBGB*7i8HU|bf(90PJVNt>@Y6A+F6Ke4$wR>Ths)4)AjJIL<_IT%8;O+KAPaj0^ck%s5x1S>tmtXLVNXCunFJ>Ue+& z^l}TtpVld)Y1^s@X!bMEz_C4j>I}aeLd5*KteHxscFIcW&RirX3;?*L$mZvk!X5tI zIrwHaNs~+tzn=Xp7P17u@JTs@s1G3zb1~a{yqCy47b+36$%#mQm31|1(lTB=(S97m z_Hn$1sB91xd3yW$(Z?4{Zkz^BWKM(J=AMQty4U**Ru>U>vK=(u%s>orHsis@)W2XS1mT*R^N#xX>t&QOoy__vy6&5XjN zsSb*D5W0VtRpKzsh2gKl0|99>$tq)@E(h)_C{c@c6IN6Y(jv{7!WdC+!HyZ1>NX72 zJ1E{oVS;oiFkC7C;X^M6AOaG>&qzCP0>{iIFmbIR#vSP8k07p=hiD3eoY`0wr>?+a z4!O;pGlyas_qfYDP!tjOxDQ2er8t0-Jsm(m)1=NM5HOTQ4D=EZgpsX21XtQE>MS$t zSA7`YNFheh5CxBnw0}Wf8tNnQQNN`ASBCmYQ+p;(I#^s>D642?mV5x)wz(d(P~S*f zWVu0uoJTa!$*H{s1UA%y+6ypoDQ8@L3~RKvP$Eg?D*rkt>mx(lA*^gcY%D>vv(wSK zdJk5p_fa6=hF6$klTGbUb{|f5@9wFO(1aj$@Nn-io<6#N-@q`OQlH?g;m@b2U9!e# zhB|j(0&Aqi7b748vPmL4a247U=-1lv-S`E}|3jL<(1n=$wAGP1t&VqVt4CM#K2pov zvmQ{%*WtZlF87MxA)G_-s6rG7^ag8|dBWM2HEoXUCQK#}D{cW3p)cUOWk!~6TVA|1 zBkD7RX0m~mrM*JtM@rCuEku^3TvB(z(h`bBESRd`8YwDCy(F!XI0o6O?0gP;;ie_h z53_@%ZGN`Gx#?()4%#=g95+{W!-tTcvf@~d`H>+H-Cm9_mW}85yq4y&X|621hxDB{ vtQ#wl!DYr3vQT#(;A3sbXsBY)tRk2WzHP3`@9+gEBM^vxi$u=mU^Ds;U-8aS literal 0 HcmV?d00001 diff --git a/Checkout/__pycache__/serializers.cpython-39.pyc b/Checkout/__pycache__/serializers.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..58c662165043bb9cd20a42bb483dc89665eed0b1 GIT binary patch literal 1269 zcmbtU&2AGh5VrR(oBxvb#3|Qs$b}n1s8tjyK#dSZLRv+#mbC-hdgCxop!8Z^rmy5H zr@jIwW;SU_(+Wk3C3|Pa<8SP5W;Sg$YYfMy*KgCnW9&C6>mxwr5T{LWkxX*U3Z8II zvZuYmPkfYp8R+06J7zMJ(Jv+=<)4LDeiEUjB4f0~D@z3}RarwzZDomN{gm|@H;B)A z+(naIX=zcaTLpQl^GgNxhA(&dvyA-KhmXo3PWu!W#S$)A;$ajnJ&fXAd5JH5j1aiy zAO*}Ao?e2p1O(2NJjb}lA>z4ODsIZ!dVXzAhFC)6OzuBE?0 hS${y+0fK!jH7aib@&lWX@5q47laTFHcNqqzt!=Mi&O_OwrK|&NJ>ld8HmbMXx$7yqC3Zrr-PG45+#W3OMlpHD-nuT;Br3;KmeY7oPe zN|++}?qY*z+>%wqWL|8Ri^0gthVA-^$j>qBuL27$0Op8Vu!b#HZib}Gx`2bl=t z(|)vHV`XdsVGWZQbl;bq+h{>1k-3pJ}kOGjtoM)}Pn4YZ|~Bs?{ab l*JM=1ix#^tLA-99?ky~1hx}72M|@0Eq(ySXX=c+ue*sdam`VTu literal 0 HcmV?d00001 diff --git a/Checkout/__pycache__/views.cpython-39.pyc b/Checkout/__pycache__/views.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6ed5dfc7c00c6ef3bcad0ddf3d2d2cb60bf46efd GIT binary patch literal 4654 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 literal 0 HcmV?d00001 diff --git a/Checkout/migrations/__pycache__/__init__.cpython-39.pyc b/Checkout/migrations/__pycache__/__init__.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..cce7455725d874fc24227fb83e167bec3f666d49 GIT binary patch literal 168 zcmYe~<>g`kg1aw05<&E15P=LBfgA@QE@lA|DGb33nv8xc8Hzx{2;!How^fXDW^zux zf^kexYC(Q+W=VcgW`40kN@|WmKv8~LYK&`zYjS>WZfa3-YK(J6YI1gdX-Q0OW_nR# lNoIataZG%CW?p7Ve7s&k precio unitario * cantidad + return self.cantidad*self.producto.precio + +class InfoEnvio(models.Model): + carrito = models.ForeignKey(CarritoCompras, on_delete=models.CASCADE) + nombre = models.CharField(max_length=200) + apellido = models.CharField(max_length=200) + pais = models.CharField(max_length=200) + departamento = models.CharField(max_length=200) + ciudad = models.CharField(max_length=200) + + def __str__(self): + return self.carrito.__str__() + + diff --git a/Checkout/serializers.py b/Checkout/serializers.py new file mode 100644 index 0000000..afb35b9 --- /dev/null +++ b/Checkout/serializers.py @@ -0,0 +1,19 @@ +from django.db.models import fields +from rest_framework import serializers + +from .models import * # => from checkout.models import * + +class CarritoSerial(serializers.ModelSerializer): + class Meta: + model= CarritoCompras + fields = '__all__' + +class ArticuloSerial(serializers.ModelSerializer): + class Meta: + model = Articulo + fields = '__all__' + +class InfoEnvioSerial(serializers.ModelSerializer): + class Meta: + model = InfoEnvio + fields = '__all__' \ No newline at end of file diff --git a/Checkout/tests.py b/Checkout/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/Checkout/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/Checkout/urls.py b/Checkout/urls.py new file mode 100644 index 0000000..6af3c96 --- /dev/null +++ b/Checkout/urls.py @@ -0,0 +1,16 @@ +from django.urls import path, include +from rest_framework import urlpatterns +from rest_framework.routers import DefaultRouter +from .views import * +# Viewset => especificamos las rutas mediante 'routers' + +router = DefaultRouter() #> agregamos las direccines de nuestros viewsets + +router.register('carrito', CarritoAPI, basename="carrito") +router.register('articulo', ArticuloAPI, basename="articulo") +router.register('infoEnvio', InfoEnvioAPI, basename="infoEnvio") + +urlpatterns = [ + #Lista de direcciones locales + path('crud/', include(router.urls)) +] diff --git a/Checkout/views.py b/Checkout/views.py new file mode 100644 index 0000000..4a33b87 --- /dev/null +++ b/Checkout/views.py @@ -0,0 +1,152 @@ +from django.shortcuts import render +from rest_framework import viewsets +from rest_framework.response import Response +from django.shortcuts import get_object_or_404 +from .serializers import * + +# Create your views here. + +class CarritoAPI(viewsets.ViewSet): + def list(self, request): + #Listar Informacion + #request => peticion de usuarios. GET, POST, PUT, ... + carritos = CarritoCompras.objects.all() + serializador = CarritoSerial(carritos, many = True) + return Response(serializador.data) + + + def create(self, request): + # Crear registros en bases de datos + #nuevoCarrito = CarritoCompras.objects.create(usuario=request.data["usuario"]) + serializador = CarritoSerial(data=request.data) + if serializador.is_valid(): + serializador.save() #Grauda el nuevo objeto + return Response({"Exito":True}) #Creo el objeto + return Response(serializador.errors) + + + def retrieve(self, request, pk=None): + #Obtener un solo registro de la base de datos + #pk => Primary key + carrito = get_object_or_404(CarritoCompras, pk = pk) + serializador = CarritoSerial(carrito) + return Response(serializador.data) + + def partial_update(self, request, pk=None): + #Actualización parcial => PATCH + carrito = get_object_or_404(CarritoCompras, pk=pk) + carritoS = CarritoSerial(carrito, request.data, partial=True) + if carritoS.is_valid(): + carritoS.save() + return Response("Actualizado") + return Response(carritoS.errors) + + def update(self, request, pk=None): + #Actualiza registros => PUT + carrito = get_object_or_404(CarritoCompras, pk=pk) + carritoS = CarritoSerial(carrito, request.data) + if carritoS.is_valid(): + carritoS.save() + return Response("Actualizado") + return Response(carritoS.errors) + + + def destroy(self, request, pk=None): + #borramos elementos en base de datos + carrito = CarritoCompras.objects.get(id=pk) + carrito.delete() + return Response({"Objeto borrado":True}) + +class ArticuloAPI(viewsets.ViewSet): + def list(self, request): + #Listar Informacion + #request => peticion de usuarios. GET, POST, PUT, ... + articulo = Articulo.objects.all() + serializador = ArticuloSerial(articulo, many = True) + return Response(serializador.data) + + def create(self, request): + # Crear registros en bases de datos + serializador = ArticuloAPI(data=request.data) + if serializador.is_valid(): + serializador.save() + return Response({"Exito":True}) + return Response(serializador.errors) + + def retrieve(self, request, pk=None): + #Obtener un solo registro de la base de datos + #pk => Primary key + articulo = get_object_or_404(Articulo, pk=pk) + serializador = ArticuloSerial(articulo) + return Response(serializador.data) + + def partial_update(self, request, pk=None): + #Actualización parcial => PATCH + carrito = get_object_or_404(Articulo, pk=pk) + articuloS = ArticuloSerial(Articulo, request.data, partial=True) + if articuloS.is_valid(): + articuloS.save() + return Response("Actualizado") + return Response(articuloS.errors) + + def update(self, request, pk=None): + #Actualiza registros => PUT + articulo = get_object_or_404(Articulo, pk=pk) + articuloS = ArticuloSerial(articulo, request.data) + if articuloS.is_valid(): + articuloS.save() + return Response("Actualizado") + return Response(articuloS.errors) + + def destroy(self, request, pk=None): + #borramos elementos en base de datos + articulo = Articulo.objects.get(id=pk) + articulo.delete() + return Response({"Objeto borrado":True}) + +class InfoEnvioAPI(viewsets.ViewSet): + def list(self, request): + #Listar Informacion + #request => peticion de usuarios. GET, POST, PUT, ... + infoEnvio = InfoEnvio.objects.all() + serializador = InfoEnvioSerial(infoEnvio, many = True) + return Response(serializador.data) + + def create(self, request): + # Crear registros en bases de datos + serializador = InfoEnvioAPI(data=request.data) + if serializador.is_valid(): + serializador.save() + return Response({"Exito":True}) + return Response(serializador.errors) + + def retrieve(self, request, pk=None): + #Obtener un solo registro de la base de datos + #pk => Primary key + infoenvio = get_object_or_404(InfoEnvio, pk=pk) + serializador = InfoEnvioSerial(InfoEnvio) + return Response(serializador.data) + + def partial_update(self, request, pk=None): + #Actualización parcial => PATCH + infoEnvio = get_object_or_404(InfoEnvio, pk=pk) + infoEnvioS = InfoEnvioSerial(infoEnvio, request.data, partial=True) + if infoEnvioS.is_valid(): + infoEnvioS.save() + return Response("Actualizado") + return Response(infoEnvioS.errors) + + def update(self, request, pk=None): + #Actualiza registros => PUT + infoEnvio = get_object_or_404(InfoEnvio, pk=pk) + infoEnvioS = InfoEnvioSerial(infoEnvio, request.data) + if infoEnvioS.is_valid(): + infoEnvioS.save() + return Response("Actualizado") + return Response(infoEnvioS.errors) + + def destroy(self, request, pk=None): + #borramos elementos en base de datos + infoEnvio = InfoEnvio.objects.get(id=pk) + infoEnvio.delete() + return Response({"Objeto borrado":True}) \ No newline at end of file diff --git a/Codifo APIS.txt b/Codifo APIS.txt new file mode 100644 index 0000000..b78a31f --- /dev/null +++ b/Codifo APIS.txt @@ -0,0 +1,25 @@ +class CarritoAPI(viewsets.ViewS +def partial_update(self, request, pk=None): + #Actualización parcial => PATCH + carrito = get_object_or_404(CarritoCompras, pk=pk) + carritoS = CarritoSerial(carrito, request.data, partial=True) + if carritoS.is_valid(): + carritoS.save() + return Response("Actualizado") + return Response(carritoS.errors) + + def update(self, request, pk=None): + #Actualiza registros => PUT + carrito = get_object_or_404(CarritoCompras, pk=pk) + carritoS = CarritoSerial(carrito, request.data) + if carritoS.is_valid(): + carritoS.save() + return Response("Actualizado") + return Response(carritoS.errors) + + + def destroy(self, request, pk=None): + #borramos elementos en base de datos + carrito = CarritoCompras.objects.get(id=pk) + carrito.delete() + return Response({"Objeto borrado":True}) diff --git a/ExEcommerce/__pycache__/__init__.cpython-39.pyc b/ExEcommerce/__pycache__/__init__.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f01f77a59e8f6ab392ae6273c00e0c04dab418c6 GIT binary patch literal 160 zcmYe~<>g`k0_leyi6Hthh(HF6K#l_t7qb9~6oz01O-8?!3`HPe1o6w&+bYI6GdU+; z!8j%;wIIJZvn0PLGrw3NB{fGOpeR2rHO95VH90>wH?=4kl^q|SnU`4-AFo$Xd5gm) RH$SB`C)EyQ{AVC$004t@CjI~b literal 0 HcmV?d00001 diff --git a/ExEcommerce/__pycache__/settings.cpython-39.pyc b/ExEcommerce/__pycache__/settings.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..47198f6cd3d7886c7912c4649e1b2ea7433f6253 GIT binary patch literal 2488 zcmb7GPgC1Q6t{)I#>IpL63Cxvb?7v8DKdmiN;7R5VGH8H|HhI-t6{24ZGV283Z+YFX>ux9|7b&N1&K7V)v-fbv!{nl1*nYz@CW(*K_u<$;4c48{6137)Cta6Bv!8&nJoMjTs!FY6OfN-X>(*no3=#$5WeSVWFV z#i5Q<3&5lzwu>OJ$Q+lLw0LTCaVVbkvC#D`ORxxKg3~>B%CHeA!o(9^8r+4-F5C6q~+B*s-XLCbhG@;PH4&Mo|rmvs&H9JR4k4ymg1lPV5MGH zEWz-S;KKy#S7WwBflk_S(boiU+=aAzu$^dpy5VU zN)x!bL~9Uz&!RzbB#GgHYe9DqJ0Jqv=(Kvpa@;7?(Kgj?#hHA>bf{|+40AkM;DgV{ z#a!kR5$^cC;EQW;diWJoISZCYyl3?mMfD2FQM7~gG3K*KUI94WEAU}vQ!4Gq^|Hp7 zD=j6=O3kJo&oYf>R0m4%AQ`kn+9RUjx)AL+|HBNzUBkE7S&5>~c?{_*i!i(%&=En(Rf_Qt)ET_&9%DgHkACq(j#uXjpD-iam)%-N$EGAp>F=QGL7| zayVY_?7EU_#3loOP{nqS_0RF&T^Bzrm*&XEa{Sf6-CU;5+<>|;!|y+t(Jmp z5iTcaHpRl-Fr({mujqQnIW**5gY_Z$#IqsQ!;I0PF(s?(QCrk?ExRcxa&(qqPLWG3 zS=D#sAHvD9yxHCk^HR0i*pRaKoD%YA-NtKmwZdci^MEL5chlc#VL+o(6EU8jtj1n$I zO;&G0X9clk{iRf`z-9vyFJG1F+ihuE)=Q1D3}P!aS=SnnCfPQ)QCZul4`CBS{r#e0dYzA!(% zl|}bB%ziU~tHr|4;IBrCwqW3AvJ($7`~=VOli3?w8lLyu37^U4cs^cn*%R&`{)C_7 XGtqkHJD(!-+O02pIxQt0fKnVFRKq&-vap?F_1Hu?gA1=94n-8fpNf*iZm&RrUk`F z5KaW%3^wsD0!#(vgB|X13^)mRMT&$E?@%^+2RD>qKd88tbryNrRPEX)vSzB|VjK7R zVmocD;T>y@TU3n%e)G%comFm|vbA83rfYx7X}+g@^*S3CQ@*L{m6GzQKXD~+3Rp=QwC ngD96zOJ=kdmi@=Uc-}nw;faPvDRGLy(1rh>;6pOOFuuM4A8v6o literal 0 HcmV?d00001 diff --git a/ExEcommerce/__pycache__/wsgi.cpython-39.pyc b/ExEcommerce/__pycache__/wsgi.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e8966aff9a97ebb3aab0ecf5d31f4bee41323e2a GIT binary patch literal 571 zcmY*XO>Yx15cO`-CM*nbXHx)W?+%JJ|i-gwVlLjsv7raDyrQxZDHE6yTR&7#7lpy(HA*xEN zOn8N6v7ml038_R2Tp0o_Hwli0nk&b1rQr#80MXL>${i<(#LUHVB}{?;I1$MNOmY+- zCQH2bm`JEJ-j-l|a_tJ0M88QAHW>uG`rz!<$z*hqPKTG5@qc_A&Ya0?+-2<~$7EK*dp@dvqXw$=SP4F_|5 Na@~9V@Im-6{0nt+vgrT- literal 0 HcmV?d00001 diff --git a/ExEcommerce/settings.py b/ExEcommerce/settings.py index 274e968..e680187 100644 --- a/ExEcommerce/settings.py +++ b/ExEcommerce/settings.py @@ -39,7 +39,9 @@ 'django.contrib.staticfiles', 'Productos', 'rest_framework', - 'rest_framework.authtoken' + 'rest_framework.authtoken', + 'Checkout', + ] REST_FRAMEWORK = { diff --git a/ExEcommerce/urls.py b/ExEcommerce/urls.py index a28b9fb..3b6ef59 100644 --- a/ExEcommerce/urls.py +++ b/ExEcommerce/urls.py @@ -3,5 +3,6 @@ urlpatterns = [ path('admin/', admin.site.urls), - path('productos/api/', include('Productos.urls')) + path('productos/api/', include('Productos.urls')), + path('checkout/api/', include('Checkout.urls')) ] diff --git a/Productos/__pycache__/__init__.cpython-39.pyc b/Productos/__pycache__/__init__.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e0f2f1e6d16f8c595b5135e2b2ad65bf6dde5c39 GIT binary patch literal 158 zcmYe~<>g`k0_leyi6Hthh(HF6K#l_t7qb9~6oz01O-8?!3`HPe1o6w++bYI6GdU+; z!8j%;wIIJZvn0PLGrw3NB{fGOpeR2rHO95VH90>wH?=4^H3le>Qkq{Hl2of~aam~3qh7G$n$LRcc{A-~GG-JPU$^Zi)$gG>jFg%grJoWgrnq62*PIVLG0BPn-=uFD zjNWPX&yNoH@xWF3$ja=899YTYs8v>XMEK=>De6|0D^M(#2K1Y`}gtY8eT0VCw^fLyURUPKr_ zKz{H|U63=MUKumj-Kt(!;bq?#kr}x=CQwi?1p3Viju9zve{^RxZmW%UgMd$W56e9E zi4dJ^l@NX;L`$7b$j3rFZ)NjWi9`GVo6>|HelBm%%6VNiIy)`zmC>%=Xj^NSp=vVH zU#W8OvZ!?1DqE>?H?fq)xT$%yoTS1nTttwto-b+JLwu6mT2Dit4Yj`VKY7T)jeT-H Mta}kI(Cdu(FWM1Wj{pDw literal 0 HcmV?d00001 diff --git a/Productos/__pycache__/models.cpython-39.pyc b/Productos/__pycache__/models.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6da97c04b497368fbdbf75315761c5ef79a90059 GIT binary patch literal 2158 zcmb_dOONA35bpLPu^ms6$-EXVkMI&$f^YzFKnO9)W?;1tA!bh2NLG)#GwWcxL)#HE zqvbSnLfZeZ9QU8_8~TPg&0pX|l|9L1MRGvGmaD6)%iY!0-&f7HwmbsQ!#}@epEU^i z3p=Zi1)Z>L!f8q}8d6HWA>82R4dJGsQ{&nUO|V$p28(@XvB1*cO|UfYEH-zJ zN#NeXTqK~nkx4GnBF66Ovt0CZunH1VPC`SNQ;Sn>Jg1=zdV`zrTF;HJ$!*@aA)&*Y z+=15RE-d2d-IHV{N2!QQCArK*Q6{mx{R5_aNwt@;izpTOdHM7tFtnA=(^T7MDa(I~ z=}Ii9<2Qt_fCQ0eWJ-=1ZY+v(#cDr+Tii`;gc^;he@2u{->uuikU2u zQmRB2eb{XO2PG%sbaXL_WtIsQi&L=hd0fikv`)uhcBz|DRFo=;99-4_L5!={*X?I; z=eRj&OeTkrl?zH0pz@a*#;ZCYw4cwjWhCfOFH5i9Uc2n7_ZX7xL{ZK%5k=aIBG|_~ zMct30pXV&CM-=WuyThkU9VH^=s)c>;amLO?Wzg0{LZ-T4R@*45=Kr2p^ z4tKc+BfYBEy6f$TUGDR(8*)vKRWfaE^!@@;4jcn_etqn$;j6>de@AOJ+J%p-t^ zC(;1>!HDy2-_a&C~LB7y6oj3*u2d1aZqjyaEBtHGUOtAAo|?LGJzv+R37*>GtYi?z7MLpg%7Imw zYM|RFeGSG7+$b@9devFXJE%ur33~(GYV2aAT8G^VF&NhZvfbqp{}(%UW0uDAl&K+0 zlSvY@IFb1~D@(qyTymY~IC!9X82t_kJim$zY7e!V21inf;mQA0k`E9@-gG zG1I0J6Yb2DoC#H4D%?^{z;{u*=iahVCfKIu^m9=42f^i zwm0Jf|5fjyz)Y+6QG9~pLlglB?LJ~pA$CtuB`d@(3M6$Irvmo6{1R@< zPx1|M;xBMwCT-Mix0Nbk$)lNZ{4#lOCUL73GF(r7y^eo6jQyryb9opHahow3$t2HM z&LhsrcQWUKy<*ap-ghQF#Xq`NZscL6CVkBKt4s|ubs1nLSY>>9=bZJ!KZwct+%}AY zG|tjX1qMU@G@*mds3sk}?_PG+_XlUHh;3bnILm|>_k9}(F^h90gbjtrwOnN6H--4Th_ltnF#(J+ zl@y?*&Xpg1yYm*ilQf+#8q4yT_ zR82--M~TjJ1&NwqMlO;QMnC-H6&WVJq~Sj#@8PB^s+jcfDEPA1uVT5 z<>(^ygTYongfhOx;^A7ft6KNyL2nt->mH%0R3$w=pt3*Kn%ujIQ|f|h_%ofq2W9;^ zs3g_4A(crWoufZP!edBc>w=nEzbGX^1-F>6L4^$T*+A^=B!(Efi+hV&=;AA7U$_OnBJKcEY%KBIWt zuiG}@xQHp>jD6AY3Fz2%D~-&c93o>oXEaPpBIu`4_9+m>KuEh3w88V`yuP4WFf;~D KCvcAZBmW<%2nE3a literal 0 HcmV?d00001 diff --git a/Productos/__pycache__/urls.cpython-39.pyc b/Productos/__pycache__/urls.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2fc4741220660a46f98ef43e380b5082353e964a GIT binary patch literal 525 zcmYjNOK;RL5VoCclFe@D9x5)q>@}C=zzrcDDwRN$P*r-eBB2n^E?Mk2vK?Bu?wS8U zkNr!&(VqAVTwt6΄`@A+oxqR0u#!LPUVH6`RG82`%zjaT@sLl8tzNfhN&G0teP znT%A-<57>~L?t{?DNj|#GfE)d5k7_K&s@ZiUSh?lPawI~x4B3l6NyNFL>QwY0|wLW zY)5x&L-|}xKaev2jgv{qeB9UWvrpTuk%NGe`r-|&>p{9xJvcCB=iMKP!QnH%j0L&VcST(d|I7CuWjozZe*7N6DFwGovLN|>fqEB_CYr=EjagJnjr{FX7nAqB4l3O=PE*-~N_*wsH>;^r&xwntv zdus~}U&CDX7E3~n$T%Cgbq$p$jx^l#m#zL&V~@DoH^CiP`e(;e%eOzX8e7`Ml4-ut zb-dYuCqpXZwpU13VW~}?{*LBn@U|UF>+hy-cNcdM9`IV8K5=o$kITpCCyIpdPNk5j MG)P#&Hp5N+AF@MQH~;_u literal 0 HcmV?d00001 diff --git a/Productos/migrations/__pycache__/0001_initial.cpython-39.pyc b/Productos/migrations/__pycache__/0001_initial.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..16da6e56632652a249978ecfe2702a7a27618ee0 GIT binary patch literal 1350 zcma)6&2HO95GI$D_#;Yj6sL8XHt|&#!EG*WPy{h#yETFYMdFhnfLL)x^eQBmS(1tE zYjf2*B*(r%UZw;`~Ty}o8rX64}j8W&3&KM)6{Zzz? zmqKQR?xqqjDV|03+Q(x+%47PAho)hmF*U)MGBBrBY)ozJEW5zKLTBlMNuLcJ=&tMq z1BYxLxZtf!(tOhVW=9W#m9=281^pFk&JX^_`5WlG>%BL~(-uiVBmKuG+$5Af4B=LT zxlP&tZ!EW#&hqAR2)E(06(eNl3inS$j<5cO zb8n5)t#M*&x()Y<^Ov2{_X1_+Vt~fLEmqBZa&~ z(7jxVl&kabC7x@qKqYu0E>H)rQO#w6Va8L`-Atx)g_pllxke_Hm!E|RW^s9{?S(9* zHb$22%oCoy)OJ=SiT0{IksQKOQajkKlZC(p3hn+xkyR0$>gEa~A$1S1h?K}l&U6q_ z1Pc-IT2s^-HKGH!;8jv;yQK6k?rmHY<4>hake!w_@EUd_JsaKDZrHFChT0E9>h>x@l7ldO zRq>=wois;eq9ks00GMM2m_-5$#p)1xlcpF?>wBWC+T!g~jgD%%v^P2Bsulg?l*ic0 z!7+sw<9fwA!LxF`>4kH_rdHr=CTl_BpQod^0rHSEO2&sb{NStMHS&}!%#81 zehg-NdwXApYbwV1xvF0qdWDSQ5lt?$nQhx9W83Dy9R9`rw%v{9o4z?D>&~BK4X&*N zvhRE#+aHauQCE9yqGOmh?6!p7xiXI1=V-j4Kz&muSjTalYAbz5Htl}j7W7eFm!jUb HWxCcsMA?t3 literal 0 HcmV?d00001 diff --git a/Productos/migrations/__pycache__/0002_auto_20210916_1521.cpython-39.pyc b/Productos/migrations/__pycache__/0002_auto_20210916_1521.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b1817db7df4c2d839d78c2517573ae09d9607d8e GIT binary patch literal 655 zcmYjO&2H2%5O(5ZHwjyb0~g@3C!}1eWD!UpR25Y%NQer-Eef(s#=G?@iG!U;<=kHT zAiR=qh||78B?RMim+n|Ins0vW`NsU03l3ne3;(s;?Xu9@8T=Jh#+D6?rVZ(;&id(XIgi~P46vUDbb&nMIC96fd>Mv4?$dOAXvsd{`mcLl!hushD{(gdLo}h`S|2GH&&&Mg`k0_leyi6Hthh(HF6K#l_t7qb9~6oz01O-8?!3`HPe1o6wy+bYI6GdU+; z!8j%;wIIJZvn0PLGrw3NB{fGOpeR2rHO95VH90>wH?=4^H3le>QkqAw kl9``Z91|a(nU`4-AFo$Xd5gm)7pNj9)edCOXCP((040Ab761SM literal 0 HcmV?d00001 diff --git a/db.sqlite3 b/db.sqlite3 index 65d1360ab65e3341196663233d13fa26c78092c7..525f62567d6f7107f05bb597a914410169d81317 100644 GIT binary patch delta 6408 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 QtJSB(EJk1DCRMSC_&v zRdv#GzGBp{IU7w)>8mhDYrBOSbP`c66FfsJ{=_j{!9~;{B9~2+7nMlqOrrtp2!dBxPV`Y!`Rd0^SdSR_4a7)Xd)8Nq;tIvng2rk80NAEGMFM& zpTOP&nZwC!Hkn>+<9*b4Vy~j2G1b(F>ScC3#t2?x4r8Wk+cg+tZ5>6+FvmGfYxo1~ z6qgBefib%P^Kv@vtP~L>2x2!9Sj1gC!e6G6|3w}c&Ktp>@2wIMAb5dk+`)AW;YY*~ zMu7FNg%KFK&$}IqhHZE|ljEwxT>NbnZ>91$k;hrZAF}<-Rx0c`C$t-nClqtx?^?U!-M^Abq<>?(xLT4#v0duje<*fPk7N^3z1i>9f+{n2 z?1&x;g?qBmRM77Z`464w``*{l7w_B~J(SRlID)wEb zuT@ud&7-z>G{2&&TeQHI&8j!3>bkEvm5cVobhS{L;J&0VU6apYzAH-#@1lXCO`$5a z^oQzf#jW-9w#>WXDcDrHopGL(3!XMQp=vyL{r7p+K6>nBFRB+-Z`+4iMb;MdJ z%nEMHQ%jf|U?m-d6ujH$NWtl$VzKrcT0@KBQ{3+sPW#&U$)Z`#Zfvy`XTPNzMr8r> z1WR~>mu$P{nP&f>Fkhzi3@8!2$2+`Y!znS~0SYB>b+RB265K*Bn&bs}kP*Bn7YEmI zamu?ZDhoD+TOQT8SgdT|UR5*c=LqIl`$IIW<=e&20{PVc38Xdas>c5J+1U0>zQjOS F_!s%M@CpC` From 3a5cb2cb6746a3684c14a24f8ae136e51c848722 Mon Sep 17 00:00:00 2001 From: Alejandro Lopez Velez Date: Wed, 22 Sep 2021 15:59:04 -0500 Subject: [PATCH 3/3] Fixes #7 ignorando archivos --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3f58cf1 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +/db.sqlite3 +/ExEcommerce/settings.py +/ExEcommerce/urls.py \ No newline at end of file