
from django.shortcuts import render
from django.contrib.auth.decorators import login_required
from .models import Producto
from CarroApp.carro import Carro
from ProductosApp.models import Oferta_productos, Grupo
from django.http import JsonResponse
from django.template.loader import render_to_string

# Create your views here.


@login_required(login_url='/acceder/acceder/')

def pedidos(request):
    carro = Carro(request)

    tipos = Oferta_productos.objects.all()
    productos = Producto.objects.all()


    return render(request, 'PedidosApp/pedidos.html', {"productos": productos,"tipos":tipos})


@login_required(login_url='/acceder/acceder/')
def seleccionar_tipo(request):
    if request.method == 'GET':
        tipo_producto = request.GET['tipo_producto']

        grupos_productos = Grupo.objects.filter(ofertas_productos__id=tipo_producto)
        
        t = render_to_string('PedidosApp/filtro_grupo.html',{'grupos_productos':grupos_productos})
        return JsonResponse({"data": t})


@login_required(login_url='/acceder/acceder/')
def filtrar_productos (request):
    if request.method == 'GET':
        filtro_producto = request.GET['filtro_producto']
        filtro_grupo = request.GET['filtro_grupo']


        if int(filtro_producto) == 0:
            productos_filtrados = Producto.objects.all()
            producto_escogido = 'todos'
            grupo_escogido = 'todos'
            cantidad_productos_mostrados = len(productos_filtrados)

        if int(filtro_grupo) == 0 and int(filtro_producto) > 0:
            productos_filtrados = Producto.objects.filter(
                tipo__id=filtro_producto)
            try:
                producto_escogido = productos_filtrados[0].tipo
                grupo_escogido = 'todos'
                cantidad_productos_mostrados = len(productos_filtrados)
            except:
                producto_escogido = ''
                grupo_escogido = 'todos'
                cantidad_productos_mostrados = 'No hay productos disponibles'

        if int(filtro_producto) > 0 and int(filtro_grupo) > 0:
            productos_filtrados = Producto.objects.filter(
                tipo__id=filtro_producto, grupo_id=filtro_grupo)
            try: 
                producto_escogido = productos_filtrados[0].tipo
                grupo_escogido = productos_filtrados[0].grupo
                cantidad_productos_mostrados = len(productos_filtrados)
            except:
                producto_escogido = ''
                grupo_escogido = ''
                cantidad_productos_mostrados = 'No hay productos disponibles'
        
        #print(producto_escogido, grupo_escogido, cantidad_productos_mostrados)

        t = render_to_string(
            'PedidosApp/productos_filtrados.html', {'productos': productos_filtrados, 'producto_escogido': producto_escogido, 'grupo_escogido': grupo_escogido, 'cantidad_productos_mostrados': cantidad_productos_mostrados})
        
        return JsonResponse({"data": t})
        
