Ejemplo n.º 1
0
def grafo_disponibilidad(request,
                         ano_inicial=None,
                         ano_final=None,
                         producto=None):
    dicc = __disponibilidad__(request, ano_inicial, ano_final, producto)

    if ano_inicial and ano_final:
        axis = range(int(ano_inicial), int(ano_final) + 1)
    elif ano_inicial:
        axis = ano_inicial
    else:
        axis = dicc['anos']

    rows_2_column = []
    #Para los consumos
    for producto in dicc['productos']:
        rows_2_column.append([])

    for row in dicc['consumos']:
        for i in range(len(row['datos'])):
            rows_2_column[i].append(float(row['datos'][i]))

    data = [row for row in rows_2_column]
    legends = [producto.nombre for producto in dicc['productos']]
    message = "Dependencia Alimentaria"
    url_grafo_consumos = grafos.make_graph(data,
                                           legends,
                                           message,
                                           axis,
                                           type=SimpleLineChart,
                                           multiline=True,
                                           return_json=False)

    ##Para las disponibilidades
    rows_2_column = []
    for producto in dicc['productos']:
        rows_2_column.append([])

    for row in dicc['disponibilidades']:
        for i in range(len(row['datos'])):
            rows_2_column[i].append(float(row['datos'][i]))

    data = [row for row in rows_2_column]
    legends = [producto.nombre for producto in dicc['productos']]
    message = "Dependencia Alimentaria"
    url_grafo_disponibilidades = grafos.make_graph(data,
                                                   legends,
                                                   message,
                                                   axis,
                                                   type=SimpleLineChart,
                                                   multiline=True,
                                                   return_json=False)

    json_dicc = {
        'url_consumos': url_grafo_consumos,
        'url_disponibilidades': url_grafo_disponibilidades
    }

    return HttpResponse(simplejson.dumps(json_dicc),
                        mimetype="application/javascript")
Ejemplo n.º 2
0
def grafo_poblacion(request,
                    ano_inicial=None,
                    ano_final=None,
                    departamento=None):
    datos = __poblacion__(request, ano_inicial, ano_final, departamento)
    if not datos['departamental']:
        hombre_urbano = [foo['hombre_urbano'] for foo in datos['datos']]
        mujer_urbano = [foo['mujer_urbano'] for foo in datos['datos']]
        mujer_rural = [foo['mujer_rural'] for foo in datos['datos']]
        hombre_rural = [foo['hombre_rural'] for foo in datos['datos']]

    else:
        hombre_urbano = [foo.hombre_urbano for foo in datos['datos']]
        mujer_urbano = [foo.mujer_urbano for foo in datos['datos']]
        hombre_rural = [foo.hombre_rural for foo in datos['datos']]
        mujer_rural = [foo.mujer_rural for foo in datos['datos']]

    numeros = [hombre_urbano, mujer_urbano, hombre_rural, mujer_rural]
    if ano_inicial and ano_final:
        axis = range(int(ano_inicial), int(ano_final) + 1)
    elif ano_inicial:
        axis = ano_inicial
    else:
        axis = datos['anos']
    leyendas = ['Hombre Urbano', 'Mujer Urbana', 'Hombre Rural', 'Mujer Rural']

    return grafos.make_graph(numeros,
                             leyendas,
                             datos['mensaje'],
                             axis,
                             type=SimpleLineChart,
                             multiline=True,
                             steps=6,
                             size=(600, 500))
Ejemplo n.º 3
0
def grafo_canasta_basica(request, tipo=None, ano_inicial=None, ano_final=None):
    dicc = __canasta_basica__(request, tipo, ano_inicial, ano_final)
    legends = dicc['columnas'] 
    message = 'Grafico de Canasta Basica'
    
    rows_2_column = []
    for sector in dicc['columnas']:
        rows_2_column.append([])

    for row in dicc['datos']:
        for i in range(len(row['datos'])):
            try:
                rows_2_column[i].append(float(row['datos'][i]))
            except:
                rows_2_column[i].append(0)
    
    data = [row for row in rows_2_column]
    
    if ano_inicial and ano_final:
        axis = range(int(ano_inicial), int(ano_final)+1)
    elif ano_inicial:
        axis=ano_inicial
    else:
        axis = dicc['rango']
        #axis = ['Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago',
        #        'Sep', 'Oct', 'Nov', 'Dic']

    return grafos.make_graph(data, legends, message, axis, type=SimpleLineChart, multiline=True)
Ejemplo n.º 4
0
def grafo_poblacion(request, ano_inicial=None, ano_final=None, departamento=None):
    datos = __poblacion__(request, ano_inicial, ano_final, departamento)
    if not datos['departamental']:
        hombre_urbano = [foo['hombre_urbano'] for foo in datos['datos']]
        mujer_urbano = [foo['mujer_urbano'] for foo in datos['datos']]
        mujer_rural = [foo['mujer_rural'] for foo in datos['datos']]
        hombre_rural = [foo['hombre_rural'] for foo in datos['datos']]
        
    else:
        hombre_urbano = [foo.hombre_urbano for foo in datos['datos']]
        mujer_urbano = [foo.mujer_urbano for foo in datos['datos']]
        hombre_rural = [foo.hombre_rural for foo in datos['datos']]
        mujer_rural = [foo.mujer_rural for foo in datos['datos']]

    numeros = [hombre_urbano, mujer_urbano, hombre_rural, mujer_rural]
    if ano_inicial and ano_final:
        axis = range(int(ano_inicial), int(ano_final)+1)
    elif ano_inicial:
        axis=ano_inicial
    else:
        axis = datos['anos']
    leyendas = ['Hombre Urbano', 'Mujer Urbana', 'Hombre Rural', 'Mujer Rural']
    
    return grafos.make_graph(numeros, leyendas, datos['mensaje'],
                             axis, type=SimpleLineChart, multiline=True, steps=6, size=(600,500))
