# Create your views here.
from django.conf import settings
import logging
logger_saves = logging.getLogger('logview.usersaves')
import os
import sys
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 consola.models import Actividad,Conexion,Modulo,Transaccion,Workflow,Workflow_Transaccion,Tabla,Campo_Valor,Grupo,Campo_Cuenta,Concepto
from consola.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)


@csrf_exempt
def properties_list(request):
    logger_saves.info("/*********************************************************************************/")
    logger_saves.info("Ejecuta Ingreso a Propiedades")
    logger_saves.info("Ruta: "+getattr(settings, 'RUTA_CONFIG', 'default_value'))
    if request.method == 'GET' or request.method == 'POST':
       nombre="nada"
       if request.method == 'GET':
        root = request.GET.get('root')
       else:
        root = request.POST.get('root')
       if root == "0":
        ruta=getattr(settings, 'RUTA_CONFIG', 'default_value')
        config=open(ruta+"app-gwt.properties",'r')
        objeto=[]
        data={}
        posts=[]
        contenido=""
        nombre=""
        linea=config.readline()
        data['status'] = 0
        while linea!="":
            contenido1={}
            if linea.find("#") >= 0 or linea.find("---") >= 0:
                linea=config.readline()
            else:
                if(linea.find("name") >= 0):
                    contenido=linea
                    dato=contenido.split(":")
                    datosinsalto=dato[1]
                    datosinsalto=datosinsalto.strip('\n')
                    datosinsalto=datosinsalto.strip('"')
                    datosinsalto=datosinsalto.split('"')
                    nombre=datosinsalto[1]
                    contenido1["name"] = nombre
                    posts.append(contenido1)
            linea=config.readline()
        response={}
        data['data']=posts
        response['response']=data
        return JSONResponse(response)
       if root == "1":
        if request.method == 'GET':
            name = request.GET.get('name')
        else:
            name = request.POST.get('name')
        ruta=getattr(settings, 'RUTA_CONFIG', 'default_value')
        config=open(ruta+"app-gwt.properties",'r')
        objeto=[]
        data={}
        posts=[]
        contenido=""
        nombre=""
        linea=config.readline()
        data['status'] = 0
        while linea!="":
            contenido1={} 
            if linea.find("#") >= 0 or linea.find("---") >= 0:
                linea=config.readline()
            else:
                if(linea.find("name") >= 0):
                    contenido=linea
                    dato=contenido.split(":")
                    datosinsalto=dato[1]
                    datosinsalto=datosinsalto.strip('\n')
                    datosinsalto=datosinsalto.strip('"')
                    datosinsalto=datosinsalto.split('"')
                    nombre=datosinsalto[1]
                    if nombre == name:  
                        linea=config.readline() 
                        contenido=linea
                        dato=contenido.split(":")
                        if len(dato)==3:
                            url=dato[2].strip('\n')
                            url=url.strip('"')
                        #---Inclusion de codigo para leer puerto
                        if len(dato)==4: 
                            url=dato[3].strip('\n')
                            url=url.split('"')
                            url=dato[2]+":"+url[0]
                        datosinsalto=dato[1]
                        datosinsalto=datosinsalto.strip('\n')
                        datosinsalto=datosinsalto.strip('"')
                        if(linea.find('"') >= 0):
                            datosinsalto=datosinsalto.split('"')
                            #---Inclusion de codigo para leer puerto
                            if len(dato)==3 or len(dato)==4:
                                valor=datosinsalto[1]+":"+url
                            else:
                                valor=datosinsalto[1]
                        else:
                            #---Inclusion de codigo para leer puerto
                            if len(dato)==3 or len(dato)==4:
                                valor=datosinsalto[1]+":"+url
                            else:
                                valor=datosinsalto[1]
                        linea=config.readline()
                        contenido=linea
                        dato=contenido.split(":")
                        datosinsalto=dato[1]
                        datosinsalto=datosinsalto.strip('\n')
                        datosinsalto=datosinsalto.strip('"')
                        datosinsalto=datosinsalto.split('"')
                        desc=datosinsalto[1]
                        linea=config.readline()
                        contenido=linea
                        dato=contenido.split(":")
                        datosinsalto=dato[1]
                        datosinsalto=datosinsalto.strip('\n')
                        datosinsalto=datosinsalto.strip('"')
                        datosinsalto=datosinsalto.split('"')
                        label=datosinsalto[1]
                        logger_saves.info("/*********************************************************************************/")
                        logger_saves.info("Valor de la propiedad")
                        logger_saves.info(valor)
                        valor=valor.split('"')
                        valor=valor[0]
                        logger_saves.info("/*********************************************************************************/")
                        logger_saves.info("Valor Corregido")
                        logger_saves.info(valor)
                        contenido1["name"] = nombre
                        contenido1["value"] = valor
                        contenido1["desc"] = desc
                        contenido1["label"] = label
                        posts.append(contenido1)
            linea=config.readline()
        response={}
        data['data']=posts
        response['response']=data
        return JSONResponse(response)
       ruta=getattr(settings, 'RUTA_CONFIG', 'default_value')
       config=open(ruta+"app-gwt.properties",'r')
       objeto=[]
       data={}
       posts=[]
       contenido=""
       nombre=""
       valor=""
       desc=""
       label=""
       linea=config.readline()
       data['status'] = 0
       while linea!="":
        contenido1={} 
        if linea.find("#") >= 0 or linea.find("---") >= 0:
            linea=config.readline()
        else:
            if(linea.find("name") >= 0):
                contenido=linea
                dato=contenido.split(":")
                datosinsalto=dato[1]
                datosinsalto=datosinsalto.strip('\n')
                datosinsalto=datosinsalto.strip('"')
                datosinsalto=datosinsalto.split('"')
                nombre=datosinsalto[1] 
            elif(linea.find("value") >= 0):
                contenido=linea
                dato=contenido.split(":")
                if len(dato)==3:
                    url=dato[2].strip('\n')
                    url=url.strip('"')
                #---Inclusion de codigo para leer puerto
                if len(dato)==4: 
                    url=dato[3].strip('\n')
                    url=url.split('"')
                    url=dato[2]+":"+url[0]
                datosinsalto=dato[1]
                datosinsalto=datosinsalto.strip('\n')
                datosinsalto=datosinsalto.strip('"')
                if(linea.find('"') >= 0):
                    datosinsalto=datosinsalto.split('"')
                    #---Inclusion de codigo para leer puerto
                    if len(dato)==3 or len(dato)==4:
                        valor=datosinsalto[1]+":"+url
                    else:
                        valor=datosinsalto[1]
                else:
                    #---Inclusion de codigo para leer puerto
                    if len(dato)==3 or len(dato)==4:
                        valor=datosinsalto[1]+":"+url
                    else:
                        valor=datosinsalto[1]
            elif(linea.find("desc") >= 0):
                contenido=linea
                dato=contenido.split(":")
                datosinsalto=dato[1]
                datosinsalto=datosinsalto.strip('\n')
                datosinsalto=datosinsalto.strip('"')
                datosinsalto=datosinsalto.split('"')
                desc=datosinsalto[1]
            elif(linea.find("label") >= 0):
                contenido=linea
                datosinsalto=dato[1]
                datosinsalto=datosinsalto.strip('\n')
                datosinsalto=datosinsalto.strip('"')
                datosinsalto=datosinsalto.split('"')
                label=datosinsalto[1]
                logger_saves.info("/*********************************************************************************/")
                logger_saves.info("Valor de la propiedad")
                logger_saves.info(valor)
                valor=valor.split('"')
                valor=valor[0]
                logger_saves.info("/*********************************************************************************/")
                logger_saves.info("Valor Corregido")
                logger_saves.info(valor)
                contenido1["name"] = nombre
                contenido1["value"] = valor
                contenido1["desc"] = desc
                contenido1["label"] = label
                posts.append(contenido1)
        linea=config.readline()
        response={}
       data['data']=posts
       response['response']=data
       return JSONResponse(response)
