# Create your views here.
import os
import time
import cx_Oracle
from django.http import HttpResponse
from django.views.decorators.csrf import csrf_exempt
from rest_framework.renderers import JSONRenderer
from rest_framework.parsers import JSONParser
from rest_framework import status
from rest_framework.decorators import api_view
from rest_framework.response import Response
from grupos.models import Grupo
from tablas.models import Tabla
from grupos.serializers import *
class JSONResponse(HttpResponse):
    """
    An HttpResponse that renders it's content into JSON.
    """
    def __init__(self, data, **kwargs):
        content = JSONRenderer().render(data)
        kwargs['content_type'] = 'application/json'
        super(JSONResponse, self).__init__(content, **kwargs)

#---Metodo para Modelo
@csrf_exempt
def grupo_list(request):
    if request.method == 'GET':
        actividades = sorted(Grupo.objects.all(), key=lambda a: a.nombre)
        contenedor=[]
        fila=1
        for actividad in actividades:
            info={}
            info["id_grupo"]=actividad.id_grupo
            info["id_tabla"]=actividad.id_tabla.id_tabla
            info["nombre_tab"]=actividad.id_tabla.nombre
            info["nombre"]=actividad.nombre
            info["campo"]=actividad.campo
            info["campo_descripcion"]=actividad.descripcion
            info["rownum_"] = fila
            contenedor.append(info)
            fila+=1
        response={}
        total={}
        response['status']=0
        response['totalRows']=len(actividades)
        response['startRow']=0
        response['endRow']=len(actividades)
        response['data']=contenedor
        total['response']=response
        return JSONResponse(total)
    elif request.method == 'POST':
        actividades = sorted(Grupo.objects.all(), key=lambda a: a.nombre)
        contenedor=[]
        fila=1
        for actividad in actividades:
            info={}
            info["id_grupo"]=actividad.id_grupo
            info["id_tabla"]=actividad.id_tabla.id_tabla
            info["nombre_tab"]=actividad.id_tabla.nombre
            info["nombre"]=actividad.nombre
            info["campo"]=actividad.campo
            info["campo_descripcion"]=actividad.descripcion
            info["rownum_"] = fila
            contenedor.append(info)
            fila+=1
        response={}
        total={}
        response['status']=0
        response['totalRows']=len(actividades)
        response['startRow']=0
        response['endRow']=len(actividades)
        response['data']=contenedor
        total['response']=response
        return JSONResponse(total)
@csrf_exempt
def grupo_ingresa(request):
    if request.method == 'GET':
        id_tabla = request.GET.get('id_tabla')
        nombre = request.GET.get('nombre')
        tabla = request.GET.get('tabla')
        campo = request.GET.get('campo')
        campo_descripcion = request.GET.get('campo_descripcion')
        tabla=Tabla(id_tabla=id_tabla)
        grupo=Grupo(id_tabla=tabla,nombre=nombre,tabla=tabla,campo=campo,descripcion=campo_descripcion)
        grupo.save()
        actividades = Grupo.objects.get(id_grupo=grupo.id_grupo)
        serializer = GrupoSerializer(actividades)
        response={}
        total={}
        response['status']=0
        response['totalRows']=1
        response['startRow']=0
        response['endRow']=0
        response['data']=serializer.data
        total['response']=response
        return JSONResponse(total)
    if request.method == 'POST':
        id_tabla = request.POST.get('id_tabla')
        nombre = request.POST.get('nombre')
        tabla = request.POST.get('tabla')
        campo = request.POST.get('campo')
        campo_descripcion = request.POST.get('campo_descripcion')
        tabla=Tabla(id_tabla=id_tabla)
        grupo=Grupo(id_tabla=tabla,nombre=nombre,tabla=tabla,campo=campo,descripcion=campo_descripcion)
        grupo.save()
        actividades = Grupo.objects.get(id_grupo=grupo.id_grupo)
        serializer = GrupoSerializer(actividades)
        response={}
        total={}
        response['status']=0
        response['totalRows']=1
        response['startRow']=0
        response['endRow']=0
        response['data']=serializer.data
        total['response']=response
        return JSONResponse(total)
@csrf_exempt
def grupo_actualiza(request):
    if request.method == 'GET':
        id_grupo = request.GET.get('id_grupo')
        id_tabla = request.GET.get('id_tabla')
        nombre = request.GET.get('nombre')
        tabla = request.GET.get('tabla')
        campo = request.GET.get('campo')
        campo_descripcion = request.GET.get('campo_descripcion')
        tabla=Tabla(id_tabla=id_tabla)
        actividades = Grupo.objects.get(id_grupo=id_grupo)
        actividades.id_tabla=tabla
        actividades.nombre = nombre
        actividades.tabla = tabla
        actividades.campo = campo
        actividades.descripcion = campo_descripcion
        actividades.save()
        serializer = GrupoSerializer(actividades)
        response={}
        total={}
        response['status']=0
        response['totalRows']=1
        response['startRow']=0
        response['endRow']=0
        response['data']=serializer.data
        total['response']=response
        return JSONResponse(total)
    if request.method == 'POST':
        id_grupo = request.POST.get('id_grupo')
        id_tabla = request.POST.get('id_tabla')
        nombre = request.POST.get('nombre')
        tabla = request.POST.get('tabla')
        campo = request.POST.get('campo')
        campo_descripcion = request.POST.get('campo_descripcion')
        tabla=Tabla(id_tabla=id_tabla)
        actividades = Grupo.objects.get(id_grupo=id_grupo)
        actividades.id_tabla=tabla
        actividades.nombre = nombre
        actividades.tabla = tabla
        actividades.campo = campo
        actividades.descripcion = campo_descripcion
        actividades.save()
        serializer = GrupoSerializer(actividades)
        response={}
        total={}
        response['status']=0
        response['totalRows']=1
        response['startRow']=0
        response['endRow']=0
        response['data']=serializer.data
        total['response']=response
        return JSONResponse(total)

@csrf_exempt
def grupo_elimina(request):
    if request.method == 'GET':
        id_grupo = request.GET.get('id_grupo')
        grupo = Grupo.objects.get(id_grupo=id_grupo)
        grupo.delete()
        borro={}
        devuelve={}
        borro['id_grupo']=id_grupo
        devuelve['response']=borro
        return JSONResponse(devuelve)
    if request.method == 'POST':
        id_grupo = request.POST.get('id_grupo')
        grupo = Grupo.objects.get(id_grupo=id_grupo)
        grupo.delete()
        borro={}
        devuelve={}
        borro['id_grupo']=id_grupo
        devuelve['response']=borro
        return JSONResponse(devuelve)