Ejemplo n.º 5
0
def grafo_dependencia_alimentaria(request, ano_inicial=None, ano_final=None):
    dicc = __dependencia_alimentaria__(request, ano_inicial, ano_final)
    rows_2_column = []

    for producto in dicc['productos']:
        rows_2_column.append([])

    for row in dicc['resultados']:
        for i in range(len(row['datos'])):
            rows_2_column[i].append(float(row['datos'][i]))

    data = [row for row in rows_2_column]
    legends = [producto.nombre for producto in dicc['productos']]
    message = "Dependencia Alimentaria"

    if ano_inicial and ano_final:
        axis = range(int(ano_inicial), int(ano_final) + 1)
    elif ano_inicial:
        axis = ano_inicial
    else:
        axis = dicc['anos']

    return grafos.make_graph(data,
                             legends,
                             message,
                             axis,
                             type=SimpleLineChart,
                             multiline=True)
Ejemplo n.º 6
0
def grafo_salario_minimo(request, ano_inicial=None, ano_final=None, sector=None):
    #grafico de lineas
    dicc = __salario_minimo__(request, ano_inicial, ano_final, sector)
    legends = [sector.nombre for sector in dicc['sectores']]
    message = 'Grafico de Salario Minimo'
    
    rows_2_column = []
    for sector in dicc['sectores']:
        rows_2_column.append([])

    for row in dicc['datos']:
        for i in range(len(row['datos'])):
            rows_2_column[i].append(float(row['datos'][i]))
    
    data = [row for row in rows_2_column]
    
    if not dicc['tiene_mes']:
        if ano_inicial and ano_final:
            axis = range(int(ano_inicial), int(ano_final)+1)
        elif ano_inicial:
            axis=ano_inicial
        else:
            axis = dicc['rango']
    else:
        axis = ['Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago',
                'Sep', 'Oct', 'Nov', 'Dic']

    return grafos.make_graph(data, legends, message, axis, type=SimpleLineChart, multiline=True)
Ejemplo n.º 7
0
def grafo_salario_nominal_real(request, ano_inicial=None, ano_final=None):
    dicc = __salario_nominal_real__(request, ano_inicial, ano_final)
    rows_nominal = [[],[],[]]
    rows_real = [[],[],[]]
    
    legends = ['Gobierno Central', 'Salario Nacional', 'Asegurados INSS']

    if not dicc['tiene_mes']:
        if ano_inicial and ano_final:
            axis = range(int(ano_inicial), int(ano_final)+1)
        elif ano_inicial:
            axis=ano_inicial
        else:
            axis = dicc['anos']
    else:
        axis = ['Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago',
                'Sep', 'Oct', 'Nov', 'Dic']

    for row in dicc['datos']:
        for i in range(0,3):
            try:
                rows_nominal[i].append(float(row['datos'][i]))
            except:
                rows_nominal[i].append(0)
            try:
                rows_real[i].append(float(row['datos'][i+3]))
            except:
                rows_real[i].append(0)
    
    data_nominal = [row for row in rows_nominal]
    data_real = [row for row in rows_real]
    
    message = "Salario Nominal"
    try:
        url_nominal = grafos.make_graph(data_nominal, legends, message, 
                                        axis, type=SimpleLineChart, multiline=True, return_json=False)
    except:
        url_nominal=None
    message = "Salario Real"
    try:
        url_real= grafos.make_graph(data_real, legends, message,
                                    axis, type=SimpleLineChart, multiline=True, return_json=False)
    except:
        url_real = None

    json_dicc = {'url_nominal': url_nominal, 'url_real': url_real}
    return HttpResponse(simplejson.dumps(json_dicc), mimetype="application/javascript")
Ejemplo n.º 8
0
def grafo_disponibilidad(request, ano_inicial=None, ano_final=None, producto=None):
    dicc = __disponibilidad__(request, ano_inicial, ano_final, producto)

    if ano_inicial and ano_final:
        axis = range(int(ano_inicial), int(ano_final) + 1)
    elif ano_inicial:
        axis = ano_inicial
    else:
        axis = dicc["anos"]

    rows_2_column = []
    # Para los consumos
    for producto in dicc["productos"]:
        rows_2_column.append([])

    for row in dicc["consumos"]:
        for i in range(len(row["datos"])):
            rows_2_column[i].append(float(row["datos"][i]))

    data = [row for row in rows_2_column]
    legends = [producto.nombre for producto in dicc["productos"]]
    message = "Dependencia Alimentaria"
    url_grafo_consumos = grafos.make_graph(
        data, legends, message, axis, type=SimpleLineChart, multiline=True, return_json=False
    )

    ##Para las disponibilidades
    rows_2_column = []
    for producto in dicc["productos"]:
        rows_2_column.append([])

    for row in dicc["disponibilidades"]:
        for i in range(len(row["datos"])):
            rows_2_column[i].append(float(row["datos"][i]))

    data = [row for row in rows_2_column]
    legends = [producto.nombre for producto in dicc["productos"]]
    message = "Dependencia Alimentaria"
    url_grafo_disponibilidades = grafos.make_graph(
        data, legends, message, axis, type=SimpleLineChart, multiline=True, return_json=False
    )

    json_dicc = {"url_consumos": url_grafo_consumos, "url_disponibilidades": url_grafo_disponibilidades}

    return HttpResponse(simplejson.dumps(json_dicc), mimetype="application/javascript")
Ejemplo n.º 9
0
def grafo_apertura_comercial(request, ano_inicial=None, ano_final=None):
    dicc = __apertura_comercial__(request, ano_inicial, ano_final)
    if ano_inicial and ano_final:
        axis = range(int(ano_inicial), int(ano_final)+1)
    elif ano_inicial:
        axis=ano_inicial
    else:
        axis = dicc['anos']

    data = [float(foo['tasa']) for foo in dicc['resultados']]
    message = 'Apertura Comercial'
    legends = ["tasa apertura comercial"]

    return grafos.make_graph(data, legends, message, axis, type=SimpleLineChart) 
