Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added .vs/ExEcommerce/v16/.suo
Binary file not shown.
3 changes: 3 additions & 0 deletions .vs/ProjectSettings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"CurrentProjectSetting": null
}
3 changes: 3 additions & 0 deletions .vs/PythonSettings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"TestFramework": "Pytest"
}
9 changes: 9 additions & 0 deletions .vs/VSWorkspaceState.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"ExpandedNodes": [
"",
"\\checkout_72186587",
"\\Productos"
],
"SelectedNode": "\\checkout_72186587\\urls.py",
"PreviewInSolutionExplorer": false
}
Binary file added .vs/slnx.sqlite
Binary file not shown.
Binary file added ExEcommerce/__pycache__/__init__.cpython-39.pyc
Binary file not shown.
Binary file added ExEcommerce/__pycache__/settings.cpython-39.pyc
Binary file not shown.
Binary file added ExEcommerce/__pycache__/urls.cpython-39.pyc
Binary file not shown.
Binary file added ExEcommerce/__pycache__/wsgi.cpython-39.pyc
Binary file not shown.
1 change: 1 addition & 0 deletions ExEcommerce/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
'django.contrib.messages',
'django.contrib.staticfiles',
'Productos',
'checkout_72186587',
'rest_framework',
'rest_framework.authtoken',
'Checkout',
Expand Down
2 changes: 2 additions & 0 deletions ExEcommerce/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,7 @@
urlpatterns = [
path('admin/', admin.site.urls),
path('productos/api/', include('Productos.urls')),
path('checkout/api/', include('checkout_72186587.urls')),
path('checkout/api/', include('Checkout.urls'))

]
Binary file added Productos/__pycache__/__init__.cpython-39.pyc
Binary file not shown.
Binary file added Productos/__pycache__/admin.cpython-39.pyc
Binary file not shown.
Binary file added Productos/__pycache__/apps.cpython-39.pyc
Binary file not shown.
Binary file added Productos/__pycache__/models.cpython-39.pyc
Binary file not shown.
Binary file added Productos/__pycache__/serializers.cpython-39.pyc
Binary file not shown.
Binary file added Productos/__pycache__/urls.cpython-39.pyc
Binary file not shown.
Binary file added Productos/__pycache__/views.cpython-39.pyc
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Empty file added checkout_72186587/__init__.py
Empty file.
Binary file not shown.
Binary file added checkout_72186587/__pycache__/admin.cpython-39.pyc
Binary file not shown.
Binary file added checkout_72186587/__pycache__/apps.cpython-39.pyc
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file added checkout_72186587/__pycache__/urls.cpython-39.pyc
Binary file not shown.
Binary file not shown.
8 changes: 8 additions & 0 deletions checkout_72186587/admin.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
from django.contrib import admin
from checkout_72186587.models import *


# Register your models here.
admin.site.register(CarritoCompras)
admin.site.register(Articulo)
admin.site.register(infoEnvio)
6 changes: 6 additions & 0 deletions checkout_72186587/apps.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
from django.apps import AppConfig


class Checkout72186587Config(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'checkout_72186587'
49 changes: 49 additions & 0 deletions checkout_72186587/migrations/0001_initial.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# Generated by Django 3.2.7 on 2021-09-20 20:48

from django.db import migrations, models
import django.db.models.deletion


class Migration(migrations.Migration):

initial = True

dependencies = [
('Productos', '0002_auto_20210916_1521'),
]

operations = [
migrations.CreateModel(
name='CarritoCompras',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('usuario', models.CharField(max_length=200)),
('fecha', models.DateField()),
('dcto', models.FloatField(default=0)),
('cantMinima', models.IntegerField()),
('pagado', models.BooleanField()),
],
),
migrations.CreateModel(
name='infoEnvio',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('nombre', models.CharField(max_length=200)),
('apellido', models.CharField(max_length=200)),
('direccion', models.CharField(max_length=300)),
('paais', models.CharField(max_length=300)),
('departamento', models.CharField(max_length=300)),
('ciudad', models.CharField(max_length=300)),
('carrito', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='checkout_72186587.carritocompras')),
],
),
migrations.CreateModel(
name='Articulo',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('cantidad', models.IntegerField()),
('carrito', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='checkout_72186587.carritocompras')),
('producto', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='Productos.producto')),
],
),
]
18 changes: 18 additions & 0 deletions checkout_72186587/migrations/0002_alter_carritocompras_fecha.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Generated by Django 3.2.7 on 2021-09-21 20:27

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('checkout_72186587', '0001_initial'),
]

operations = [
migrations.AlterField(
model_name='carritocompras',
name='fecha',
field=models.DateTimeField(auto_now_add=True),
),
]
23 changes: 23 additions & 0 deletions checkout_72186587/migrations/0003_auto_20210923_1305.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Generated by Django 3.2.7 on 2021-09-23 18:05

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('checkout_72186587', '0002_alter_carritocompras_fecha'),
]

operations = [
migrations.AlterField(
model_name='carritocompras',
name='cantMinima',
field=models.IntegerField(default=0),
),
migrations.AlterField(
model_name='carritocompras',
name='pagado',
field=models.BooleanField(default=False),
),
]
Empty file.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
54 changes: 54 additions & 0 deletions checkout_72186587/models.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
from django.db import models
from django.db.models.fields import BooleanField
from Productos.models import Producto


