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
Empty file added Checkout1047484734/__init__.py
Empty file.
Binary file not shown.
Binary file added Checkout1047484734/__pycache__/admin.cpython-39.pyc
Binary file not shown.
Binary file added Checkout1047484734/__pycache__/apps.cpython-39.pyc
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file added Checkout1047484734/__pycache__/urls.cpython-39.pyc
Binary file not shown.
Binary file not shown.
7 changes: 7 additions & 0 deletions Checkout1047484734/admin.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
from Checkout1047484734.models import Articulo, CarritoCompras, InfoEnvio
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 Checkout1047484734/apps.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
from django.apps import AppConfig


class Checkout1047484734Config(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'Checkout1047484734'
49 changes: 49 additions & 0 deletions Checkout1047484734/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-23 00:52

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=100)),
('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=100)),
('apellido', models.CharField(max_length=100)),
('direccion', models.CharField(max_length=100)),
('pais', models.CharField(max_length=100)),
('departamento', models.CharField(max_length=100)),
('ciudad', models.CharField(max_length=100)),
('carrito', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='Checkout1047484734.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='Checkout1047484734.carritocompras')),
('producto', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='Productos.producto')),
],
),
]
Empty file.
Binary file not shown.
Binary file not shown.
41 changes: 41 additions & 0 deletions Checkout1047484734/models.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
from Productos.models import *
from django.db import models

class CarritoCompras (models.Model):
usuario = models.CharField(max_length=100)
fecha = models.DateField(auto_now_add=True)
dcto = models.FloatField(default=0)
cantMinima = models.IntegerField(default=0)
pagado = models.BooleanField(default=False)

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

def total(self):
pass

def numArt(self):
pass

class InfoEnvio (models.Model):
carrito = models.ForeignKey(CarritoCompras, on_delete=models.CASCADE)
nombre = models.CharField(max_length=100)
apellido = models.CharField(max_length=100)
direccion = models.CharField(max_length=100)
pais = models.CharField(max_length=100)
departamento = models.CharField(max_length=100)
ciudad = models.CharField(max_length=100)

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):
pass
18 changes: 18 additions & 0 deletions Checkout1047484734/serializers.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
from Checkout1047484734.models import *
from rest_framework import serializers
from Productos.models import *

class CarritoComprasSerial(serializers.ModelSerializer):
class Meta:
model = CarritoCompras
fields = '__all__'

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

class ArticuloSerial(serializers.ModelSerializer):
class Meta:
model = Articulo
fields = ["carrito", "producto", "cantidad"]
3 changes: 3 additions & 0 deletions Checkout1047484734/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.
14 changes: 14 additions & 0 deletions Checkout1047484734/urls.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#gestionar las direcciones internas de la aplicacion chechout
from django.urls import path, include
from rest_framework import routers, urlpatterns
#ViewSets necesita trabajar con routers
from rest_framework.routers import DefaultRouter
from .views import *

router = DefaultRouter()
router.register('carrito', CarritoComprasAPI, basename='carrito')

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

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

class CarritoComprasAPI (viewsets.ViewSet):
def list(self, request):
#request trata de la peticion de usuario get,post, put...
carritos = CarritoCompras.objects.all()
carritoSerializador = CarritoComprasSerial(carritos, many=True)
return Response(carritoSerializador.data)

def create(self, request):
#crear nuevos elementos en base de datos
#request.data = [{},{},...]
#nuevoCarritoSerial = CarritoComprasSerial(data=request.data, many=True)
nuevoCarritoSerial = CarritoComprasSerial(data=request.data)
if nuevoCarritoSerial.is_valid():
nuevoCarritoSerial.save()
return Response({"Exite":True})
return Response(nuevoCarritoSerial.errors, status=HTTP_400_BAD_REQUEST)


def retrieve(self, request, pk=None):
#obtener una información de la base de datos de un objeto
carritos = CarritoCompras.objects.filter(usuario=pk)
serializador = CarritoComprasSerial(carritos, many=True)
return Response(serializador.data)

def parcial_update(self, request, pk=None):
#permite actualizar atributos de nuestro objeto CRUD
carrito = CarritoCompras.objects.get(pk=pk)
carritos = CarritoComprasSerial(carrito, request.data, partial=True)
if carritos.is_valid():
carritos.save()
return Response({"Actualizado":True})
return Response(carritos.errors,status=HTTP_400_BAD_REQUEST)

def update(self, request, pk=None):
#permite actuazliar todos los argumentos en base de datos
carrito = CarritoCompras.objects.get(pk=pk)
carritos = CarritoComprasSerial(carrito, request.data)
if carritos.is_valid():
carritos.save()
return Response({"Actualizado":True})
return Response(carritos.errors,status=HTTP_400_BAD_REQUEST)

def destroy(self, request, pk=None):
carrito = CarritoCompras.objects.get(pk=pk)
carrito.delete()
return Response({"Delete":True})
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 @@ -40,6 +40,7 @@
'Productos',
'rest_framework',
'rest_framework.authtoken',
'Checkout1047484734'
'Checkout',
'Servicios'
]
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('Checkout1047484734.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.