Ejemplo n.º 10
0
def grafo_densidad(request, ano_inicial=None, ano_final=None, departamento=None):
    dicc = __densidad__(request, ano_inicial, ano_final, departamento)
    
    leyenda = ['Densidad']
    numeros = [float(dato['densidad']) for dato in dicc['datos']] 
    if ano_inicial and ano_final:
        axis = range(int(ano_inicial), int(ano_final)+1)
    elif ano_inicial:
        axis=ano_inicial
    else:
        axis = dicc['anos']

    return grafos.make_graph(numeros, leyenda, dicc['mensaje'],
                             axis, type=SimpleLineChart, multiline=False, steps=6, size=(600,500))
Ejemplo n.º 11
0
def grafo_apertura_comercial(request, ano_inicial=None, ano_final=None):
    dicc = __apertura_comercial__(request, ano_inicial, ano_final)
    if ano_inicial and ano_final:
        axis = range(int(ano_inicial), int(ano_final) + 1)
    elif ano_inicial:
        axis = ano_inicial
    else:
        axis = dicc['anos']

    data = [float(foo['tasa']) for foo in dicc['resultados']]
    message = 'Apertura Comercial'
    legends = ["tasa apertura comercial"]

    return grafos.make_graph(data,
                             legends,
                             message,
                             axis,
                             type=SimpleLineChart)
Ejemplo n.º 12
0
def grafo_utilizacion_biologica(request, ano_inicial=None, ano_final=None, departamento=None):
    dicc = __utilizacion_biologica__(request, ano_inicial, ano_final, departamento)
    if not dicc['departamento']:
        enfermedades_diarreicas = [float(foo['enfermedades_diarreicas']) for foo in dicc['datos']]
        enfermedades_respiratorias= [float(foo['enfermedades_respiratorias']) for foo in dicc['datos']]
    else:
        enfermedades_diarreicas = [float(foo.enfermedades_diarreicas) for foo in dicc['datos']]
        enfermedades_respiratorias= [float(foo.enfermedades_respiratorias) for foo in dicc['datos']]

    data = [enfermedades_diarreicas, enfermedades_respiratorias]
    legends = ['Enfermedades Diarreicas', 'Enfermedades Respiratorias']

    message = 'Utilizacion Biologica'

    if ano_inicial and ano_final:
        axis = range(int(ano_inicial), int(ano_final)+1)
    elif ano_inicial:
        axis=ano_inicial
    else:
        axis = dicc['anos']

    return grafos.make_graph(data, legends, message, axis, type=SimpleLineChart, multiline=True)
Ejemplo n.º 13
0
def grafo_utilizacion_biologica(request,
                                ano_inicial=None,
                                ano_final=None,
                                departamento=None):
    dicc = __utilizacion_biologica__(request, ano_inicial, ano_final,
                                     departamento)
    if not dicc['departamento']:
        enfermedades_diarreicas = [
            float(foo['enfermedades_diarreicas']) for foo in dicc['datos']
        ]
        enfermedades_respiratorias = [
            float(foo['enfermedades_respiratorias']) for foo in dicc['datos']
        ]
    else:
        enfermedades_diarreicas = [
            float(foo.enfermedades_diarreicas) for foo in dicc['datos']
        ]
        enfermedades_respiratorias = [
            float(foo.enfermedades_respiratorias) for foo in dicc['datos']
        ]

    data = [enfermedades_diarreicas, enfermedades_respiratorias]
    legends = ['Enfermedades Diarreicas', 'Enfermedades Respiratorias']

    message = 'Utilizacion Biologica'

    if ano_inicial and ano_final:
        axis = range(int(ano_inicial), int(ano_final) + 1)
    elif ano_inicial:
        axis = ano_inicial
    else:
        axis = dicc['anos']

    return grafos.make_graph(data,
                             legends,
                             message,
                             axis,
                             type=SimpleLineChart,
                             multiline=True)
Ejemplo n.º 14
0
def grafo_dependencia_alimentaria(request, ano_inicial=None, ano_final=None):
    dicc = __dependencia_alimentaria__(request, ano_inicial, ano_final)
    rows_2_column = []
    
    for producto in dicc['productos']:
        rows_2_column.append([])

    for row in dicc['resultados']:
        for i in range(len(row['datos'])):
            rows_2_column[i].append(float(row['datos'][i]))

    data = [row for row in rows_2_column]
    legends = [producto.nombre for producto in dicc['productos']]
    message = "Dependencia Alimentaria"

    if ano_inicial and ano_final:
        axis = range(int(ano_inicial), int(ano_final)+1)
    elif ano_inicial:
        axis = ano_inicial
    else:
        axis = dicc['anos']

    return grafos.make_graph(data, legends, message, axis, type=SimpleLineChart, multiline=True)
Ejemplo n.º 15
0
def grafo_disponibilidad(request):
    fecha1=request.session['fecha_inicio']
    fecha2=request.session['fecha_final']
    if request.session['comunidad']:
        com = request.session['comunidad'].id
        if request.session['entrevistado'] !=None:
            gdispo = Encuesta.objects.filter(fecha__range=(fecha1,fecha2)).filter(entrevistado__nombre=request.session['entrevistado'])
        else:
            gdispo = Encuesta.objects.filter(fecha__range=(fecha1,fecha2)).filter(entrevistado__comunidad__id=com)
    elif request.session['municipio']:
        mun = request.session['municipio'].id
        if request.session['entrevistado'] !=None:
            gdispo = Encuesta.objects.filter(fecha__range=(fecha1,fecha2)).filter(entrevistado__nombre=request.session['entrevistado'])
        else:
            gdispo = Encuesta.objects.filter(fecha__range=(fecha1,fecha2)).filter(entrevistado__comunidad__municipio__id=mun)
    elif request.session['departamento']:
        dep = request.session['departamento'].id
        if request.session['entrevistado'] !=None:
            gdispo = Encuesta.objects.filter(fecha__range=(fecha1,fecha2)).filter(entrevistado__nombre=request.session['entrevistado'])
        else:
            gdispo = Encuesta.objects.filter(fecha__range=(fecha1,fecha2)).filter(entrevistado__comunidad__municipio__departamento__id=dep)
    elif request.session['entrevistado']:
        entre = request.session['entrevistado']
        gdispo = Encuesta.objects.filter(fecha__range=(fecha1,fecha2)).filter(entrevistado__nombre=entre)
    else:
        gdispo = Encuesta.objects.all()
        
    casos = gdispo.count()
    #conteo del maiz
    #TODO: sumas de toda la tabla disponibilidad
    total_maiz = 0
    total_frijol = 0
    total_sorgo =0
    prom_maiz = 0
    prom_frijol = 0
    prom_sorgo = 0
    for encuesta in gdispo:
        for disponibilidad in encuesta.disponibilidad.all():
            total_maiz= disponibilidad.maiz_disponible + total_maiz
            total_frijol = disponibilidad.frijol_disponible + total_frijol
            total_sorgo = disponibilidad.sorgo_disponible + total_sorgo