# Create your models here.
class CarritoCompras(models.Model):
usuario = models.CharField(max_length=200)
fecha = models.DateTimeField(auto_now_add=True)
dcto = models.FloatField(default=0)
cantMinima = models.IntegerField(default=0)
pagado = models.BooleanField(default=False)
#(null=True, blank=True)


def __str__(self):
return self.usuario


def total(self):
pass

def numArt(self):
pass


class Articulo(models.Model):
carrito = models.ForeignKey(CarritoCompras, on_delete=models.CASCADE)
producto = models.ForeignKey(Producto, on_delete=models.CASCADE)
cantidad = models.IntegerField()

# def tipoEl(self):
# from Productos.serializers import TipoSerial

def __str__(self):
return self.carrito+" - "+self.producto.nombre


def subtotal(self):
pass


class infoEnvio(models.Model):
carrito = models.ForeignKey(CarritoCompras, on_delete=models.CASCADE)
nombre = models.CharField(max_length=200)
apellido = models.CharField(max_length=200)
direccion = models.CharField(max_length=300)
paais = models.CharField(max_length=300)
departamento = models.CharField(max_length=300)
ciudad = models.CharField(max_length=300)

def __str__(self):
return self.nombre

28 changes: 28 additions & 0 deletions checkout_72186587/serializer.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
#Creamos los serializadores de nuestra aplicaci�n

#Serializadores => convertir en diccionarios Python
# los objetos CRUD

from rest_framework import serializers

from checkout_72186587.models import *

class CarritoSerial(serializers.ModelSerializer):
class Meta:
model = CarritoCompras
fields = '__all__'
#fields = ["nombre", "foto"]


class ArticuloSerial(serializers.ModelSerializer):
class Meta:
model = Articulo
fields = '__all__'
#fields = ["nombre", "precio", "descripcion", "marca", "ref", "tipoEl"]


class InfoSerial(serializers.ModelSerializer):
class Meta:
model = infoEnvio
fields = '__all__'

3 changes: 3 additions & 0 deletions checkout_72186587/tests.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from django.test import TestCase

# Create your tests here.
18 changes: 18 additions & 0 deletions checkout_72186587/urls.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#Especificamos las direcciones de las API's

from django.urls import path, include
from rest_framework.routers import DefaultRouter
from checkout_72186587.views import *

#CarritoComprasAPI, ArticuloAPI, infoEnvioAPI

router = DefaultRouter()
router.register('Carrito', CarritoApi, basename="carrito")
router.register('Articulo', ArticuloApi, basename="articulo")
router.register('infoEnvio', InfoEnvioApi, basename="infoEnvio")

urlpatterns = [
path('crud/', include(router.urls))
]

#localhost:8000/.../api/crud/tipos
101 changes: 101 additions & 0 deletions checkout_72186587/views.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
from functools import partial
from django.http import request
from django.shortcuts import render
from rest_framework import viewsets
from rest_framework import response
from rest_framework.response import Response
from .serializer import *
from django.shortcuts import get_object_or_404


# Create your views here.

class CarritoApi(viewsets.ViewSet):
def list(self, request):
carritos = CarritoCompras.objects.all()
serializador = CarritoSerial(carritos, many=True)
return Response(serializador.data)

def create(self, request):
# nuevoCarrito = CarritoCompras.objects.create(usuario=request.data["usuario"])
serializador = CarritoSerial(data=request.data)
if serializador.is_valid:
serializador.save()
return Response({"Exito":True})
return Response(serializador.errors)

def retrieve(self, request, pk=None):
#obtner un solo registro de la base de datos
#pk es primari key
#carrito = CarritoCompras.objects.get(id=pk)
carrito = get_object_or_404(CarritoCompras, pk=pk)
serializador = CarritoSerial(carrito)
return Response(serializador.data)

def partial_update(self, request, pk=None):
# se actualización parcial con el 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):
# se actualización parcial con el 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):
carrito = CarritoCompras.objects.get(id = pk)
carrito.delete()
return response("Objeto borrado", True)



class ArticuloApi(viewsets.ViewSet):
def list(self, request):
articulos = Articulo.objects.all()
serializador = ArticuloSerial(articulos, many=True)
return Response(serializador.data)

def create(self, request):
# nuevoCarrito = CarritoCompras.objects.create(usuario=request.data["usuario"])
serializador = ArticuloSerial(data=request.data)
if serializador.is_valid:
serializador.save()
return Response({"Exito":True})
return Response(serializador.errors)

def retrieve(self, request, pk=None):
#obtner un solo registro de la base de datos
#pk es primari key
articulos = get_object_or_404(CarritoCompras, pk=pk)
serializador = ArticuloSerial()
return Response(pk)

class InfoEnvioApi(viewsets.ViewSet):
def list(self, request):
info = infoEnvio.objects.all()
serializador = InfoSerial(info, many=True)
return Response(serializador.data)

def create(self, request):
# nuevoCarrito = CarritoCompras.objects.create(usuario=request.data["usuario"])
serializador = InfoSerial(data=request.data)
if serializador.is_valid:
serializador.save()
return Response({"Exito":True})
return Response(serializador.errors)

def retrieve(self, request, pk=None):
#obtner un solo registro de la base de datos
#pk es primari key
info = get_object_or_404(CarritoCompras, pk=pk)
serializador = ArticuloSerial()
return Response(pk)