def como_afecta(request, tipo): titulo = u'¿Como afecta la VBG a las mujeres, comunidad y la familia?' resultados = _query_set_filtrado(request, tipo) tabla = {} opciones = ComoAfecta.objects.all() for op in opciones: tabla[op] = [] for key, grupo in resultados.items(): lista = [] [lista.append(encuesta.id) for encuesta in grupo] for op in opciones: tabla[op].append(EfectoVBG.objects.filter(content_type=get_content_type(tipo), object_id__in=lista, como_afecta=op).count()) checkvalue = lambda x: sum(x) for key, value in tabla.items(): if checkvalue(value) < 10: del tabla[key] totales = get_total(resultados) tabla = get_list_with_total(tabla, totales) return render_to_response("monitoreo/generica_1.html", RequestContext(request, locals()))
def hablan_de(request, tipo='mujeres'): titulo = "¿Cuando alguien le habla de VBG usted cree que le estan hablando de?" resultados = _query_set_filtrado(request, tipo=tipo) tabla = {} opciones = HablanDe.objects.all() for op in opciones: tabla[op] = [] for key, grupo in resultados.items(): lista = [] [lista.append(encuesta.id) for encuesta in grupo] for opcion in opciones: query = ConceptoViolencia.objects.filter(content_type=get_content_type(tipo), object_id__in=lista, hablande=opcion, respuesta='si') tabla[opcion].append(query.count()) checkvalue = lambda x: sum(x) for key, value in tabla.items(): if checkvalue(value) < 15: del tabla[key] totales = get_total(resultados) tabla = get_list_with_total(tabla, totales) return render_to_response("monitoreo/generica_1.html", RequestContext(request, locals()))
def donde_buscar_ayuda(request, tipo): titulo = '¿Donde debe buscar ayuda una mujer que vive VBG?' resultados = _query_set_filtrado(request, tipo) tabla = {} opciones = BuscarAyuda.objects.all() for op in opciones: tabla[op] = [] for key, grupo in resultados.items(): lista = [] [lista.append(encuesta.id) for encuesta in grupo] for op in opciones: tabla[op].append(AccionVBG.objects.filter(content_type=get_content_type(tipo), object_id__in=lista, donde_buscar=op).count()) checkvalue = lambda x: sum(x) for key, value in tabla.items(): if checkvalue(value) < 10: del tabla[key] totales = get_total(resultados) tabla = get_list_with_total(tabla, totales) return render_to_response("monitoreo/generica_1.html", RequestContext(request, locals()))
def frecuencia(request, tipo): from trocaire.encuesta.models import FRECUENCIA2, FRECUENCIA resultados = _query_set_filtrado(request, tipo) tabla = {} if tipo == 'mujeres': opciones = FRECUENCIA titulo = u'¿Con que frecuencia ha vivido VBG este último año?' elif tipo == 'hombres': titulo = u'¿Con que frecuencia ha ejercido VBG este último año?' opciones = FRECUENCIA2 for op in opciones: tabla[op[1]] = [] for key, grupo in resultados.items(): lista = [] [lista.append(encuesta.id) for encuesta in grupo] for op in opciones: if tipo == 'mujeres': tabla[op[1]].append(PrevalenciaVBG.objects.filter(content_type=get_content_type(tipo), object_id__in=lista, frecuencia=op[0]).count()) elif tipo == 'hombres': tabla[op[1]].append(PrevalenciaVBGHombre.objects.filter(content_type=get_content_type(tipo), object_id__in=lista, frecuencia=op[0]).count()) totales = get_total(resultados) tabla = get_list_with_total(tabla, totales) return render_to_response("monitoreo/generica_1.html", RequestContext(request, locals()))
def que_hace_ante_vbg(request, tipo): """Que hace usted cuando existe una situación de VBG""" resultados = _query_set_filtrado(request, tipo) tabla = {} campos = [field for field in AccionVBG._meta.fields if field.get_internal_type() == 'IntegerField' and not field.name == 'object_id'] opciones = [1, 2, 3, 4, 5, 6] for field in campos: tabla[field.verbose_name] = {} for key, grupo in resultados.items(): lista = [] [lista.append(encuesta.id) for encuesta in grupo] tabla[field.verbose_name][key] = {} for op in opciones: tabla[field.verbose_name][key][op] = AccionVBG.objects.filter(content_type=get_content_type(tipo), object_id__in=lista, ** {field.name: op-1}).count() totales = get_total(resultados) #---------------Inicia transformacion para grafico ------------------------ grafico = {} for key, value in tabla.items(): grafico[key] = {} for i in range(1, 5): grafico[key][i] = obtener_indice(tabla[key][i]) return render_to_response("monitoreo/que_hace_ante_vbg.html", RequestContext(request, locals()))
def mencione_leyes(request, tipo): titulo = u'Mencione la ley que penaliza la VBG contra las mujeres' resultados = _query_set_filtrado(request, tipo) tabla = {} totales = get_total(resultados) for key, grupo in resultados.items(): lista = [] [lista.append(encuesta.id) for encuesta in grupo] tabla[key] = list(set(ConocimientoLey.objects.filter(content_type=get_content_type(tipo), object_id__in=lista).values_list('mencione'))) return render_to_response("monitoreo/lista_leyes.html", RequestContext(request, locals()))
def ayuda_mujer_violencia(request, tipo): titulo = u'¿En el último año ha ayudado usted a alguna mujer que ha vivido VBG?' resultados = _query_set_filtrado(request, tipo) tabla = {} for op in ['si', 'no']: tabla[op.title()] = [] for key, grupo in resultados.items(): lista = [] [lista.append(encuesta.id) for encuesta in grupo] for op in ['si', 'no']: tabla[op.title()].append(AccionVBG.objects.filter(content_type=get_content_type(tipo), object_id__in=lista, ha_ayudado=op).count()) totales = get_total(resultados) tabla = get_list_with_total(tabla, totales) return render_to_response("monitoreo/generica_pie.html", RequestContext(request, locals()))
def lista_generica(request, tipo, **params): titulo = params['titulo'] resultados = _query_set_filtrado(request, tipo) modelo = get_model('encuesta', params['modelo']) tabla = {} totales = get_total(resultados) options = params.get('options', None) for key, grupo in resultados.items(): if options: tabla[key] = modelo.objects.filter(content_type=get_content_type(tipo), object_id__in=grupo.values_list('id', flat=True), **{params['field']:options}).distinct().values_list(params['field_values']) else: tabla[key] = modelo.objects.filter(content_type=get_content_type(tipo), object_id__in=grupo.values_list('id', flat=True)).distinct().values_list(params['field']) return render_to_response("monitoreo/lista_leyes.html", RequestContext(request, locals()))
def mujeres_vbg(request, tipo): titulo = '¿Conoce usted si en su comunidad existen mujeres que han vivido VBG?' resultados = _query_set_filtrado(request, tipo) tabla = {} for op in ['si', 'no']: tabla[op.title()] = [] for key, grupo in resultados.items(): lista = [] [lista.append(encuesta.id) for encuesta in grupo] for op in ['si', 'no']: tabla[op.title()].append(SituacionVBG.objects.filter(content_type=get_content_type(tipo), object_id__in=lista, conoce_mujeres=op).count()) totales = get_total(resultados) tabla = get_list_with_total(tabla, totales) return render_to_response("monitoreo/generica_pie.html", RequestContext(request, locals()))
def ha_ejercido_vbg(request, tipo): titulo = u'Considera usted que ejercido VBG contra una mujer el ultimo año?' resultados = _query_set_filtrado(request, 'hombres') tabla = {} for op in ['si', 'no']: tabla[op.title()] = [] for key, grupo in resultados.items(): lista = [] [lista.append(encuesta.id) for encuesta in grupo] for op in ['si', 'no']: tabla[op.title()].append(PrevalenciaVBGHombre.objects.filter(content_type=get_content_type('hombres'), object_id__in=lista, ha_vivido_vbg=op).count()) totales = get_total(resultados) tabla = get_list_with_total(tabla, totales) return render_to_response("monitoreo/generica_pie.html", RequestContext(request, locals()))
def mujeres_representan(request, tipo): titulo = u'¿En su comunidad existen mujeres que representan a otras mujeres?' resultados = _query_set_filtrado(request, tipo) tabla = {} for op in ['si', 'no']: tabla[op.title()] = [] for key, grupo in resultados.items(): lista = [] [lista.append(encuesta.id) for encuesta in grupo] for op in ['si', 'no']: tabla[op.title()].append(IncidenciaPolitica.objects.filter(content_type=get_content_type(tipo), object_id__in=lista, existen_mujeres=op).count()) totales = get_total(resultados) tabla = get_list_with_total(tabla, totales) return render_to_response("monitoreo/generica_pie.html", RequestContext(request, locals()))
def afeccion_vbg(request, tipo): titulo = u'¿Cree usted que la VBG afecta a las mujeres, la familia y la comunidad?' resultados = _query_set_filtrado(request, tipo) tabla = {} for op in ['si', 'no']: tabla[op.title()] = [] for key, grupo in resultados.items(): lista = [] [lista.append(encuesta.id) for encuesta in grupo] for op in ['si', 'no']: tabla[op.title()].append(EfectoVBG.objects.filter(content_type=get_content_type(tipo), object_id__in=lista, afecta_mujeres=op).count()) totales = get_total(resultados) tabla = get_list_with_total(tabla, totales) return render_to_response("monitoreo/generica_pie.html", RequestContext(request, locals()))
def viven_con_pareja(request, tipo): from trocaire.encuesta.models import SI_NO titulo = u'¿Actualmente tiene esposo/a o compañero/a?' resultados = _query_set_filtrado(request, tipo) tabla = {} for op in SI_NO: tabla[op[1]] = [] for key, grupo in resultados.items(): lista = [] [lista.append(encuesta.id) for encuesta in grupo] for op in SI_NO: tabla[op[1]].append(ComposicionHogar.objects.filter(content_type=get_content_type(tipo), object_id__in=lista, tiene_pareja=op[0]).count()) totales = get_total(resultados) tabla = get_list_with_total(tabla, totales) return render_to_response("monitoreo/generica_pie.html", RequestContext(request, locals()))
def trabaja_fuera(request, tipo): titulo = u'¿Trabaja usted fuera del hogar?' resultados = _query_set_filtrado(request, tipo) tabla ={} for op in ['si', 'no']: tabla[op.title()] = [] for key, grupo in resultados.items(): lista = [] [lista.append(encuesta.id) for encuesta in grupo] for op in ['si', 'no']: tabla[op.title()].append(InformacionSocioEconomica.objects.filter(content_type=get_content_type(tipo), object_id__in=lista, trabaja_fuera=op).count()) totales = get_total(resultados) tabla = get_list_with_total(tabla, totales) return render_to_response("monitoreo/generica_pie.html", RequestContext(request, locals()))
def conoce_leyes(request, tipo): titulo = u'¿Sabe usted si en existe alguna ley que penaliza la violencia contra las mujeres?' resultados = _query_set_filtrado(request, tipo) tabla = {} for op in SI_NO_RESPONDE: tabla[op[1]] = [] for key, grupo in resultados.items(): lista = [] [lista.append(encuesta.id) for encuesta in grupo] for op in SI_NO_RESPONDE: tabla[op[1]].append(ConocimientoLey.objects.filter(content_type=get_content_type(tipo), object_id__in=lista, existe_ley=op[0]).count()) totales = get_total(resultados) tabla = get_list_with_total(tabla, totales) return render_to_response("monitoreo/generica_pie.html", RequestContext(request, locals()))
def expresion_vbg(request, tipo): titulo = '¿De que manera cree usted que se expresa la VBG?' resultados = _query_set_filtrado(request, tipo=tipo) tabla = {} campos = [field for field in ExpresionVBG._meta.fields if field.get_internal_type() == 'CharField'] for field in campos: tabla[field.verbose_name] = [] for key, grupo in resultados.items(): lista = [] [lista.append(encuesta.id) for encuesta in grupo] for field in campos: tabla[field.verbose_name].append(ExpresionVBG.objects.filter(content_type=get_content_type(tipo), object_id__in=lista, ** {field.name: 'si'}).count()) totales = get_total(resultados) tabla = get_list_with_total(tabla, totales) return render_to_response("monitoreo/generica_1.html", RequestContext(request, locals()))
def generic_view_hm(request, tipo=None, ** params): titulo = params['titulo'] template = params.get('template_name', 'monitoreo/generica_1.html') if tipo == None: tipo = params.get('tipo', '') resultados = _query_set_filtrado(request, tipo) tabla = {} opciones = params['options'] modelo = get_model('encuesta', params['modelo']) for op in opciones: key, val = checkOpt(op, params['options']) tabla[key] = [] for key, grupo in resultados.items(): for op in opciones: key, val = checkOpt(op, params['options']) tabla[key].append(modelo.objects.filter(content_type=get_content_type(tipo), object_id__in=grupo.values_list('id', flat=True), ** {params['field']:val}).count()) checkvalue = lambda x: sum(x) #mandar a chequear si la suma de valores es menos de 10 (opcional) if not params.get('nocheck', False) == True: for key, value in tabla.items(): if checkvalue(value) < 10: del tabla[key] #mandar a chequear si la suma de valores es cero (opcional) if params.get('checkcero', False) == True: for key, value in tabla.items(): if sum(value) == 0: del tabla[key] totales = get_total(resultados) if tipo in ['mujeres', 'hombres']: tabla = get_list_with_total(tabla, totales) else: tabla = get_prom_lista_func(tabla, totales) #de no necesitar los grafos, activar esta variable nografo nografo = params.get('nografo', False) return render_to_response(template, locals(), RequestContext(request))
def hombres_violencia_mujeres(request, tipo): titulo = '¿Para usted los hombres ejercen violencia hacia las mujeres porque?' resultados = _query_set_filtrado(request, tipo=tipo) tabla = {} campos = [field for field in JustificacionVBG._meta.fields if field.get_internal_type() == 'CharField'] for field in campos: tabla[field.verbose_name] = [] for key, grupo in resultados.items(): lista = [] [lista.append(encuesta.id) for encuesta in grupo] tabla[field.verbose_name].append(JustificacionVBG.objects.filter(content_type=get_content_type(tipo), object_id__in=lista, ** {field.name: 'si'}).count()) totales = get_total(resultados) tabla = get_list_with_total(tabla, totales) return render_to_response("monitoreo/generica_1.html", RequestContext(request, locals()))
def edad_personas(request, tipo='mujeres', **params): titulo = params['titulo'] options = params['options'] modelo = get_model('encuesta', params['modelo']) resultados = _query_set_filtrado(request, tipo) tabla = {} for op in options: key, val = checkOpt(op, options) tabla[key] = [] for key, grupo in resultados.items(): for op in options: key, val = checkOpt(op, options) query = modelo.objects.filter(content_type=get_content_type(tipo), object_id__in=grupo.values_list('id', flat=True)) tabla[key].append((query.aggregate(campo=Sum(val))['campo'], round(query.aggregate(campo=Avg(val))['campo'], 1))) totales = get_total(resultados) return render_to_response('monitoreo/generica_1.html', RequestContext(request, {'tabla': tabla, 'totales': totales, 'hide_perc': True, 'graph_title': params['graph_title'], 'titulo': titulo, 'tipo': tipo}))
def que_debe_hacer(request, tipo): titulo = "¿Si un hombre le pega a su pareja que acciones deberia de tomar?" resultados = _query_set_filtrado(request, tipo) tabla = {} opciones = QueDebeHacer.objects.all() for op in opciones: tabla[op] = [] for key, grupo in resultados.items(): lista = [] [lista.append(encuesta.id) for encuesta in grupo] for op in opciones: tabla[op].append(AccionVBG.objects.filter(content_type=get_content_type(tipo), object_id__in=lista, accion_tomar=op).count()) totales = get_total(resultados) tabla = get_list_with_total(tabla, totales) return render_to_response("monitoreo/generica_1.html", RequestContext(request, locals()))
def negociacion_pareja(request, tipo): """Que se debe hacer para que una negociacion de pareja sea exitosa""" titulo = u'¿Que se debe hacer para que una negociacion de pareja sea exitosa?' resultados = _query_set_filtrado(request, tipo) tabla = {} opciones = NegociacionExitosa.objects.all() for op in opciones: tabla[op] = [] for key, grupo in resultados.items(): lista = [] [lista.append(encuesta.id) for encuesta in grupo] for op in opciones: tabla[op].append(ComunicacionAsertiva.objects.filter(content_type=get_content_type(tipo), object_id__in=lista, negociacion_exitosa=op).count()) totales = get_total(resultados) tabla = get_list_with_total(tabla, totales) return render_to_response("monitoreo/generica_1.html", RequestContext(request, locals()))
def decide_recursos(request, tipo): titulo = u'¿Mencione los recursos sobre los cuales ud decide?' resultados = _query_set_filtrado(request, tipo) tabla = {} opciones = Recurso.objects.all() for op in opciones: tabla[op] = [] for key, grupo in resultados.items(): lista = [] [lista.append(encuesta.id) for encuesta in grupo] for op in opciones: tabla[op].append(AccesoControlRecurso.objects.filter(content_type=get_content_type(tipo), object_id__in=lista, recursos_decide=op).count()) totales = get_total(resultados) tabla = get_list_with_total(tabla, totales) return render_to_response("monitoreo/generica_1.html", RequestContext(request, locals()))
def persona_ejercido(request, tipo): titulo = u'¿Quién es la persona que ha ejercido VBG sobre usted?' resultados = _query_set_filtrado(request, 'mujeres') tabla = {} opciones = Quien.objects.all() for op in opciones: tabla[op] = [] for key, grupo in resultados.items(): lista = [] [lista.append(encuesta.id) for encuesta in grupo] for op in opciones: tabla[op].append(PrevalenciaVBG.objects.filter(content_type=get_content_type('mujeres'), object_id__in=lista, quien=op).count()) totales = get_total(resultados) tabla = get_list_with_total(tabla, totales) return render_to_response("monitoreo/generica_1.html", RequestContext(request, locals()))
def calidad_servicios(request, tipo): titulo = u'¿Cómo valora Ud los servicios que las intituciones ofrecen a las mujeres que viven VBG?' from trocaire.encuesta.models import SERVICIOS resultados = _query_set_filtrado(request, tipo) tabla = {} opciones = SERVICIOS for op in opciones: tabla[op[1]] = [] for key, grupo in resultados.items(): lista = [] [lista.append(encuesta.id) for encuesta in grupo] for op in opciones: tabla[op[1]].append(CalidadAtencion.objects.filter(content_type=get_content_type(tipo), object_id__in=lista, valor_servicio=op[0]).count()) totales = get_total(resultados) tabla = get_list_with_total(tabla, totales) return render_to_response("monitoreo/generica_pie.html", RequestContext(request, locals()))
def satisfaccion(request, tipo): titulo = u'¿Qué tan satisfechas están las mujeres con quienes las representan?' from trocaire.encuesta.models import SATISFECHAS resultados = _query_set_filtrado(request, tipo) tabla = {} opciones = SATISFECHAS for op in opciones: tabla[op[1]] = [] for key, grupo in resultados.items(): lista = [] [lista.append(encuesta.id) for encuesta in grupo] for op in opciones: tabla[op[1]].append(IncidenciaPolitica.objects.filter(content_type=get_content_type(tipo), object_id__in=lista, satisfecha=op[0]).count()) totales = get_total(resultados) tabla = get_list_with_total(tabla, totales) return render_to_response("monitoreo/generica_1.html", RequestContext(request, locals()))
def solucion_problema(request, tipo): titulo = u'¿Que se debe hacer para que la solucion a un conflicto entre la pareja sea exitoso?' from trocaire.encuesta.models import DES_AC resultados = _query_set_filtrado(request, tipo) tabla = {} campos = [field for field in ComunicacionAsertiva._meta.fields if field.get_internal_type() == 'IntegerField' and not field.name == 'object_id'] for field in campos: tabla[field.verbose_name] = {} for key, grupo in resultados.items(): lista = [] [lista.append(encuesta.id) for encuesta in grupo] tabla[field.verbose_name][key] = [] for op in DES_AC: tabla[field.verbose_name][key].append(ComunicacionAsertiva.objects.filter(content_type=get_content_type(tipo), object_id__in=lista, ** {field.name: op[0]}).count()) totales = get_total(resultados) grafico = convertir_grafico(tabla) tabla = get_prom_dead_list3(tabla, totales) return render_to_response("monitoreo/solucion_problema.html", RequestContext(request, locals()))
def actividades_hogar(request, tipo): """Cuales de las siguientes actividades realiza usted en su hogar""" from trocaire.encuesta.models import HOGAR resultados = _query_set_filtrado(request, tipo) tabla = {} campos = [field for field in Corresponsabilidad._meta.fields if field.get_internal_type() == 'IntegerField' and not field.name == 'object_id'] for field in campos: tabla[field.verbose_name] = {} for key, grupo in resultados.items(): lista = [] [lista.append(encuesta.id) for encuesta in grupo] tabla[field.verbose_name][key] = [] for op in HOGAR: tabla[field.verbose_name][key].append(Corresponsabilidad.objects.filter(content_type=get_content_type(tipo), object_id__in=lista, ** {field.name: op[0]}).count()) totales = get_total(resultados) grafico = convertir_grafico(tabla) tabla = get_prom_dead_list2(tabla, totales) return render_to_response("monitoreo/actividades_hogar.html", RequestContext(request, locals()))
def que_hace_dinero(request, tipo): from trocaire.encuesta.models import QUE_HACE_DINERO titulo = u'¿Que hace usted con el dinero que gana?' resultados = _query_set_filtrado(request, tipo) tabla = {} opciones = QUE_HACE_DINERO for op in opciones: tabla[op[1]] = [] for key, grupo in resultados.items(): lista = [] [lista.append(encuesta.id) for encuesta in grupo] for op in opciones: tabla[op[1]].append(InformacionSocioEconomica.objects.filter(content_type=get_content_type(tipo), object_id__in=lista, hace_dinero=op[0]).count()) totales = get_total(resultados) tabla = get_list_with_total(tabla, totales) return render_to_response("monitoreo/generica_1.html", RequestContext(request, locals()))
def aporte_ingresos(request, tipo): titulo = u'¿Quién a quienes aportan ingresos al hogar?' resultados = _query_set_filtrado(request, tipo) tabla = {} opciones = Aporta.objects.all() for op in opciones: tabla[op] = [] for key, grupo in resultados.items(): lista = [] [lista.append(encuesta.id) for encuesta in grupo] for op in opciones: tabla[op].append(InformacionSocioEconomica.objects.filter(content_type=get_content_type(tipo), object_id__in=lista, aportan=op).count()) totales = get_total(resultados) tabla = get_list_with_total(tabla, totales) return render_to_response("monitoreo/generica_1.html", RequestContext(request, locals()))
def nivel_educativo(request, tipo): from trocaire.encuesta.models import NIVEL_EDUCATIVO titulo = u'¿Cuál es su nivel educativo más alto?' resultados = _query_set_filtrado(request, tipo) tabla = {} opciones = NIVEL_EDUCATIVO for op in opciones: tabla[op[1]] = [] for key, grupo in resultados.items(): lista = [] [lista.append(encuesta.id) for encuesta in grupo] for op in opciones: tabla[op[1]].append(InformacionSocioEconomica.objects.filter(content_type=get_content_type(tipo), object_id__in=lista, nivel_educativo=op[0]).count()) totales = get_total(resultados) tabla = get_list_with_total(tabla, totales) return render_to_response("monitoreo/generica_1.html", RequestContext(request, locals()))
def mencione_recursos(request, tipo): titulo = u'¿Mencione los recursos de los que es dueña/o?' resultados = _query_set_filtrado(request, tipo) tabla = {} opciones = Recurso.objects.all() for op in opciones: tabla[op] = [] for key, grupo in resultados.items(): lista = [] [lista.append(encuesta.id) for encuesta in grupo] for op in opciones: tabla[op].append( AccesoControlRecurso.objects.filter( content_type=get_content_type(tipo), object_id__in=lista, recursos=op).count()) totales = get_total(resultados) tabla = get_list_with_total(tabla, totales) return render_to_response("monitoreo/generica_1.html", RequestContext(request, locals()))
def viven_con_pareja(request, tipo): from trocaire.encuesta.models import SI_NO titulo = u'¿Actualmente tiene esposo/a o compañero/a?' resultados = _query_set_filtrado(request, tipo) tabla = {} for op in SI_NO: tabla[op[1]] = [] for key, grupo in resultados.items(): lista = [] [lista.append(encuesta.id) for encuesta in grupo] for op in SI_NO: tabla[op[1]].append( ComposicionHogar.objects.filter( content_type=get_content_type(tipo), object_id__in=lista, tiene_pareja=op[0]).count()) totales = get_total(resultados) tabla = get_list_with_total(tabla, totales) return render_to_response("monitoreo/generica_pie.html", RequestContext(request, locals()))
def persona_ejercido(request, tipo): titulo = u'¿Quién es la persona que ha ejercido VBG sobre usted?' resultados = _query_set_filtrado(request, 'mujeres') tabla = {} opciones = Quien.objects.all() for op in opciones: tabla[op] = [] for key, grupo in resultados.items(): lista = [] [lista.append(encuesta.id) for encuesta in grupo] for op in opciones: tabla[op].append( PrevalenciaVBG.objects.filter( content_type=get_content_type('mujeres'), object_id__in=lista, quien=op).count()) totales = get_total(resultados) tabla = get_list_with_total(tabla, totales) return render_to_response("monitoreo/generica_1.html", RequestContext(request, locals()))
def conoce_leyes(request, tipo): titulo = u'¿Sabe usted si en existe alguna ley que penaliza la violencia contra las mujeres?' resultados = _query_set_filtrado(request, tipo) tabla = {} for op in SI_NO_RESPONDE: tabla[op[1]] = [] for key, grupo in resultados.items(): lista = [] [lista.append(encuesta.id) for encuesta in grupo] for op in SI_NO_RESPONDE: tabla[op[1]].append( ConocimientoLey.objects.filter( content_type=get_content_type(tipo), object_id__in=lista, existe_ley=op[0]).count()) totales = get_total(resultados) tabla = get_list_with_total(tabla, totales) return render_to_response("monitoreo/generica_pie.html", RequestContext(request, locals()))
def que_hace_ante_vbg(request, tipo): """Que hace usted cuando existe una situación de VBG""" resultados = _query_set_filtrado(request, tipo) tabla = {} campos = [ field for field in AccionVBG._meta.fields if field.get_internal_type() == 'IntegerField' and not field.name == 'object_id' ] opciones = [1, 2, 3, 4, 5, 6] for field in campos: tabla[field.verbose_name] = {} for key, grupo in resultados.items(): lista = [] [lista.append(encuesta.id) for encuesta in grupo] tabla[field.verbose_name][key] = {} for op in opciones: tabla[field.verbose_name][key][op] = AccionVBG.objects.filter( content_type=get_content_type(tipo), object_id__in=lista, **{ field.name: op - 1 }).count() totales = get_total(resultados) #---------------Inicia transformacion para grafico ------------------------ grafico = {} for key, value in tabla.items(): grafico[key] = {} for i in range(1, 5): grafico[key][i] = obtener_indice(tabla[key][i]) return render_to_response("monitoreo/que_hace_ante_vbg.html", RequestContext(request, locals()))
def calidad_servicios(request, tipo): titulo = u'¿Cómo valora Ud los servicios que las intituciones ofrecen a las mujeres que viven VBG?' from trocaire.encuesta.models import SERVICIOS resultados = _query_set_filtrado(request, tipo) tabla = {} opciones = SERVICIOS for op in opciones: tabla[op[1]] = [] for key, grupo in resultados.items(): lista = [] [lista.append(encuesta.id) for encuesta in grupo] for op in opciones: tabla[op[1]].append( CalidadAtencion.objects.filter( content_type=get_content_type(tipo), object_id__in=lista, valor_servicio=op[0]).count()) totales = get_total(resultados) tabla = get_list_with_total(tabla, totales) return render_to_response("monitoreo/generica_pie.html", RequestContext(request, locals()))
def satisfaccion(request, tipo): titulo = u'¿Qué tan satisfechas están las mujeres con quienes las representan?' from trocaire.encuesta.models import SATISFECHAS resultados = _query_set_filtrado(request, tipo) tabla = {} opciones = SATISFECHAS for op in opciones: tabla[op[1]] = [] for key, grupo in resultados.items(): lista = [] [lista.append(encuesta.id) for encuesta in grupo] for op in opciones: tabla[op[1]].append( IncidenciaPolitica.objects.filter( content_type=get_content_type(tipo), object_id__in=lista, satisfecha=op[0]).count()) totales = get_total(resultados) tabla = get_list_with_total(tabla, totales) return render_to_response("monitoreo/generica_1.html", RequestContext(request, locals()))
def frecuencia(request, tipo): from trocaire.encuesta.models import FRECUENCIA2, FRECUENCIA resultados = _query_set_filtrado(request, tipo) tabla = {} if tipo == 'mujeres': opciones = FRECUENCIA titulo = u'¿Con que frecuencia ha vivido VBG este último año?' elif tipo == 'hombres': titulo = u'¿Con que frecuencia ha ejercido VBG este último año?' opciones = FRECUENCIA2 for op in opciones: tabla[op[1]] = [] for key, grupo in resultados.items(): lista = [] [lista.append(encuesta.id) for encuesta in grupo] for op in opciones: if tipo == 'mujeres': tabla[op[1]].append( PrevalenciaVBG.objects.filter( content_type=get_content_type(tipo), object_id__in=lista, frecuencia=op[0]).count()) elif tipo == 'hombres': tabla[op[1]].append( PrevalenciaVBGHombre.objects.filter( content_type=get_content_type(tipo), object_id__in=lista, frecuencia=op[0]).count()) totales = get_total(resultados) tabla = get_list_with_total(tabla, totales) return render_to_response("monitoreo/generica_1.html", RequestContext(request, locals()))
def que_debe_hacer(request, tipo): titulo = "¿Si un hombre le pega a su pareja que acciones deberia de tomar?" resultados = _query_set_filtrado(request, tipo) tabla = {} opciones = QueDebeHacer.objects.all() for op in opciones: tabla[op] = [] for key, grupo in resultados.items(): lista = [] [lista.append(encuesta.id) for encuesta in grupo] for op in opciones: tabla[op].append( AccionVBG.objects.filter(content_type=get_content_type(tipo), object_id__in=lista, accion_tomar=op).count()) totales = get_total(resultados) tabla = get_list_with_total(tabla, totales) return render_to_response("monitoreo/generica_1.html", RequestContext(request, locals()))
def que_hace_dinero(request, tipo): from trocaire.encuesta.models import QUE_HACE_DINERO titulo = u'¿Que hace usted con el dinero que gana?' resultados = _query_set_filtrado(request, tipo) tabla = {} opciones = QUE_HACE_DINERO for op in opciones: tabla[op[1]] = [] for key, grupo in resultados.items(): lista = [] [lista.append(encuesta.id) for encuesta in grupo] for op in opciones: tabla[op[1]].append( InformacionSocioEconomica.objects.filter( content_type=get_content_type(tipo), object_id__in=lista, hace_dinero=op[0]).count()) totales = get_total(resultados) tabla = get_list_with_total(tabla, totales) return render_to_response("monitoreo/generica_1.html", RequestContext(request, locals()))
def aporte_ingresos(request, tipo): titulo = u'¿Quién a quienes aportan ingresos al hogar?' resultados = _query_set_filtrado(request, tipo) tabla = {} opciones = Aporta.objects.all() for op in opciones: tabla[op] = [] for key, grupo in resultados.items(): lista = [] [lista.append(encuesta.id) for encuesta in grupo] for op in opciones: tabla[op].append( InformacionSocioEconomica.objects.filter( content_type=get_content_type(tipo), object_id__in=lista, aportan=op).count()) totales = get_total(resultados) tabla = get_list_with_total(tabla, totales) return render_to_response("monitoreo/generica_1.html", RequestContext(request, locals()))
def lista_generica(request, tipo, **params): titulo = params['titulo'] resultados = _query_set_filtrado(request, tipo) modelo = get_model('encuesta', params['modelo']) tabla = {} totales = get_total(resultados) options = params.get('options', None) for key, grupo in resultados.items(): if options: tabla[key] = modelo.objects.filter( content_type=get_content_type(tipo), object_id__in=grupo.values_list('id', flat=True), **{ params['field']: options }).distinct().values_list(params['field_values']) else: tabla[key] = modelo.objects.filter( content_type=get_content_type(tipo), object_id__in=grupo.values_list( 'id', flat=True)).distinct().values_list(params['field']) return render_to_response("monitoreo/lista_leyes.html", RequestContext(request, locals()))