#    total_maiz=gdispo.aggregate(Sum('disponibilidad__maiz_disponible'))['disponibilidad__maiz_disponible__sum']
#    total_frijol=gdispo.aggregate(Sum('disponibilidad__frijol_disponible'))['disponibilidad__frijol_disponible__sum']
#    total_sorgo=gdispo.aggregate(Sum('disponibilidad__sorgo_disponible'))['disponibilidad__sorgo_disponible__sum'] 
    try:
        prom_maiz=float(total_maiz) / casos
    except:
        prom_maiz = 0
    try:
        prom_frijol=float(total_frijol) / casos
    except:
        prom_frijol = 0
    try:
        prom_sorgo=float(total_sorgo) / casos
    except:
        prom_sorgo = 0
    
#    sumatorias = [[prom_maiz],[prom_frijol],[prom_sorgo]]
#    sumatorias = gdispo.aggregate(maiz = Sum('disponibilidad__maiz_disponible'),
#                                           frijol = Sum('disponibilidad__frijol_disponible'),
#                                           sorgo = Sum('disponibilidad__sorgo_disponible')
#                                          )
    #grafo disponibilidad
#    data = [[float(valor)] for valor in sumatorias.values()]
    data = [[prom_maiz],[prom_frijol],[prom_sorgo]]
    legends = ['maiz', 'frijol', 'sorgo']        
#    legends = sumatorias.keys()
    message = "Quintales por familia"
    
    url_disp = grafos.make_graph(data, legends, message, multiline=True, 
                           return_json=False, type=GroupedVerticalBarChart)
    #con formula rara
    total_adulto = gdispo.aggregate(Sum('disponibilidad__adultos_casa'))['disponibilidad__adultos_casa__sum']
    total_ninos = gdispo.aggregate(Sum('disponibilidad__ninos_casa'))['disponibilidad__ninos_casa__sum']
    total_vacas = gdispo.aggregate(Sum('disponibilidad__vacas'))['disponibilidad__vacas__sum']
    total_cerdos = gdispo.aggregate(Sum('disponibilidad__cerdos'))['disponibilidad__cerdos__sum']
    total_gallinas = gdispo.aggregate(Sum('disponibilidad__gallinas'))['disponibilidad__gallinas__sum']
#    total_maiz = gdispo.aggregate(Sum('disponibilidad__maiz_disponible'))['disponibilidad__maiz_disponible__sum']
#    total_frijol = gdispo.aggregate(Sum('disponibilidad__frijol_disponible'))['disponibilidad__frijol_disponible__sum']
#    total_sorgo = gdispo.aggregate(Sum('disponibilidad__sorgo_disponible'))['disponibilidad__sorgo_disponible__sum']
#    prom_maiz = total_maiz/casos
#    prom_frijol = total_frijol/casos
#    prom_sorgo = total_sorgo/casos
    try:
        criterio1 = (float(total_maiz) * 100) / ((float(total_adulto) * 1) + (float(total_ninos) * 0.9))
    except:
        criterio1 = 0
    try:
        criterio2 = (float(total_frijol) * 100) / ((float(total_adulto) * 0.5) + (float(total_ninos) * 0.4))
    except:
        criterio2 = 0
    try:
        criterio3 = ((float(total_maiz) + float(total_sorgo)) * 100) / ((float(total_adulto) * 1) + (float(total_ninos) * 0.9) + (total_cerdos * 2.5)+(total_gallinas * 0.156))
    except:
        criterio3 = 0
    data = [[criterio1], [criterio2], [criterio3]]
    legends = ["Maiz-H", "Frijol-H", "Maiz+Sorgo-H+A"]
    message = "Disponibilidad en dias"

    url_disp_formula = grafos.make_graph(data, legends, message, multiline=True, 
                           return_json=False, type=GroupedVerticalBarChart)

    dicc = {'grafo_disp': url_disp, 'grafo_disp_formula': url_disp_formula, 
            'casos': casos}
    return direct_to_template(request, "encuesta/grafo_disponibilidad.html", dicc)
Ejemplo n.º 16
0
def grafo_nutricion(request):
    fecha1=request.session['fecha_inicio']
    fecha2=request.session['fecha_final']
    if request.session['comunidad']:
        com = request.session['comunidad'].id
        if request.session['entrevistado'] !=None:
            gnutri = Encuesta.objects.filter(fecha__range=(fecha1,fecha2)).filter(entrevistado__nombre=request.session['entrevistado'])
        else:
            gnutri = Encuesta.objects.filter(fecha__range=(fecha1,fecha2)).filter(entrevistado__comunidad__id=com)
    elif request.session['municipio']:
        mun = request.session['municipio'].id
        if request.session['entrevistado'] !=None:
            gnutri = Encuesta.objects.filter(fecha__range=(fecha1,fecha2)).filter(entrevistado__nombre=request.session['entrevistado'])
        else:
            gnutri = Encuesta.objects.filter(fecha__range=(fecha1,fecha2)).filter(entrevistado__comunidad__municipio__id=mun)
    elif request.session['departamento']:
        dep = request.session['departamento'].id
        if request.session['entrevistado'] !=None:
            gnutri = Encuesta.objects.filter(fecha__range=(fecha1,fecha2)).filter(entrevistado__nombre=request.session['entrevistado'])
        else:
            gnutri = Encuesta.objects.filter(fecha__range=(fecha1,fecha2)).filter(entrevistado__comunidad__municipio__departamento__id=dep)
    elif request.session['entrevistado']:
        entre = request.session['entrevistado']
        gnutri = Encuesta.objects.filter(fecha__range=(fecha1,fecha2)).filter(entrevistado__nombre=entre)
    else:
        gnutri = Encuesta.objects.all()
        
    casos = gnutri.count()
