# 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 constante.models import Constante
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 constante_list(request):
	if request.method == 'GET':
		constantes = sorted(Constante.objects.all(), key=lambda a: a.nombre_constante)
		contenedor=[]
		fila=1
		for constante in constantes:
			info={}
			info["id_constante"] = constante.id_constante
			info["nombre_constante"] = constante.nombre_constante
			info["valor_constante"] = constante.valor_constante
			info["rownum_"] = fila
			contenedor.append(info)
			fila+=1
		response={}
		total={}
		response['status']=0
		response['totalRows']=len(constantes)
		response['startRow']=0
		response['endRow']=len(constantes)
		response['data']=contenedor
		total['response']=response
		return JSONResponse(total)
	if request.method == 'POST':
		constantes = sorted(Constante.objects.all(), key=lambda a: a.nombre_constante)
		contenedor=[]
		fila=1
		for constante in constantes:
			info={}
			info["id_constante"] = constante.id_constante
			info["nombre_constante"] = constante.nombre_constante
			info["valor_constante"] = constante.valor_constante
			info["rownum_"] = fila
			contenedor.append(info)
			fila+=1
		response={}
		total={}
		response['status']=0
		response['totalRows']=len(constantes)
		response['startRow']=0
		response['endRow']=len(constantes)
		response['data']=contenedor
		total['response']=response
		return JSONResponse(total)
#---Metodo para Modelo
@csrf_exempt
def constante_ingresa(request):
	if request.method == 'GET':
		nombre_constante=request.GET.get('nombre_constante')
		valor_constante=request.GET.get('valor_constante')
		contenedor=[]
		a=Constante(nombre_constante=nombre_constante,valor_constante=valor_constante)
		a.save() 
		actividades = Constante.objects.get(id_constante=a.id_constante)
		info={}
		info["id_constante"] = actividades.id_constante
		info["nombre_constante"] = actividades.nombre_constante
		info["valor_constante"] = actividades.valor_constante
		contenedor.append(info)
		response={}
		total={}
		response['status']=0
		response['totalRows']=1
		response['startRow']=0
		response['endRow']=0
		response['data']=contenedor
		total['response']=response
		return JSONResponse(total)
	if request.method == 'POST':
		nombre_constante=request.POST.get('nombre_constante')
		valor_constante=request.POST.get('valor_constante')
		contenedor=[]
		a=Constante(nombre_constante=nombre_constante,valor_constante=valor_constante)
		a.save() 
		actividades = Constante.objects.get(id_constante=a.id_constante)
		info={}
		info["id_constante"] = actividades.id_constante
		info["nombre_constante"] = actividades.nombre_constante
		info["valor_constante"] = actividades.valor_constante
		contenedor.append(info)
		response={}
		total={}
		response['status']=0
		response['totalRows']=1
		response['startRow']=0
		response['endRow']=0
		response['data']=contenedor
		total['response']=response
		return JSONResponse(total)
#---Metodo para Modelo
@csrf_exempt
def constante_actualiza(request):
	if request.method == 'GET':
		id_constante=request.GET.get('id_constante')
		nombre_constante=request.GET.get('nombre_constante')
		valor_constante=request.GET.get('valor_constante')
		actividades = Constante.objects.get(id_constante=id_constante)
		actividades.nombre_constante=nombre_constante
		actividades.valor_constante=valor_constante
		actividades.save()
		contenedor=[]
		info={}
		info["id_constante"] = actividades.id_constante
		info["nombre_constante"] = actividades.nombre_constante
		info["valor_constante"] = actividades.valor_constante
		contenedor.append(info)
		response={}
		total={}
		response['status']=0
		response['totalRows']=1
		response['startRow']=0
		response['endRow']=0
		response['data']=contenedor
		total['response']=response
		return JSONResponse(total)
	if request.method == 'POST':
		id_constante=request.POST.get('id_constante')
		nombre_constante=request.POST.get('nombre_constante')
		valor_constante=request.POST.get('valor_constante')
		actividades = Constante.objects.get(id_constante=id_constante)
		actividades.nombre_constante=nombre_constante
		actividades.valor_constante=valor_constante
		actividades.save()
		contenedor=[]
		info={}
		info["nombre_constante"] = actividades.nombre_constante
		info["valor_constante"] = actividades.valor_constante
		contenedor.append(info)
		response={}
		total={}
		response['status']=0
		response['totalRows']=1
		response['startRow']=0
		response['endRow']=0
		response['data']=contenedor
		total['response']=response
		return JSONResponse(total)
#---Metodo para Modelo
@csrf_exempt
def constante_elimina(request):
	if request.method == 'GET':
		id_constante=request.GET.get('id_constante')
		work = Constante.objects.get(id_constante=id_constante)
		work.delete()
		borro={}
		devuelve={}
		borro['id_constante']=id_formula
		devuelve['response']=borro
		return JSONResponse(devuelve)
	if request.method == 'POST':
		id_constante=request.POST.get('id_constante')
		work = Constante.objects.get(id_constante=id_constante)
		work.delete()
		borro={}
		devuelve={}
		borro['id_constante']=id_constante
		devuelve['response']=borro
		return JSONResponse(devuelve)