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
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
db.sqlite3
Empty file added Checkout1101756167/__init__.py
Empty file.
Binary file not shown.
Binary file added Checkout1101756167/__pycache__/admin.cpython-39.pyc
Binary file not shown.
Binary file added Checkout1101756167/__pycache__/apps.cpython-39.pyc
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file added Checkout1101756167/__pycache__/urls.cpython-39.pyc
Binary file not shown.
Binary file not shown.
7 changes: 7 additions & 0 deletions Checkout1101756167/admin.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
from django.contrib import admin

from .models import *

admin.site.register(CarritoCompras)
admin.site.register(Articulo)
admin.site.register(InfoEnvio)
6 changes: 6 additions & 0 deletions Checkout1101756167/apps.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
from django.apps import AppConfig


class Checkout1101756167Config(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'Checkout1101756167'
49 changes: 49 additions & 0 deletions Checkout1101756167/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-21 23:07

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(auto_now_add=True)),
('dcto', models.FloatField(default=0)),
('cantMinima', models.IntegerField(default=0)),
('pagado', models.BooleanField(default=False)),
],
),
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=200)),
('pais', models.CharField(max_length=200)),
('departamento', models.CharField(max_length=200)),
('ciudad', models.CharField(max_length=200)),
('carrtio', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='Checkout1101756167.carritocompras')),
],
),
migrations.CreateModel(
name='Articulo',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('cantidad', models.IntegerField(default=0)),
('carrito', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='Checkout1101756167.carritocompras')),
('producto', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='Productos.producto')),
],
),
]
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Generated by Django 3.2.7 on 2021-09-22 23:54

from django.db import migrations


class Migration(migrations.Migration):

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

operations = [
migrations.RenameField(
model_name='infoenvio',
old_name='carrtio',
new_name='carrito',
),
]
Empty file.
Binary file not shown.
Binary file not shown.
Binary file not shown.
52 changes: 52 additions & 0 deletions Checkout1101756167/models.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
from django.db import models
from django.contrib.auth import get_user_model

from Productos.models import Producto

class CarritoCompras(models.Model):
usuario = models.CharField(max_length=200)
fecha = models.DateField(auto_now_add=True) #16/09/2021
dcto = models.FloatField(default=0)
cantMinima = models.IntegerField(default=0)
pagado = models.BooleanField(default=False)

def __str__(self):
return str(self.usuario) + " - " + str(self.fecha)

@property
def total(self):
total = 0
for articulo in self.articulo_set.all():
total += articulo.subtotal()
return total

def numArt(self):
articulos = Articulo.objects.filter(carrito=self)
return len (articulos)

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=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__()

class Articulo(models.Model):
carrito = models.ForeignKey(CarritoCompras, on_delete=models.CASCADE)
producto = models.ForeignKey(Producto, on_delete=models.SET_NULL, null=True)
cantidad = models.IntegerField(default=0)


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

def subtotal(self):
#subtotal = precioUNitario*cantidad
return self.producto.precio*self.cantidad


20 changes: 20 additions & 0 deletions Checkout1101756167/serializers.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
from rest_framework import serializers

from .models import *

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

class InfoEnvioSerial(serializers.ModelSerializer):
class Meta:
model = InfoEnvio
fields = '__all__'


class ArticuloSerial(serializers.ModelSerializer):
class Meta:
model = Articulo
fields = '__all__'
3 changes: 3 additions & 0 deletions Checkout1101756167/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.
16 changes: 16 additions & 0 deletions Checkout1101756167/urls.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@

from django.urls import path, include

from rest_framework.routers import DefaultRouter

from .views import *

router = DefaultRouter()
router.register ('carrito', CarritoComprasAPI, basename="carrito")
router.register ('articulos', ArticuloAPI, basename="articulos")
router.register ('envio', InfoEnvioAPI, basename="envio")

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

]
84 changes: 84 additions & 0 deletions Checkout1101756167/views.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
from rest_framework import viewsets
from rest_framework.response import Response
from rest_framework.status import HTTP_400_BAD_REQUEST

from .serializers import *


class CarritoComprasAPI(viewsets.ViewSet):
def list(self, request):
carritos = CarritoCompras.objects.all()
serializer = CarritoComprasSerial(carritos, many=True)
return Response(serializer.data)

def create(self, request):
serializer = CarritoComprasSerial(data=request.data)
if serializer.is_valid():
carrito = serializer.save()
return Response({'idCarrito':carrito.id})
return Response(serializer.errors, HTTP_400_BAD_REQUEST)

def retrieve(self,request,pk=None):
#pk= primaryKey
carritosUsuario = CarritoCompras.objects.filter(usuario=pk)
carritoS= CarritoComprasSerial(carritosUsuario,many=True)
return Response(carritoS.data)

def partial_update(self, request, pk=None):
carrito = self.get_object()
data = {'pagado':True}
serializer = CarritoComprasSerial(carrito, data, partial=True)
if serializer.is_valid():
serializer.save()
return Response({'update':True})
return Response(serializer.errors, HTTP_400_BAD_REQUEST)


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

def create(self, request):
serializer = ArticuloSerial(data=request.data, many=True)
if serializer.is_valid():
serializer.save()
return Response({'Exito':True})
return Response(serializer.errors, HTTP_400_BAD_REQUEST)

def retrieve(self,request,pk=None):
#pk= primaryKey
articulos = Articulo.objects.get(pk=pk)
artS= ArticuloSerial(articulos,many=True)
return Response(artS.data)

def partial_update(self, request, pk=None):
artModificar = Articulo.objects.get(pk=pk)
serializer = ArticuloSerial(artModificar, request.data, partial=True)
if serializer.is_valid():
serializer.save()
return Response({"Actualizado":True})
return Response(serializer.errors, HTTP_400_BAD_REQUEST)

def destroy (self, request, pk= None):
pass

class InfoEnvioAPI(viewsets.ViewSet):
def list(self, request):
envios = InfoEnvio.objects.all()
serializer = InfoEnvioSerial(envios, many=True)
return Response(serializer.data)

def create(self, request):
serializer = InfoEnvioSerial(data=request.data, many=True)
if serializer.is_valid():
serializer.save()
return Response({'Creados':True})
return Response(serializer.errors, HTTP_400_BAD_REQUEST)

def retrieve(self,request,pk=None):
#pk= primaryKey
enviosUsuario = InfoEnvio.objects.filter(carrito=pk)
envioS= InfoEnvioSerial(enviosUsuario,many=True)
return Response(envioS.data)
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 @@ -37,6 +37,7 @@
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'Checkout1101756167',
'Productos',
'rest_framework',
'rest_framework.authtoken',
Expand Down
4 changes: 4 additions & 0 deletions ExEcommerce/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,9 @@
urlpatterns = [
path('admin/', admin.site.urls),
path('productos/api/', include('Productos.urls')),

path('checkout/api/', include('Checkout1101756167.urls')),

path('checkout/api/', include('Checkout_1098730480.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.