#    normal_v = 0
#    desnutrido_v = 0
#    riesgo_v = 0
#    nosabe_v = 0
#    normal_m = 0
#    desnutrido_m = 0
#    riesgo_m = 0
#    nosabe_m = 0
    # solo para niños
    normal_v = gnutri.filter(nutricion__ninos__contains="ninos", nutricion__brazalete__id=1).count()
    desnutrido_v = gnutri.filter(nutricion__ninos__contains="ninos", nutricion__brazalete__id=3).count()
    riesgo_v = gnutri.filter(nutricion__ninos__contains="ninos", nutricion__brazalete__id=4).count()
    nosabe_v = gnutri.filter(nutricion__edad__range=(1,15), nutricion__ninos__contains="ninos", nutricion__brazalete__id=5).count()
    #total de la tabla para niños
    total_v = normal_v + desnutrido_v + riesgo_v + nosabe_v
    #mandando los datos para el porcentaje del grafico niños
    p_normal_v = float(normal_v) / total_v if total_v !=0 else 0 
    p_desnutrido_v = float(desnutrido_v) / total_v if total_v !=0 else 0 
    p_riesgo_v = float(riesgo_v) / total_v if total_v !=0 else 0 
    p_nosabe_v = float(nosabe_v) / total_v if total_v !=0 else 0 
    # solo para niñas
    normal_m = gnutri.filter(nutricion__ninos__contains="ninas", nutricion__brazalete__id=1).count()
    desnutrido_m = gnutri.filter(nutricion__ninos__contains="ninas", nutricion__brazalete__id=3).count()
    riesgo_m = gnutri.filter(nutricion__ninos__contains="ninas", nutricion__brazalete__id=4).count()
    nosabe_m = gnutri.filter(nutricion__edad__range=(1,15), nutricion__ninos__contains="ninas", nutricion__brazalete__id=5).count()
    #total de la tabla para niñas
    total_m = normal_m + desnutrido_m + riesgo_m + nosabe_m 
    #mandando los datos para el porcentaje del grafico niños
    p_normal_m = float(normal_m) / total_m if total_m !=0 else 0 
    p_desnutrido_m = float(desnutrido_m) / total_m if total_m !=0 else 0 
    p_riesgo_m = float(riesgo_m) / total_m if total_m !=0 else 0 
    p_nosabe_m = float(nosabe_m) / total_m if total_m !=0 else 0     
    #mandar los datos al utils solo de niños y niñas
    lista1 = [p_normal_v,p_desnutrido_v,p_riesgo_v,p_nosabe_v]
    lista2 = [p_normal_m,p_desnutrido_m,p_riesgo_m,p_nosabe_m]
    legends1 = ['Normal','Desnutrido','Riesgo desnutricion','No sabe']
    legends2 = ['Normal','Desnutrido','Riesgo desnutricion','No sabe']
    mensa1 = "Grafico Nutrición Niños"
    mensa2 = "Grafico Nutrición Niñas"
    #los link para los grafos :)
    url = grafos.make_graph(lista1,legends1,mensa1,return_json=False)
    url1 = grafos.make_graph(lista2,legends2,mensa2,return_json=False)
    
    return render_to_response("encuesta/grafo_nutricion.html", locals())
Ejemplo n.º 17
0
def grafo_perdida(request):
    fecha1=request.session['fecha_inicio']
    fecha2=request.session['fecha_final']
    if request.session['comunidad']:
        com = request.session['comunidad'].id
        if request.session['entrevistado'] !=None:
            gperdida = Encuesta.objects.filter(fecha__range=(fecha1,fecha2)).filter(entrevistado__nombre=request.session['entrevistado'])
        else:
            gperdida = Encuesta.objects.filter(fecha__range=(fecha1,fecha2)).filter(entrevistado__comunidad__id=com)
    elif request.session['municipio']:
        mun = request.session['municipio'].id
        if request.session['entrevistado'] !=None:
            gperdida = Encuesta.objects.filter(fecha__range=(fecha1,fecha2)).filter(entrevistado__nombre=request.session['entrevistado'])
        else:
            gperdida = Encuesta.objects.filter(fecha__range=(fecha1,fecha2)).filter(entrevistado__comunidad__municipio__id=mun)
    elif request.session['departamento']:
        dep = request.session['departamento'].id
        if request.session['entrevistado'] !=None:
            gperdida = Encuesta.objects.filter(fecha__range=(fecha1,fecha2)).filter(entrevistado__nombre=request.session['entrevistado'])
        else:
            gperdida = Encuesta.objects.filter(fecha__range=(fecha1,fecha2)).filter(entrevistado__comunidad__municipio__departamento__id=dep)
    elif request.session['entrevistado']:
        entre = request.session['entrevistado']
        gperdida = Encuesta.objects.filter(fecha__range=(fecha1,fecha2)).filter(entrevistado__nombre=entre)
    else:
        gperdida = Encuesta.objects.all()
        
    casos = gperdida.count()
    maiz_s = 0
    maiz_c = 0
    frijol_s = 0
    frijol_c = 0
    sorgo_s = 0
    sorgo_c = 0
    razon1 = 0
    razon2 = 0
    razon3 = 0
    razon4 = 0
    razon5 = 0
    razon6 = 0
    razon7 = 0
    for encuesta in gperdida:
        for primera in encuesta.primera.filter(producto__id=2):
            maiz_s = primera.area_sembrada + maiz_s
            maiz_c = primera.area_cosechada + maiz_c
#    for encuesta in gperdida:
        for primera in encuesta.primera.filter(producto__id=3):
            frijol_s = primera.area_sembrada + frijol_s
            frijol_c = primera.area_cosechada + frijol_c
