def _get_data_listas(self): categorias = self._get_categorias() data_listas = [ l for l in Lista.many(sorted='cod_partido,codigo') if not l.es_blanco() ] if get_tipo_elec("paso"): def _sort_listas_paso(lista_a, lista_b): return cmp(lista_a.partido.nombre.upper(), lista_b.partido.nombre.upper()) data_listas = sorted(data_listas, _sort_listas_paso) else: 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) data_listas = sorted(data_listas, _sort_listas) lista_blanca = Lista.one(COD_LISTA_BLANCO) if lista_blanca is not None: data_listas.append(lista_blanca) listas = [] for lista in data_listas: lista_dict = lista.to_dict() if lista.partido is not None: lista_dict['nombre_partido'] = lista.partido.nombre lista_dict['candidatos'] = [] for categoria in categorias: candidatos = Candidato.many(cod_lista=lista.codigo, cod_categoria=categoria.codigo, titular=True, numero_de_orden=1) if candidatos: candidato = candidatos[0] candidato_dict = candidato.to_dict() candidato_dict['votos'] = \ self.sesion.recuento.obtener_resultado(categoria.codigo, candidato.codigo) else: candidato_dict = None lista_dict['candidatos'].append(candidato_dict) listas.append(lista_dict) cat_list = [] for categoria in categorias: cat_dict = categoria.to_dict() cat_dict['nombre'] = _(cat_dict['nombre']) cat_list.append(cat_dict) return cat_list, listas
def audios_cargar_listas(self, data): """Carga los audios de las listas.""" listas = [] for datum in data: if datum != COD_LISTA_BLANCO: lista = Lista.one(id_candidatura=datum).to_dict() else: lista = Candidatura.first(clase="Blanco").to_dict() listas.append(lista) self.audios("cargar_listas", listas)
def _get_data_listas(self): categorias = self._get_categorias() data_listas = [l for l in Lista.many(sorted='cod_partido,codigo') if not l.es_blanco()] if get_tipo_elec("paso"): def _sort_listas_paso(lista_a, lista_b): return cmp((lista_a.partido.nombre.upper(), lista_a.numero), (lista_b.partido.nombre.upper(), lista_b.numero)) data_listas = sorted(data_listas, _sort_listas_paso) else: 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) data_listas = sorted(data_listas, _sort_listas) lista_blanca = Lista.one(COD_LISTA_BLANCO) if lista_blanca is not None: data_listas.append(lista_blanca) listas = [] principales = {(candidato.cod_lista, candidato.cod_categoria): candidato for candidato in Candidato.many(titular=True, numero_de_orden=1)} for lista in data_listas: lista_dict = lista.to_dict() if lista.partido is not None: lista_dict['nombre_partido'] = lista.partido.nombre lista_dict['candidatos'] = [] for categoria in categorias: candidato = principales.get((lista.codigo, categoria.codigo)) if candidato is not None: candidato_dict = candidato.to_dict() candidato_dict['votos'] = \ self.sesion.recuento.obtener_resultado(categoria.codigo, candidato.codigo) else: candidato_dict = None lista_dict['candidatos'].append(candidato_dict) listas.append(lista_dict) cat_list = [] for categoria in categorias: cat_dict = categoria.to_dict() cat_dict['nombre'] = _(cat_dict['nombre']) cat_list.append(cat_dict) return cat_list, listas
def seleccionar_lista(self, data): """Selecciona la lista y envia el comando para ver la pantalla de confirmacion. """ cod_lista, categoria_adhesion, cod_candidatos, es_ultima = data if es_ultima or cod_lista == COD_LISTA_BLANCO: lista = Lista.one(cod_lista) for candidato in lista.candidatos: if not candidato.categoria.consulta_popular: self.parent.seleccion.elegir_candidato(candidato) self.parent.seleccion.rellenar_de_blanco() categorias = self.get_data_categorias() self.send_command("actualizar_categorias", categorias) self.mostrar_confirmacion() else: if cod_candidatos is None: cod_candidatos = [] self.cargar_listas(cod_candidatos + [cod_lista], categoria_adhesion)
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
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