def get_constants(): translations = ("si", "no", "ver_qr", "alto_contraste", "muchas_gracias", "puede_retirar_boleta", "si_desea_verificarlo", "imprimiendo_voto", "no_retirar_boleta", "agradecimiento", "cancelar", "volver_al_inicio", "salir", "terminar_escrutinio", "aceptar", "boletas_procesadas", "escrutinio_mesa", "iniciar_instructivo", "finalizar_instructivo", "bienvenida_recuento", "boleta_unica_electronica", "caracteristicas_pantalla", "slide_2_titulo", "slide_2_contenido", "slide_3_subtitulo", "slide_3_recuadro_1", "slide_3_recuadro_2", "slide_3_recuadro_3", "slide_4_subtitulo", "slide_4_recuadro_1", "slide_5_subtitulo", "slide_5_recuadro_1", "slide_6_titulo", "slide_6_subtitulo", "presione_imprimir", "fiscales_qr", "introduzca_acta_transmision", "introduzca_cerfificado_escrutinio", "asegurese_firmar_acta", "introduzca_certificado_boletas", "slide_2_bullet_1", "slide_2_bullet_2", "slide_2_bullet_3", "introduzca_sobre_actas", "slide_3_bullet_1", "slide_3_bullet_2", "slide_3_bullet_3", "slide_3_bullet_4", "slide_3_bullet_5", "entregue_certif_transmision", "el_suplente_acercara", "introduzca_certificados_para_fiscales", "usted_puede_imprimir", "introduzca_acta_cierre_nuevamente") encabezado = get_config('datos_eleccion') constants_dict = { "juego_de_datos": JUEGO_DE_DATOS, "cod_lista_blanco": COD_LISTA_BLANCO, "elecciones_internas": get_tipo_elec("interna"), "elecciones_paso": get_tipo_elec("paso"), "mostrar_cursor": MOSTRAR_CURSOR, "encabezado": [(texto, encabezado[texto]) for texto in encabezado], "i18n": [(trans, _(trans)) for trans in translations], "palabra_lista": _("palabra_lista"), "palabra_nombre": _("palabra_nombre"), "palabra_categoria": _("palabra_categoria"), "palabra_siguiente": _("palabra_siguiente"), "palabra_anterior": _("palabra_anterior"), "palabra_imprimir": _("palabra_imprimir"), "terminar_escrutinio": _("terminar_escrutinio"), "terminar": _("terminar"), "salir": _("salir"), "sus_candidatos": _("sus_candidatos"), "candidato_no_seleccionado": _("candidato_no_seleccionado"), "cod_estado_espera": RECUENTO_NO_TAG, "cod_estado_ok": RECUENTO_OK, "cod_boleta_repetida": RECUENTO_ERROR_REPETIDO, "cod_error_lectura": RECUENTO_ERROR, "usar_qr": USAR_QR, "usa_armve": USA_ARMVE, "ext_img_voto": EXT_IMG_VOTO, "effects": EFECTOS_RECUENTO, "flavor": FLAVOR, "templates": get_templates(), "PATH_TEMPLATES_VOTO": "file:///%s/" % PATH_TEMPLATES_VOTO, "CIERRE_ESCRUTINIO": CIERRE_ESCRUTINIO, "CIERRE_TRANSMISION": CIERRE_TRANSMISION, "listas_especiales": get_config("listas_especiales"), "cod_estado_imprimiendo": RECUENTO_IMPRIMIENDO, "cod_estado_generando": RECUENTO_GENERANDO } return constants_dict
def get_constants(): translations = ( "si", "no", "ver_qr", "introduzca_acta_cierre", "alto_contraste", "muchas_gracias", "puede_retirar_boleta", "si_desea_verificarlo", "imprimiendo_voto", "no_retirar_boleta", "agradecimiento", "cancelar", "volver_al_inicio", "salir", "terminar_escrutinio", "aceptar", "boletas_procesadas", "escrutinio_mesa", "iniciar_instructivo", "finalizar_instructivo", "bienvenida_recuento", "boleta_unica_electronica", "caracteristicas_pantalla", "slide_2_titulo", "slide_2_contenido", "slide_3_subtitulo", "slide_3_recuadro_1", "slide_3_recuadro_2", "slide_3_recuadro_3", "slide_4_subtitulo", "slide_4_recuadro_1", "slide_5_subtitulo", "slide_5_recuadro_1", "slide_6_titulo", "slide_6_subtitulo", "presione_imprimir", "fiscales_qr", "introduzca_acta_transmision", "introduzca_cerfificado_escrutinio", "asegurese_firmar_acta", "introduzca_certificado_boletas", "slide_2_bullet_1", "slide_2_bullet_2", "slide_2_bullet_3", "introduzca_sobre_actas", "slide_3_bullet_1", "slide_3_bullet_2", "slide_3_bullet_3", "slide_3_bullet_4", "slide_3_bullet_5", "entregue_certif_transmision", "el_suplente_acercara", "introduzca_certificados_para_fiscales", "usted_puede_imprimir") encabezado = get_config('datos_eleccion') constants_dict = { "juego_de_datos": JUEGO_DE_DATOS, "cod_lista_blanco": COD_LISTA_BLANCO, "elecciones_internas": get_tipo_elec("interna"), "elecciones_paso": get_tipo_elec("paso"), "mostrar_cursor": MOSTRAR_CURSOR, "encabezado": [(texto, encabezado[texto]) for texto in encabezado], "i18n": [(trans, _(trans)) for trans in translations], "palabra_lista": _("palabra_lista"), "palabra_nombre": _("palabra_nombre"), "palabra_categoria": _("palabra_categoria"), "palabra_siguiente": _("palabra_siguiente"), "palabra_anterior": _("palabra_anterior"), "palabra_imprimir": _("palabra_imprimir"), "terminar_escrutinio": _("terminar_escrutinio"), "terminar": _("terminar"), "salir": _("salir"), "sus_candidatos": _("sus_candidatos"), "candidato_no_seleccionado": _("candidato_no_seleccionado"), "cod_estado_espera": RECUENTO_NO_TAG, "cod_estado_ok": RECUENTO_OK, "cod_boleta_repetida": RECUENTO_ERROR_REPETIDO, "cod_error_lectura": RECUENTO_ERROR, "usar_qr": USAR_QR, "usa_armve": USA_ARMVE, "ext_img_voto": EXT_IMG_VOTO, "effects": EFECTOS_RECUENTO, "flavor": FLAVOR, "templates": get_templates(), "PATH_TEMPLATES_VOTO": "file:///%s/" % PATH_TEMPLATES_VOTO, "CIERRE_ESCRUTINIO": CIERRE_ESCRUTINIO, "CIERRE_TRANSMISION": CIERRE_TRANSMISION, "listas_especiales": get_config("listas_especiales"), "cod_estado_imprimiendo": RECUENTO_IMPRIMIENDO, "cod_estado_generando": RECUENTO_GENERANDO } return constants_dict
def __init__(self, mesa, autoridades=None, hora=None): if autoridades is None: autoridades = [] self.__dict_candidatos = None self.autoridades = autoridades self.mesa = mesa self.cod_categoria = None self.hora = hora # si hora es None no se muestra el texto del acta _campos_extra = get_config("campos_extra") self.campos_extra = dict(zip(_campos_extra, [0] * len(_campos_extra))) _lst_esp = get_config("listas_especiales") self.listas_especiales = dict(zip(_lst_esp, [0] * len(_lst_esp))) self.reiniciar_resultados()
def get_campos_extra(self): campos_extra = [] campos_extra.append({ "codigo": "", "titulo": _("boletas_procesadas"), "editable": False, "valor": sesion.recuento.boletas_contadas() }) for lista in get_config("listas_especiales"): campos_extra.append({ "codigo": lista, "titulo": _("titulo_votos_%s" % lista[-3:]), "editable": True, "valor": sesion.recuento.listas_especiales[lista] }) total = 0 for campo in campos_extra: total += campo.get('valor', 0) campos_extra.append({ "codigo": COD_TOTAL, "titulo": _("total_general"), "editable": False, "valor": total }) return campos_extra
def get_constants(): translations = ("titulo_menu", "totalizacion", "apertura_de_mesa", "sistema_boleta_electronica", "cierre_y_escrutinio", "reiniciar", "version_demo", "votacion_asistida", "expulsar_boleta", "salir", "mesa", "mantenimiento", "auto", "manual", "rfid", "titulo_mantenimiento", "volumen", "brillo", "gestion_energia", "version_firmware", "chequeo_rfid", "volver_al_inicio", "potencia_rfid", "temperatura", "iniciar_chequeo", "modo_ventilador", "no_hay_tag", "descripcion_chequeo_rfid", "cargando", "expulsar_cd", "estado_pir", "pir_prendido", "pir_apagado", "pir", "cancelar", "pir_activado", "pir_desactivado", "chequeo_cd", "prueba_impresora", "aceptar", "reset_devices", "modo_autofeed", "seleccione_boleta", "edicion_2013", "edicion_2015", "autodetectar", "calidad_impresion") encabezado = get_config('datos_eleccion') niveles_impresion = [PRINT_SLOW, PRINT_LOW, PRINT_MID, PRINT_HIGH, PRINT_SHIGH] constants_dict = { "juego_de_datos": JUEGO_DE_DATOS, "mostrar_cursor": MOSTRAR_CURSOR, "intervalo_refresco": INTERVALO_REFRESCO, "intervalo_refresco_bateria": INTERVALO_REFRESCO_BATERIA, "tiempo_desactivacion_chequeo": TIEMPO_DESACTIVACION_CHEQUEO, "niveles_impresion": niveles_impresion, "encabezado": [(texto, encabezado[texto]) for texto in encabezado], "i18n": [(trans, _(trans)) for trans in translations], "effects": EFECTOS_ADMIN, "PATH_TEMPLATES_VOTO": "file:///%s/" % PATH_TEMPLATES_VOTO, "usa_armve": USA_ARMVE, } return constants_dict
def get_constants(): translations = ("seleccion_ubicacion_demo", ) encabezado = get_config('datos_eleccion') constants_dict = { "mostrar_cursor": MOSTRAR_CURSOR, "encabezado": [(texto, encabezado[texto]) for texto in encabezado], "i18n": [(trans, _(trans)) for trans in translations], "PATH_TEMPLATES_VOTO": "file:///%s/" % PATH_TEMPLATES_VOTO } return constants_dict
def get_constants(): translations = ("seleccion_ubicacion_demo",) encabezado = get_config("datos_eleccion") constants_dict = { "mostrar_cursor": MOSTRAR_CURSOR, "encabezado": [(texto, encabezado[texto]) for texto in encabezado], "i18n": [(trans, _(trans)) for trans in translations], "PATH_TEMPLATES_VOTO": "file:///%s/" % PATH_TEMPLATES_VOTO, } return constants_dict
def get_constants(): translations = ("calibrar", "apagar", "cancelar_apagado", "bienvenido", "presente_credencial_acta") encabezado = get_config('datos_eleccion') constants_dict = { "juego_de_datos": JUEGO_DE_DATOS, "mostrar_cursor": MOSTRAR_CURSOR, "encabezado": [(texto, encabezado[texto]) for texto in encabezado], "i18n": [(trans, _(trans)) for trans in translations], "PATH_TEMPLATES_VOTO": "file:///%s/" % PATH_TEMPLATES_VOTO, "effects": EFECTOS_INICIO} return constants_dict
def get_campos_extra(self): campos_extra = [] campos_extra.append({"codigo": "", "titulo": _("boletas_procesadas"), "editable": False, "valor": sesion.recuento.boletas_contadas()}) for lista in get_config("listas_especiales"): campos_extra.append( {"codigo": lista, "titulo": _("titulo_votos_%s" % lista[-3:]), "editable": False, "valor": sesion.recuento.listas_especiales[lista]}) return campos_extra
def _get_titulos(self): datos = get_config('datos_eleccion') titulo = (self.medidas_boleta['margen_izq'] + self.medidas_boleta['titulo'][0], self.medidas_boleta['titulo'][1], datos["titulo"].encode("utf8"), self.medidas_boleta['fs_titulo'], self.medidas_boleta['alto_boleta']) subtitulo = (self.medidas_boleta['margen_izq'] + self.medidas_boleta['subtitulo'][0], self.medidas_boleta['subtitulo'][1], datos["subtitulo"].encode("utf8"), self.medidas_boleta['fs_subtitulo'], self.medidas_boleta['alto_boleta']) return titulo, subtitulo
def get_constants(ubicacion=None): translations = ("conformar_voto", "si", "votar_por_categorias", "votar_lista_completa", "su_seleccion", "votar_en_blanco", "confirmar_voto", "alto_contraste", "introduzca_boleta", "si_tiene_dudas", "su_voto_impreso", "no", "muchas_gracias", "puede_retirar_boleta", "si_desea_verificarlo", "imprimiendo_voto", "no_retirar_boleta", "agradecimiento", "este_es_su_voto", "volver_al_inicio", "aguarde_unos_minutos", "seleccionar_idioma", "aceptar", "cancelar", "confirmar_seleccion", "cargando_interfaz", "espere_por_favor", "verificando_voto") encabezado = get_config('datos_eleccion') constants_dict = { "juego_de_datos": JUEGO_DE_DATOS, "ubicacion": ubicacion, "cod_lista_blanco": COD_LISTA_BLANCO, "elecciones_internas": get_tipo_elec("interna"), "elecciones_paso": get_tipo_elec("paso"), "agrupar_por_partido": AGRUPAR_POR_PARTIDO, "mostrar_cursor": MOSTRAR_CURSOR, "encabezado": [(texto, encabezado[texto]) for texto in encabezado], "i18n": [(trans, _(trans)) for trans in translations], "palabra_lista": _("lista"), "sus_candidatos": _("sus_candidatos"), "candidato_no_seleccionado": _("candidato_no_seleccionado"), "usa_armve": USA_ARMVE, "ext_img_voto": EXT_IMG_VOTO, "effects": EFECTOS_VOTO, "flavor": FLAVOR, "templates": get_templates(), "numeros_templates": NUMEROS_TEMPLATES[FLAVOR], "PATH_TEMPLATES_VOTO": "file:///%s/" % PATH_TEMPLATES_VOTO, "ADHESION_SEGMENTADA": get_tipo_elec("adh_segmentada"), "USAR_BUFFER_IMPRESION": USAR_BUFFER_IMPRESION, "COLAPSAR_LISTAS_PASO": get_tipo_elec("colapsar_listas"), "COLAPSAR_INTERNAS_PASO": get_tipo_elec("colapsar_partidos"), "BARRA_SELECCION": BARRA_SELECCION, "asistida": False, } return constants_dict
def _get_titulos(self): datos = get_config('datos_eleccion') texto_titulo = "%s - %s" % (datos['titulo'].encode("utf8"), datos['subtitulo'].encode("utf8")) titulo = (self.medidas_boleta['margen_izq'] + self.medidas_boleta['titulo'][0], self.medidas_boleta['titulo'][1], texto_titulo, self.medidas_boleta['fs_titulo'], self.medidas_boleta['alto_boleta']) texto_subtitulo = "%s - %s" % (datos['entidad'].encode("utf8"), self.seleccion.mesa.comuna) subtitulo = (self.medidas_boleta['margen_izq'] + self.medidas_boleta['subtitulo'][0], self.medidas_boleta['subtitulo'][1], texto_subtitulo, self.medidas_boleta['fs_subtitulo'], self.medidas_boleta['alto_boleta']) return titulo, subtitulo
def get_constants(ubicacion=None): translations = ( "conformar_voto", "si", "votar_por_categorias", "votar_lista_completa", "su_seleccion", "votar_en_blanco", "confirmar_voto", "alto_contraste", "introduzca_boleta", "si_tiene_dudas", "su_voto_impreso", "no", "muchas_gracias", "puede_retirar_boleta", "si_desea_verificarlo", "imprimiendo_voto", "no_retirar_boleta", "agradecimiento", "este_es_su_voto", "volver_al_inicio", "aguarde_unos_minutos", "seleccionar_idioma", "aceptar", "cancelar", "confirmar_seleccion", "cargando_interfaz", "espere_por_favor", "verificando_voto") encabezado = get_config('datos_eleccion') constants_dict = { "juego_de_datos": JUEGO_DE_DATOS, "ubicacion": ubicacion, "cod_lista_blanco": COD_LISTA_BLANCO, "elecciones_internas": get_tipo_elec("interna"), "elecciones_paso": get_tipo_elec("paso"), "agrupar_por_partido": AGRUPAR_POR_PARTIDO, "mostrar_cursor": MOSTRAR_CURSOR, "encabezado": [(texto, encabezado[texto]) for texto in encabezado], "i18n": [(trans, _(trans)) for trans in translations], "palabra_lista": _("lista"), "sus_candidatos": _("sus_candidatos"), "candidato_no_seleccionado": _("candidato_no_seleccionado"), "usa_armve": USA_ARMVE, "ext_img_voto": EXT_IMG_VOTO, "effects": EFECTOS_VOTO, "flavor": FLAVOR, "templates": get_templates(), "numeros_templates": NUMEROS_TEMPLATES[FLAVOR], "PATH_TEMPLATES_VOTO": "file:///%s/" % PATH_TEMPLATES_VOTO, "ADHESION_SEGMENTADA": get_tipo_elec("adh_segmentada"), "USAR_BUFFER_IMPRESION": USAR_BUFFER_IMPRESION, "COLAPSAR_LISTAS_PASO": get_tipo_elec("colapsar_listas"), "COLAPSAR_INTERNAS_PASO": get_tipo_elec("colapsar_partidos"), "BARRA_SELECCION": BARRA_SELECCION, "asistida": False, } return constants_dict
def get_constants(): #TODO: ver cuáles de estas constantes son realmente necesarias en # las pantallas de interaccion translations = ("muchas_gracias", "titulo_segundo_suplente", "introduzca_acta_apertura", "puede_retirar_boleta", "no_retirar_boleta", "agradecimiento", "aguarde_unos_minutos", "aceptar", "cancelar", "introduzca_acta_cierre", "ingrese_datos_solicitados", "ingrese_numero_mesa", "confirmar", "ingrese_numero_pin", "confirma_datos_correctos", "hora_invalida", "titulo_hora", "titulo_minutos", "titulo_apellido", "titulo_nombre", "titulo_documento", "titulo_presidente", "titulo_suplente", "retire_acta_apertura", "acta_contiene_informacion", "volver_al_inicio", "aguarde_procesando_acta", "aguarde_configurando_mesa", "apertura_no_almacenada", "papel_no_puesto", "acta_apertura_mesa") encabezado = get_config('datos_eleccion') mensajes_error = ("hora_invalida", "hora_incompleta", "largo_invalido", "autoridades_invalidas", "autoridades_incompletas", "mesa_pin_incorrectos", "documentos_invalidos", "documentos_numeros_invalidos") constants_dict = { "juego_de_datos": JUEGO_DE_DATOS, "mostrar_cursor": MOSTRAR_CURSOR, "encabezado": [(texto, encabezado[texto]) for texto in encabezado], "i18n": [(trans, _(trans)) for trans in translations], "tipo_doc": [(TIPO_DOC.index(tipo), tipo) for tipo in TIPO_DOC], "mensajes_error": dict([(trans, _(trans)) for trans in mensajes_error]), "usa_armve": USA_ARMVE, "ext_img_voto": EXT_IMG_VOTO, "effects": EFECTOS_VOTO, "flavor": FLAVOR, "cantidad_suplentes": CANTIDAD_SUPLENTES, "usa_tildes": USA_TILDES, "templates": get_templates(), "PATH_TEMPLATES_VOTO": "file:///%s/" % PATH_TEMPLATES_VOTO, "USAR_BUFFER_IMPRESION": USAR_BUFFER_IMPRESION, } return constants_dict
def get_db_for_mesa(self, mesa): try: conn = get_test_connection() cur = conn.cursor() sql = """SELECT id_cargo, id_candidatura, votos_definitivos FROM planillas_det WHERE id_planilla = %s AND id_candidatura NOT IN %s """ cur.execute(sql, (mesa.id_planilla, tuple(get_config("listas_especiales")))) data = cur.fetchall() result_dict = {} for datum in data: key = str(datum[1] if datum[1] != -1 else "%s_BLC" % datum[0]) key = key.rjust(3, "0") result_dict[(unicode(datum[0]), unicode(key))] = datum[2] except Exception, e: logger.debug(e)
def a_string(self): len_cods = get_config("len_cod") len_cod_mesa = ("%d" % len(self.mesa.cod_datos)).zfill(2) if self.interna: datos_interna = self.interna.codigo.rjust(len_cods["interna"]) else: datos_interna = ' ' * len_cods["interna"] categorias = [] for c in sorted(self._candidatos, key=lambda c: c.cod_categoria): categoria = Container( cod_categoria=c.cod_categoria.rjust(len_cods["categoria"]), cod_candidatura=c.codigo_clean().rjust(len_cods["candidato"])) categorias.append(categoria) container = Container(len_ubic=len_cod_mesa, ubicacion=self.mesa.cod_datos, cod_interna=datos_interna, voto_categoria=categorias) built = struct_voto.build(container) return built
def get_campos_extra(self): campos_extra = [] campos_extra.append({"codigo": "", "titulo": _("boletas_procesadas"), "editable": False, "valor": sesion.recuento.boletas_contadas()}) for lista in get_config("listas_especiales"): campos_extra.append( {"codigo": lista, "titulo": _("titulo_votos_%s" % lista[-3:]), "editable": True, "valor": sesion.recuento.listas_especiales[lista]}) total = 0 for campo in campos_extra: total += campo.get('valor', 0) campos_extra.append({"codigo": COD_TOTAL, "titulo": _("total_general"), "editable": False, "valor": total}) return campos_extra
def get_db_for_mesa(self, mesa): try: conn = get_test_connection() cur = conn.cursor() sql = """SELECT id_cargo, id_candidatura, votos_definitivos FROM planillas_det WHERE id_planilla = %s AND id_candidatura NOT IN %s """ cur.execute( sql, (mesa.id_planilla, tuple(get_config("listas_especiales")))) data = cur.fetchall() result_dict = {} for datum in data: key = str(datum[1] if datum[1] != -1 else "%s_BLC" % datum[0]) key = key.rjust(3, "0") result_dict[(unicode(datum[0]), unicode(key))] = datum[2] except Exception, e: logger.debug(e)
def get_campos_extra(self): campos_extra = [] campos_extra.append({ "codigo": "", "titulo": _("boletas_procesadas"), "editable": False, "valor": sesion.recuento.boletas_contadas() }) for lista in get_config("listas_especiales"): campos_extra.append({ "codigo": lista, "titulo": _("titulo_votos_%s" % lista[-3:]), "editable": False, "valor": sesion.recuento.listas_especiales[lista] }) return campos_extra
def get_constants(): #TODO: ver cuáles de estas constantes son realmente necesarias en # las pantallas de interaccion translations = ( "muchas_gracias", "titulo_segundo_suplente", "introduzca_acta_apertura", "puede_retirar_boleta", "no_retirar_boleta", "agradecimiento", "aguarde_unos_minutos", "aceptar", "cancelar", "introduzca_acta_cierre", "ingrese_datos_solicitados", "ingrese_numero_mesa", "confirmar", "ingrese_numero_pin", "confirma_datos_correctos", "hora_invalida", "titulo_hora", "titulo_minutos", "titulo_apellido", "titulo_nombre", "titulo_documento", "titulo_presidente", "titulo_suplente", "retire_acta_apertura", "acta_contiene_informacion", "volver_al_inicio", "aguarde_procesando_acta", "aguarde_configurando_mesa", "apertura_no_almacenada", "papel_no_puesto", "acta_apertura_mesa") encabezado = get_config('datos_eleccion') mensajes_error = ("hora_invalida", "hora_incompleta", "largo_invalido", "autoridades_invalidas", "autoridades_incompletas", "mesa_pin_incorrectos", "documentos_invalidos", "documentos_numeros_invalidos") constants_dict = { "juego_de_datos": JUEGO_DE_DATOS, "mostrar_cursor": MOSTRAR_CURSOR, "encabezado": [(texto, encabezado[texto]) for texto in encabezado], "i18n": [(trans, _(trans)) for trans in translations], "tipo_doc": [(TIPO_DOC.index(tipo), tipo) for tipo in TIPO_DOC], "mensajes_error": dict([(trans, _(trans)) for trans in mensajes_error]), "usa_armve": USA_ARMVE, "ext_img_voto": EXT_IMG_VOTO, "effects": EFECTOS_VOTO, "flavor": FLAVOR, "cantidad_suplentes": CANTIDAD_SUPLENTES, "usa_tildes": USA_TILDES, "templates": get_templates(), "PATH_TEMPLATES_VOTO": "file:///%s/" % PATH_TEMPLATES_VOTO, "USAR_BUFFER_IMPRESION": USAR_BUFFER_IMPRESION, } return constants_dict
def set_campos_extra(self, campos_recuento): for lista in get_config("listas_especiales"): sesion.recuento.actualizar_lista_especial(lista, campos_recuento[lista])
def _get_tabla(self, width): ret = {} empujar_firmas = 0 lineas = [] # muestro la tabla solo si tiene recuento mostrar_partidos = False #any([lista.cod_partido for lista in Lista.all()]) if self.categoria is None: categorias = Categoria.many(sorted="posicion") else: categorias = Categoria.many(codigo=self.categoria) dx = 10 # ancho genérico de columnas ancho_col = 40 * self.zoom # calculo ancho columna descripción w = width - dx * 2 - len(categorias) * ancho_col w = w - ancho_col # resto ancho col. nº de lista Y_INICIAL = 420 if not self.de_muestra else 180 y2 = Y_INICIAL lineas.append((y2 * self.zoom, self.margin_left, self.margin_right)) filas = [] # listas ordenadas por numero, con blanco al final listas = [l for l in Lista.many(sorted='cod_partido, numero') if not l.es_blanco()] def _sort_listas(lista_a, lista_b): return cmp(int(lista_a.numero)if lista_a.numero != "" else lista_a.codigo, int(lista_b.numero)if lista_b.numero != "" else lista_b.codigo) def _sort_listas_paso(lista_a, lista_b): return cmp(lista_a.partido.nombre.upper(), lista_b.partido.nombre.upper()) if get_tipo_elec("paso"): listas = sorted(listas, _sort_listas_paso) else: listas = sorted(listas, _sort_listas) lista_blanca = Lista.one(COD_LISTA_BLANCO) if lista_blanca is not None: listas.append(lista_blanca) partido_actual = None num_listas = 0 guiones = ["-"] * (len(categorias) + 1) principales = self.recuento._get_dict_candidatos() for lista in listas: lista_partido = False partido = lista.partido es_blanco = lista.es_blanco() if mostrar_partidos and not es_blanco and \ partido_actual != lista.cod_partido: partido_actual = lista.cod_partido if num_listas == 0: filas = filas[:-1] else: num_listas = 0 una_lista = num_listas == 0 and len(partido.listas) == 1 if una_lista or partido.nombre == lista.nombre: lista_partido = True else: fila = [partido.nombre] + guiones filas.append(fila) lista_partido = False es_cand_consulta = lista.candidatos[0].cod_categoria == "CPO" numero = lista.numero if lista.numero != "BLC" and \ not es_cand_consulta else "" nombre_lista = lista.nombre if not lista_partido \ else partido.nombre if es_cand_consulta: nombre_lista = "Consulta Popular - " + nombre_lista if not es_blanco and not lista_partido and get_tipo_elec("paso"): nombre_lista = "-- " + nombre_lista fila = [nombre_lista, numero] for categoria in categorias: candidato = principales.get((lista.codigo, categoria.codigo)) resultado = "- " if candidato is not None: resultado = self.recuento.obtener_resultado( categoria.codigo, candidato.codigo) fila.append(resultado) num_listas += 1 filas.append(fila) empujar_firmas += len(filas) * 23 # Armando tabla superior x = self.margin_left y = (400 if not self.de_muestra else 160) * self.zoom ancho_columnas = [w, ancho_col] + [ancho_col] * len(categorias) titulo_columnas = [_("palabra_lista"), "Nº"] + \ [cat.codigo for cat in categorias] columnas = [] for i, titulo in enumerate(titulo_columnas): columna = [titulo] for fila in filas: max_chars = ancho_columnas[i] * 80 / 800 data = fila[i] if i > 0 else fila[i][:max_chars] columna.append(data) columnas.append((columna, x, y, ancho_columnas[i])) x += ancho_columnas[i] ret['alto_rectangulo'] = len(filas) * 23 ret['tabla'] = columnas titulo_columnas = ["Cod.", _("palabra_categoria"), "N°"] w = width - dx * 2 - ancho_col * 3 ancho_columnas = [ancho_col, w, ancho_col] y2 = 435 if not self.de_muestra else 193 lineas.append((y2 * self.zoom + empujar_firmas, self.margin_left, self.margin_right)) valores_especiales = [] for lista_esp in get_config("listas_especiales"): _cod_esp = lista_esp.split(".")[-1] valores_especiales.append( (_cod_esp, _("titulo_votos_%s" % _cod_esp), self.recuento.listas_especiales[lista_esp])) general = self.recuento.boletas_contadas() general += sum(self.recuento.listas_especiales.values()) valores_especiales.append((COD_TOTAL, _("total_general"), general)) x = self.margin_left y += empujar_firmas + 30 columnas = [] for i, titulo in enumerate(titulo_columnas): columna = [titulo] for fila in valores_especiales: columna.append(fila[i]) columnas.append((columna, x, y, ancho_columnas[i])) x += ancho_columnas[i] ret['alto_rectangulo_especiales'] = len(valores_especiales) * 23 ret['tabla_especiales'] = columnas empujar_firmas += len(valores_especiales) * 23 ret['lineas'] = lineas return ret, empujar_firmas
from construct import GreedyRange, Bytes, Struct, UBInt8, UBInt16, Array, Embed, If from msa.core import get_config len_cods = get_config("len_cod") if len_cods is None: len_cods = {} struct_voto = Struct( "voto", Bytes("len_ubic", 2), Bytes("ubicacion", lambda ctx: int(ctx.len_ubic)), Bytes("cod_interna", len_cods.get("interna")), GreedyRange( Struct( "voto_categoria", Bytes("cod_categoria", len_cods.get("categoria")), Bytes("cod_candidatura", len_cods.get("candidato")), ) ), ) struct_recuento = Struct( "Recuento", Bytes("por_categoria", 1), If(lambda ctx: ctx.por_categoria == "1", Bytes("cod_categoria", len_cods.get("categoria"))), GreedyRange(Bytes("datos", 1)), ) struct_recuento_dni = Struct("Recuento con dni", Array(7, Bytes("documentos", 1)), Embed(struct_recuento)) struct_apertura = Struct(
from construct import GreedyRange, Bytes, Struct, UBInt8, UBInt16, Array, \ Embed, If from msa.core import get_config len_cods = get_config("len_cod") if len_cods is None: len_cods = {} struct_voto = Struct( "voto", Bytes("len_ubic", 2), Bytes("ubicacion", lambda ctx: int(ctx.len_ubic)), Bytes("cod_interna", len_cods.get('interna')), GreedyRange( Struct("voto_categoria", Bytes("cod_categoria", len_cods.get('categoria')), Bytes("cod_candidatura", len_cods.get('candidato'))))) struct_recuento = Struct( "Recuento", Bytes("por_categoria", 1), If(lambda ctx: ctx.por_categoria == "1", Bytes("cod_categoria", len_cods.get('categoria'))), GreedyRange(Bytes("datos", 1))) struct_recuento_dni = Struct( "Recuento con dni", Array(11, Bytes("documentos", 1)), Embed(struct_recuento), ) struct_apertura = Struct( "Apertura",
def _get_tabla(self, width): ret = {} empujar_firmas = 0 lineas = [] # muestro la tabla solo si tiene recuento mostrar_partidos = False #any([lista.cod_partido for lista in Lista.all()]) if self.categoria is None: categorias = Categoria.many(sorted="posicion") else: categorias = Categoria.many(codigo=self.categoria) dx = 10 # ancho genérico de columnas ancho_col = 40 * self.zoom # calculo ancho columna descripción w = width - dx * 2 - len(categorias) * ancho_col w = w - ancho_col # resto ancho col. nº de lista Y_INICIAL = 420 if not self.de_muestra else 180 y2 = Y_INICIAL lineas.append((y2 * self.zoom, self.margin_left, self.margin_right)) filas = [] # listas ordenadas por numero, con blanco al final listas = [ l for l in Lista.many(sorted='cod_partido, numero') if not l.es_blanco() ] def _sort_listas(lista_a, lista_b): return cmp( int(lista_a.numero) if lista_a.numero != "" else lista_a.codigo, int(lista_b.numero) if lista_b.numero != "" else lista_b.codigo) def _sort_listas_paso(lista_a, lista_b): return cmp(lista_a.partido.nombre.upper(), lista_b.partido.nombre.upper()) if get_tipo_elec("paso"): listas = sorted(listas, _sort_listas_paso) else: listas = sorted(listas, _sort_listas) lista_blanca = Lista.one(COD_LISTA_BLANCO) if lista_blanca is not None: listas.append(lista_blanca) partido_actual = None num_listas = 0 guiones = ["-"] * (len(categorias) + 1) principales = self.recuento._get_dict_candidatos() for lista in listas: lista_partido = False partido = lista.partido es_blanco = lista.es_blanco() if mostrar_partidos and not es_blanco and \ partido_actual != lista.cod_partido: partido_actual = lista.cod_partido if num_listas == 0: filas = filas[:-1] else: num_listas = 0 una_lista = num_listas == 0 and len(partido.listas) == 1 if una_lista or partido.nombre == lista.nombre: lista_partido = True else: fila = [partido.nombre] + guiones filas.append(fila) lista_partido = False es_cand_consulta = lista.candidatos[0].cod_categoria == "CPO" numero = lista.numero if lista.numero != "BLC" and \ not es_cand_consulta else "" nombre_lista = lista.nombre if not lista_partido \ else partido.nombre if es_cand_consulta: nombre_lista = "Consulta Popular - " + nombre_lista if not es_blanco and not lista_partido and get_tipo_elec("paso"): nombre_lista = "-- " + nombre_lista fila = [nombre_lista, numero] for categoria in categorias: candidato = principales.get((lista.codigo, categoria.codigo)) resultado = "- " if candidato is not None: resultado = self.recuento.obtener_resultado( categoria.codigo, candidato.codigo) fila.append(resultado) num_listas += 1 filas.append(fila) empujar_firmas += len(filas) * 23 # Armando tabla superior x = self.margin_left y = (400 if not self.de_muestra else 160) * self.zoom ancho_columnas = [w, ancho_col] + [ancho_col] * len(categorias) titulo_columnas = [_("palabra_lista"), "Nº"] + \ [cat.codigo for cat in categorias] columnas = [] for i, titulo in enumerate(titulo_columnas): columna = [titulo] for fila in filas: max_chars = ancho_columnas[i] * 80 / 800 data = fila[i] if i > 0 else fila[i][:max_chars] columna.append(data) columnas.append((columna, x, y, ancho_columnas[i])) x += ancho_columnas[i] ret['alto_rectangulo'] = len(filas) * 23 ret['tabla'] = columnas titulo_columnas = ["Cod.", _("palabra_categoria"), "N°"] w = width - dx * 2 - ancho_col * 3 ancho_columnas = [ancho_col, w, ancho_col] y2 = 435 if not self.de_muestra else 193 lineas.append((y2 * self.zoom + empujar_firmas, self.margin_left, self.margin_right)) valores_especiales = [] for lista_esp in get_config("listas_especiales"): _cod_esp = lista_esp.split(".")[-1] valores_especiales.append( (_cod_esp, _("titulo_votos_%s" % _cod_esp), self.recuento.listas_especiales[lista_esp])) general = self.recuento.boletas_contadas() general += sum(self.recuento.listas_especiales.values()) valores_especiales.append((COD_TOTAL, _("total_general"), general)) x = self.margin_left y += empujar_firmas + 30 columnas = [] for i, titulo in enumerate(titulo_columnas): columna = [titulo] for fila in valores_especiales: columna.append(fila[i]) columnas.append((columna, x, y, ancho_columnas[i])) x += ancho_columnas[i] ret['alto_rectangulo_especiales'] = len(valores_especiales) * 23 ret['tabla_especiales'] = columnas empujar_firmas += len(valores_especiales) * 23 ret['lineas'] = lineas return ret, empujar_firmas