#    for encuesta in gperdida:
        for primera in encuesta.primera.filter(producto__id=4):
            sorgo_s = primera.area_sembrada + sorgo_s
            sorgo_c = primera.area_cosechada + sorgo_c
    #Razones de perdida primera
    razon1 = gperdida.filter(primera__perdida__id=1).count()
    razon2 = gperdida.filter(primera__perdida__id=2).count()
    razon3 = gperdida.filter(primera__perdida__id=3).count()
#    for encuesta in gperdida:
#        for primera in encuesta.primera.filter(perdida__id=1):
#            razon1 = primera.perdida.id + razon1
#    for encuesta in gperdida:
#        for primera in encuesta.primera.filter(perdida__id=2):
#            razon2 = primera.perdida.id + razon2
#    for encuesta in gperdida:
#        for primera in encuesta.primera.filter(perdida__id=3):
#            razon3 = primera.perdida.id + razon3
    #Esto es para postrera
    maiz_s_P = 0
    maiz_c_P = 0
    frijol_s_P = 0
    frijol_c_P = 0
    sorgo_s_P = 0
    sorgo_c_P = 0
    razon1_p = 0
    razon2_p = 0
    razon3_p = 0
    razon4_p = 0
    razon5_p = 0
    razon6_p = 0
    razon7_p = 0
    for encuesta in gperdida:
        for postrera in encuesta.postrera.filter(producto__id=2):
            maiz_s_P = postrera.area_sembrada + maiz_s_P
            maiz_c_P = postrera.area_cosechada + maiz_c_P
#    for encuesta in gperdida:
        for postrera in encuesta.postrera.filter(producto__id=3):
            frijol_s_P = postrera.area_sembrada + frijol_s_P
            frijol_c_P = postrera.area_cosechada + frijol_c_P
#    for encuesta in gperdida:
        for postrera in encuesta.postrera.filter(producto__id=4):
            sorgo_s_P = postrera.area_sembrada + sorgo_s_P
            sorgo_c_P = postrera.area_cosechada + sorgo_c_P
    #Razones de perdidas postrera
    razon1_p = gperdida.filter(postrera__perdida__id=1).count()
    razon2_p = gperdida.filter(postrera__perdida__id=2).count()
    razon3_p = gperdida.filter(postrera__perdida__id=3).count()
#    for encuesta in gperdida:
#        for postrera in encuesta.postrera.filter(perdida__id=1):
#            razon1_p = primera.perdida.id + razon1_p
#    for encuesta in gperdida:
#        for postrera in encuesta.postrera.filter(perdida__id=2):
#            razon2_p = postrera.perdida.id + razon2_p
#    for encuesta in gperdida:
#        for postrera in encuesta.postrera.filter(perdida__id=3):
#            razon3_p = postrera.perdida.id + razon3_p            
    #Esto es para apante
    maiz_s_A=0
    maiz_c_A=0
    frijol_s_A=0
    frijol_c_A=0
    sorgo_s_A=0
    sorgo_c_A=0
    razon1_A=0
    razon2_A=0
    razon3_A=0
    for encuesta in gperdida:
        for apante in encuesta.apante.filter(producto__id=2):
            try:
                maiz_s_A = apante.area_sembrada + maiz_s_A
                maiz_c_A = apante.area_cosechada + maiz_c_A
            except:
                pass
        for apante in encuesta.apante.filter(producto__id=3):
            try:
                frijol_s_A = apante.area_sembrada + frijol_s_A
                frijol_c_A = apante.area_cosechada + frijol_c_A
            except:
                pass
        for apante in encuesta.apante.filter(producto__id=4):
            try:
                sorgo_s_A = apante.area_sembrada + sorgo_s_A
                sorgo_c_A = apante.area_cosechada + sorgo_c_A
            except:
                pass
    #Razones de perdida apante
    razon1_A = gperdida.filter(apante__perdida__id=1).count()
    razon2_A = gperdida.filter(apante__perdida__id=2).count()
    razon3_A = gperdida.filter(apante__perdida__id=3).count()
    #Calculacion de las perdidas de primera 
    resta = maiz_s - maiz_c
    resta_f = frijol_s - frijol_c
    resta_s = sorgo_s - sorgo_c
    #Calculacion de las perdidas de postrera
    resta_P = maiz_s_P - maiz_c_P
    resta_f_P = frijol_s_P - frijol_c_P
    resta_s_P = sorgo_s_P - sorgo_c_P
    #Claculacion de las perdidas de apante
    resta_A = maiz_s_A - maiz_c_A
    resta_f_A = frijol_s_A - frijol_c_A
    resta_s_A = sorgo_s_A - sorgo_c_A
    
    #Calculacion de los porcentajes de primera
    p_c = (float(maiz_c)) *100
    p_p = (float(resta)) *100
    
    p_c_f = (float(frijol_c)) *100
    p_p_f = (float(resta_f)) *100
    
    p_c_s = (float(sorgo_c)) *100
    p_p_s = (float(resta_s)) *100
    
    p_razon1= (float(razon1)) *100
    p_razon2= (float(razon2)) *100
    p_razon3= (float(razon3)) *100
    #Calculacion de los porcentajes de la Postrera
    p_c_P = (float(maiz_c_P)) *100
    p_p_P = (float(resta_P)) *100
    
    p_c_f_P = (float(frijol_c_P)) *100
    p_p_f_P = (float(resta_f_P)) *100
    
    p_c_s_P = (float(sorgo_c_P)) *100
    p_p_s_P = (float(resta_s_P)) *100
    
    p_razon1_p= (float(razon1_p)) *100
    p_razon2_p= (float(razon2_p)) *100
    p_razon3_p= (float(razon3_p)) *100
    #Calculacion de los porcentajes de Apante
    p_c_A = (float(maiz_c_A)) *100
    p_p_A = (float(resta_A)) *100
    
    p_c_f_A = (float(frijol_c_A)) *100
    p_p_f_A = (float(resta_f_A)) *100
    
    p_c_s_A = (float(sorgo_c_A)) * 100
    p_p_s_A = (float(resta_s_A)) *100
    
    p_razon1_A = (float(razon1_A)) *100
    p_razon2_A = (float(razon2_A)) *100
    p_razon3_A = (float(razon3_A)) *100
    #envios de los datos a utils solo primera
    lista = [p_c,p_p]
    lista1 = [p_c_f,p_p_f]
    lista2 = [p_c_s,p_p_s]
    lista3 = [p_razon1,p_razon2,p_razon3]
    legends = ['Area Cosechada','Area Perdida']
    legends1 = ['Area Cosechada','Area Perdida']
    legends2 = ['Area Cosechada','Area Perdida']
    legends3 = ['Sequia','Mala semilla','plaga']
    mensa = "Grafico Maiz"
    mensa1 = "Grafico Frijol"
    mensa2 = "Grafico Sorgo"
    mensa3 = "Grafico razones de perdida"
    #envios de los datos a utils solo para postrera
    lista_P = [p_c_P,p_p_P]
    lista1_P = [p_c_f_P,p_p_f_P]
    lista2_P = [p_c_s_P,p_p_s_P]
    lista3_P = [p_razon1_p,p_razon2_p,p_razon3_p]
    legends_P = ['Area Cosechada','Area Perdida']
    legends1_P = ['Area Cosechada','Area Perdida']
    legends2_P = ['Area Cosechada','Area Perdida']
    legends3_P = ['Sequia','Mala semilla','plaga']
    mensa_P = "Grafico Maiz"
    mensa1_P = "Grafico Frijol"
    mensa2_P = "Grafico Sorgo"
    mensa3_P = "Grafico razones de perdida"
    #envios de los datos a utils solo para apante
    lista_A = [p_c_A,p_p_A]
    lista1_A = [p_c_f_A,p_p_f_A]
    lista2_A = [p_c_s_A,p_p_s_A]
    lista3_A = [p_razon1_A,p_razon2_A,p_razon3_A]
    legends_A = ['Area Cosechada','Area Perdida']
    legends1_A = ['Area Cosechada','Area Perdida']
    legends2_A = ['Area Cosechada','Area Perdida']
    legends3_A = ['Sequia','Mala semilla','plaga']
    mensa_A = "Grafico Maiz"
    mensa1_A = "Grafico Frijol"
    mensa2_A = "Grafico Sorgo"
    mensa3_A = "Grafico razones de perdida"
    #Envios de las url solo para primera
    url = grafos.make_graph(lista, legends, mensa, return_json=False)
    url1 = grafos.make_graph(lista1, legends1, mensa1, return_json=False)
    url2 = grafos.make_graph(lista2, legends2, mensa2, return_json=False)
    url6 = grafos.make_graph(lista3, legends3, mensa3, return_json=False)
    #Envios de las url solo para postrera
    url3 = grafos.make_graph(lista_P, legends_P, mensa_P, return_json=False)
    url4 = grafos.make_graph(lista1_P, legends1_P, mensa1_P, return_json=False)
    url5 = grafos.make_graph(lista2_P, legends2_P, mensa2_P, return_json=False)
    url7 = grafos.make_graph(lista3_P, legends3_P, mensa3_P, return_json=False)
    #Envios de las url para apante
    url8 = grafos.make_graph(lista_A,legends_A,mensa_A, return_json=False)
    url9 = grafos.make_graph(lista1_A,legends1_A,mensa1_A,return_json=False)
    url10 = grafos.make_graph(lista2_A,legends2_A,mensa2_A,return_json=False)
    url11 = grafos.make_graph(lista3_A,legends3_A,mensa3_A, return_json=False)
    
    
    return render_to_response("encuesta/grafos.html", locals())
