def _query_set_cruce(request, var1): if request.session['content_type'] == 'mujeres': resultados = _query_set_filtrado(request, 'solomujeres') else: resultados = _query_set_filtrado(request, 'solohombres') dicc = {} #decidir el app_label segun el modelo if TIPO_RELACION_VAR1[var1] == 'generica': _app_label = 'encuesta' elif TIPO_RELACION_VAR1[var1] == 'normal': _app_label = '1-principal' elif TIPO_RELACION_VAR1[var1] == 'rango': _app_label = 'encuesta' #obtener el modelo a consultar model = get_model(_app_label, MODELO_VAR1[var1]) for op in OPCIONES_VAR1[var1]: #validar si el modelo es generico o normal if TIPO_RELACION_VAR1[var1] == 'generica': objs = model.objects.filter(content_type=get_content_type(request.session['content_type']), object_id__in=[encuesta.id for encuesta in resultados], ** {CAMPO_VAR1[var1]: op[0]}) dicc[op[1]] = [obj.object_id for obj in objs] elif TIPO_RELACION_VAR1[var1] == 'normal': objs = model.objects.filter(id__in=[encuesta.id for encuesta in resultados], ** {CAMPO_VAR1[var1]: op[0]}) dicc[op[1]] = [obj.id for obj in objs] elif TIPO_RELACION_VAR1[var1] == 'rango': params = {} if op == (0,0): key = 'No tiene' params['tiene_hijos'] = 'no' elif op == (5,5): key = '5+ hijos' params['%s__gte' % CAMPO_VAR1[var1]] = op[0] elif op != (5,5): key = '%s-%s hijos' % (op[0], op[1]) params['%s__range' % CAMPO_VAR1[var1]] = op objs = model.objects.filter(content_type=get_content_type(request.session['content_type']), object_id__in=[encuesta.id for encuesta in resultados], ** params) dicc[key] = [obj.object_id for obj in objs] return dicc
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 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 comportamiento(request, tipo): """Como deben comportarse hombres y mujeres""" from trocaire.encuesta.models import CREENCIAS_VBG_RESP resultados = _query_set_filtrado(request, tipo=tipo) tabla = {} campos = [ field for field in Creencia._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 CREENCIAS_VBG_RESP: tabla[field.verbose_name][key].append( Creencia.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_list(tabla, totales) return render_to_response("monitoreo/comportamiento.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 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 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 expresion_vbg(request, tipo): """Vista sobre: De que manera cree usted que se expresa la VBG""" 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 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 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 tipo_vbg_ejercido(request, tipo): titulo = u"¿Qué tipo de VBG ha ejercido?" resultados = _query_set_filtrado(request, 'hombres') tabla = {} opciones = TipoVBG.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( PrevalenciaVBGHombre.objects.filter( content_type=get_content_type('hombres'), object_id__in=lista, que_tipo=op).count()) checkvalue = lambda x: sum(x) for key, value in tabla.items(): if checkvalue(value) == 0: 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 hombres_violentos(request, tipo): titulo = "¿Cree usted que los hombres son violentos debido a?" resultados = _query_set_filtrado(request, tipo=tipo) tabla = {} campos = [ field for field in CausaVBG._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( CausaVBG.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 prohibido_por_ley(request, tipo): """Acciones prohibidas por la ley""" from trocaire.encuesta.models import SI_NO_RESPONDE resultados = _query_set_filtrado(request, tipo) tabla = {} campos = [ field for field in ConocimientoLey._meta.fields if field.get_internal_type() == 'IntegerField' and not (field.name == 'existe_ley' or 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 SI_NO_RESPONDE: tabla[field.verbose_name][key].append( ConocimientoLey.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_list(tabla, totales) return render_to_response("monitoreo/prohibido_por_ley.html", RequestContext(request, locals()))
def que_acciones_realizar(request, tipo): titulo = "¿Cuando una mujer vive VBG cuales acciones deberia realizar?" resultados = _query_set_filtrado(request, tipo) tabla = {} opciones = Decision.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( TomaDecision.objects.filter( content_type=get_content_type(tipo), object_id__in=lista, decision=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 participacion_en_espacios(request, tipo): titulo = u"¿En que organización o espacios comunitarios te encuentras integrada/o actualmente?" resultados = _query_set_filtrado(request, tipo) tabla = {} opciones = Espacio.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( ParticipacionPublica.objects.filter( content_type=get_content_type(tipo), object_id__in=lista, espacio=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 vbg_resolver_con(request, tipo): titulo = u'¿Considera que la VBG es un asunto que debe ser resuelto con la participación de?' resultados = _query_set_filtrado(request, tipo) tabla = {} opciones = ResolverVBG.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( AsuntoPublicoVBG.objects.filter( content_type=get_content_type(tipo), object_id__in=lista, resolverse_con=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 motivo_participacion(request, tipo): titulo = u'¿Qué le motiva a participar en esta organización?' resultados = _query_set_filtrado(request, tipo) tabla = {} opciones = MotivoParticipacion.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( ParticipacionPublica.objects.filter( content_type=get_content_type(tipo), object_id__in=lista, motivo=op).count()) checkvalue = lambda x: sum(x) for key, value in tabla.items(): if checkvalue(value) == 0: 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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_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 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 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 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 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()))