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")
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))
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)
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))
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)
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)
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")
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")
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)
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))
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)
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)
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)
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)
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)
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())
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())
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())