Ejemplo n.º 18
0
def grafo_perdida(request):
    fecha1 = request.session["fecha_inicio"]
    fecha2 = request.session["fecha_final"]
    if request.session["comunidad"]:
        com = request.session["comunidad"].id
        if request.session["entrevistado"] != None:
            gperdida = Encuesta.objects.filter(fecha__range=(fecha1, fecha2)).filter(
                entrevistado__nombre=request.session["entrevistado"]
            )
        else:
            gperdida = Encuesta.objects.filter(fecha__range=(fecha1, fecha2)).filter(entrevistado__comunidad__id=com)
    elif request.session["municipio"]:
        mun = request.session["municipio"].id
        if request.session["entrevistado"] != None:
            gperdida = Encuesta.objects.filter(fecha__range=(fecha1, fecha2)).filter(
                entrevistado__nombre=request.session["entrevistado"]
            )
        else:
            gperdida = Encuesta.objects.filter(fecha__range=(fecha1, fecha2)).filter(
                entrevistado__comunidad__municipio__id=mun
            )
    elif request.session["departamento"]:
        dep = request.session["departamento"].id
        if request.session["entrevistado"] != None:
            gperdida = Encuesta.objects.filter(fecha__range=(fecha1, fecha2)).filter(
                entrevistado__nombre=request.session["entrevistado"]
            )
        else:
            gperdida = Encuesta.objects.filter(fecha__range=(fecha1, fecha2)).filter(
                entrevistado__comunidad__municipio__departamento__id=dep
            )
    elif request.session["entrevistado"]:
        entre = request.session["entrevistado"]
        gperdida = Encuesta.objects.filter(fecha__range=(fecha1, fecha2)).filter(entrevistado__nombre=entre)
    else:
        gperdida = Encuesta.objects.all()

    casos = gperdida.count()
    maiz_s = 0
    maiz_c = 0
    frijol_s = 0
    frijol_c = 0
    sorgo_s = 0
    sorgo_c = 0
    razon1 = 0
    razon2 = 0
    razon3 = 0
    razon4 = 0
    razon5 = 0
    razon6 = 0
    razon7 = 0
    for encuesta in gperdida:
        for primera in encuesta.primera.filter(producto__id=2):
            maiz_s = primera.area_sembrada + maiz_s
            maiz_c = primera.area_cosechada + maiz_c
    for encuesta in gperdida:
        for primera in encuesta.primera.filter(producto__id=3):
            frijol_s = primera.area_sembrada + frijol_s
            frijol_c = primera.area_cosechada + frijol_c
    for encuesta in gperdida:
        for primera in encuesta.primera.filter(producto__id=4):
            sorgo_s = primera.area_sembrada + sorgo_s
            sorgo_c = primera.area_cosechada + sorgo_c
    # Razones de perdida primera
    for encuesta in gperdida:
        for primera in encuesta.primera.filter(perdida__id=1):
            razon1 = primera.perdida.id + razon1
    for encuesta in gperdida:
        for primera in encuesta.primera.filter(perdida__id=2):
            razon2 = primera.perdida.id + razon2
    for encuesta in gperdida:
        for primera in encuesta.primera.filter(perdida__id=3):
            razon3 = primera.perdida.id + razon3
    # Esto es para postrera
    maiz_s_P = 0
    maiz_c_P = 0
    frijol_s_P = 0
    frijol_c_P = 0
    sorgo_s_P = 0
    sorgo_c_P = 0
    razon1_p = 0
    razon2_p = 0
    razon3_p = 0
    razon4_p = 0
    razon5_p = 0
    razon6_p = 0
    razon7_p = 0
    for encuesta in gperdida:
        for postrera in encuesta.postrera.filter(producto__id=2):
            maiz_s_P = postrera.area_sembrada + maiz_s_P
            maiz_c_P = postrera.area_cosechada + maiz_c_P
    for encuesta in gperdida:
        for postrera in encuesta.postrera.filter(producto__id=3):
            frijol_s_P = postrera.area_sembrada + frijol_s_P
            frijol_c_P = postrera.area_cosechada + frijol_c_P
    for encuesta in gperdida:
        for postrera in encuesta.postrera.filter(producto__id=4):
            sorgo_s_P = postrera.area_sembrada + sorgo_s_P
            sorgo_c_P = postrera.area_cosechada + sorgo_c_P
    # Razones de perdidas postrera
    for encuesta in gperdida:
        for postrera in encuesta.postrera.filter(perdida__id=1):
            razon1_p = primera.perdida.id + razon1_p
    for encuesta in gperdida:
        for postrera in encuesta.postrera.filter(perdida__id=2):
            razon2_p = postrera.perdida.id + razon2_p
    for encuesta in gperdida:
        for postrera in encuesta.postrera.filter(perdida__id=3):
            razon3_p = postrera.perdida.id + razon3_p

    # Calculacion de las perdidas de primera
    resta = maiz_s - maiz_c
    resta_f = frijol_s - frijol_c
    resta_s = sorgo_s - sorgo_c
    # Calculacion de las perdidas de postrera
    resta_P = maiz_s_P - maiz_c_P
    resta_f_P = frijol_s_P - frijol_c_P
    resta_s_P = sorgo_s_P - sorgo_c_P
    # Calculacion de los porcentajes de primera
    p_c = (float(maiz_c)) * 100
    p_p = (float(resta)) * 100

    p_c_f = (float(frijol_c)) * 100
    p_p_f = (float(resta_f)) * 100

    p_c_s = (float(sorgo_c)) * 100
    p_p_s = (float(resta_s)) * 100

    p_razon1 = (float(razon1)) * 100
    p_razon2 = (float(razon2)) * 100
    p_razon3 = (float(razon3)) * 100
    # Calculacion de los porcentajes de la Postrera
    p_c_P = (float(maiz_c_P)) * 100
    p_p_P = (float(resta_P)) * 100

    p_c_f_P = (float(frijol_c_P)) * 100
    p_p_f_P = (float(resta_f_P)) * 100

    p_c_s_P = (float(sorgo_c_P)) * 100
    p_p_s_P = (float(resta_s_P)) * 100

    p_razon1_p = (float(razon1_p)) * 100
    p_razon2_p = (float(razon2_p)) * 100
    p_razon3_p = (float(razon3_p)) * 100
    # envios de los datos a utils solo primera
    lista = [p_c, p_p]
    lista1 = [p_c_f, p_p_f]
    lista2 = [p_c_s, p_p_s]
    lista3 = [p_razon1, p_razon2, p_razon3]
    legends = ["Area Cosechada", "Area Perdida"]
    legends1 = ["Area Cosechada", "Area Perdida"]
    legends2 = ["Area Cosechada", "Area Perdida"]
    legends3 = ["Sequia", "Mala semilla", "plaga"]
    mensa = "Grafico Maiz"
    mensa1 = "Grafico Frijol"
    mensa2 = "Grafico Sorgo"
    mensa3 = "Grafico razones de perdida"
    # envios de los datos a utils solo para postrera
    lista_P = [p_c_P, p_p_P]
    lista1_P = [p_c_f_P, p_p_f_P]
    lista2_P = [p_c_s_P, p_p_s_P]
    lista3_P = [p_razon1_p, p_razon2_p, p_razon3_p]
    legends_P = ["Area Cosechada", "Area Perdida"]
    legends1_P = ["Area Cosechada", "Area Perdida"]
    legends2_P = ["Area Cosechada", "Area Perdida"]
    legends3_P = ["Sequia", "Mala semilla", "plaga"]
    mensa_P = "Grafico Maiz"
    mensa1_P = "Grafico Frijol"
    mensa2_P = "Grafico Sorgo"
    mensa3_P = "Grafico razones de perdida"
    # Envios de las url solo para primera
    url = grafos.make_graph(lista, legends, mensa, return_json=False, size=GRAFO_SIZE)
    url1 = grafos.make_graph(lista1, legends1, mensa1, return_json=False, size=GRAFO_SIZE)
    url2 = grafos.make_graph(lista2, legends2, mensa2, return_json=False, size=GRAFO_SIZE)
    url6 = grafos.make_graph(lista3, legends3, mensa3, return_json=False, size=GRAFO_SIZE)
    # Envios de las url solo para postrera
    url3 = grafos.make_graph(lista_P, legends_P, mensa_P, return_json=False, size=GRAFO_SIZE)
    url4 = grafos.make_graph(lista1_P, legends1_P, mensa1_P, return_json=False, size=GRAFO_SIZE)
    url5 = grafos.make_graph(lista2_P, legends2_P, mensa2_P, return_json=False, size=GRAFO_SIZE)
    url7 = grafos.make_graph(lista3_P, legends3_P, mensa3_P, return_json=False, size=GRAFO_SIZE)

    return render_to_response("encuesta/grafos.html", locals())