예제 #1
0
파일: voto.py 프로젝트: jadulled/vot.ar
def get_nombres_imagenes():
    nombres_imagenes = []
    for candidato in Candidato.principales():
        nombres_imagenes.append(_image_name(candidato.codigo))

    for lista in Lista.all():
        nombres_imagenes.append(_image_name(lista.codigo))
    for partido in Partido.all():
        nombres_imagenes.append(_image_name(partido.codigo))
    for alianza in Alianza.all():
        nombres_imagenes.append(_image_name(alianza.codigo))

    return nombres_imagenes
예제 #2
0
파일: voto.py 프로젝트: jadulled/vot.ar
    def cargar_candidatos(self, cod_categoria, cod_partido=None):
        """"Envia los candidatos a la interfaz web."""
        if self.agrupacion is not None and cod_partido is None:
            cod_partido = self.agrupacion.codigo

        cand_list = self._get_candidatos_categoria(cod_categoria, cod_partido)

        if MEZCLAR_CANDIDATOS:
            shuffle(cand_list)

        # si es una PASO y hay mas listas de las permitidas agrupamos por
        # Partido o Alianza segun sea el caso
        if cod_partido is None and get_tipo_elec("paso") and len(cand_list) > get_tipo_elec("colapsar_listas"):

            partidos = {}
            for candidato in cand_list:
                cod_partido = candidato["partido"]["codigo"]
                if cod_partido not in partidos:
                    candidato["partido"]["imagen"] = _image_name(cod_partido)
                    partidos[cod_partido] = candidato["partido"]

            partidos = partidos.values()
            shuffle(partidos)

            self.send_command(
                "cargar_partido_categorias",
                {
                    "candidatos": cand_list,
                    "cod_categoria": cod_categoria,
                    "partidos": partidos,
                    "agrupador": self.agrupador.__name__.lower(),
                },
            )
        else:
            # En caso de que haya un solo candidato lo seleccionamos y pasamos
            # a la proxima categoria, esto es porque puede pasar que la
            # organizacion politica tenga una sola lista
            if len(cand_list) == 1:
                self.seleccionar_candidatos([cod_categoria, [cand_list[0]["codigo"]]])
            else:
                self.send_command("cargar_candidatos", {"candidatos": cand_list, "cod_categoria": cod_categoria})
예제 #3
0
파일: voto.py 프로젝트: jadulled/vot.ar
    def _get_dict_lista(self, lista):
        key = ("dict_lista", lista.codigo)
        if key in self._cache_categorias:
            listas_dict = self._cache_categorias[key]
        else:
            listas_dict = []
            candidatos = lista.candidatos

            if len(candidatos):
                lista_dict = lista.to_dict()
                lista_dict["imagen"] = _image_name(lista.codigo)
                lista_dict["candidatos"] = []

                for cand in candidatos:
                    candidato_dict = cand.full_dict(_image_name, secundarios=False, suplentes=False)
                    candidato_dict["categoria"] = cand.categoria.nombre
                    lista_dict["candidatos"].append(candidato_dict)

                listas_dict.append(lista_dict)
            self._cache_categorias[key] = listas_dict
        return listas_dict
예제 #4
0
파일: voto.py 프로젝트: jadulled/vot.ar
    def cargar_listas(self, cod_candidatos=None, cat=None):
        """Envia el comando para cargar las listas."""
        if cod_candidatos is None:
            cod_candidatos = []
        cod_partido = self.agrupacion.codigo if self.agrupacion is not None else None
        if cod_partido is None:
            listas = Lista.all()
        else:
            listas = self.agrupador.one(cod_partido).listas
        listas_dict = []

        if MEZCLAR_LISTAS:
            listas.shuffle()

        for lista in listas:
            candidatos = lista.candidatos
            if len(candidatos):
                hash_lista = [candidato.codigo for candidato in candidatos]
                lista_dict = lista.to_dict()
                lista_dict["hash"] = hash_lista
                lista_dict["imagen"] = _image_name(lista.codigo)
                lista_dict["candidatos"] = []

                for candidato in candidatos:
                    candidato_dict = candidato.full_dict(_image_name)
                    candidato_dict["hash_lista"] = hash_lista
                    candidato_dict["categoria"] = candidato.categoria.nombre
                    lista_dict["candidatos"].append(candidato_dict)

                listas_dict.append(lista_dict)

        if get_tipo_elec("adh_segmentada"):
            if cat is None:
                search_cat = Categoria.one(sorted="posicion")
            else:
                cat = Categoria.one(cat)
                search_cat = cat.next(consulta_popular=False)
            repite, listas_filtradas, next_search_cat = self._cat_con_adh(listas_dict, cat, search_cat, cod_candidatos)
            if repite and next_search_cat is not None:
                listas_dict = listas_filtradas
                ultima_cat = False
            else:
                ultima_cat = True
                listas_finales = []
                for lista in listas_dict:
                    for candidato in listas_filtradas:
                        if lista["hash"] == candidato["hash_lista"]:
                            listas_finales.append(lista)
                listas_dict = listas_finales

        if len(listas_dict) > 1:
            if (
                get_tipo_elec("adh_segmentada")
                and repite
                and get_tipo_elec("adh_segmentada_nivel") > len(cod_candidatos)
            ):

                self.send_command("cargar_adhesiones", [listas_dict, search_cat.codigo, cod_candidatos, ultima_cat])
            else:
                self.send_command("cargar_listas_params", [listas_dict, None, cod_candidatos])
        else:
            self.seleccionar_lista([listas_dict[0]["codigo"], None, None, True])
예제 #5
0
파일: voto.py 프로젝트: sunzu/vot.ar
    def cargar_listas(self, cod_candidatos=None, cat=None):
        """Envia el comando para cargar las listas."""
        if cod_candidatos is None:
            cod_candidatos = []
        cod_partido = self.agrupacion.codigo if self.agrupacion is not None \
            else None
        if cod_partido is None:
            listas = Lista.all()
        else:
            listas = self.agrupador.one(cod_partido).listas
        listas_dict = []

        if MEZCLAR_LISTAS:
            listas.shuffle()

        for lista in listas:
            candidatos = lista.candidatos
            if len(candidatos):
                hash_lista = [candidato.codigo for candidato in candidatos]
                lista_dict = lista.to_dict()
                lista_dict['hash'] = hash_lista
                lista_dict['imagen'] = _image_name(lista.codigo)
                lista_dict['candidatos'] = []

                for candidato in candidatos:
                    candidato_dict = candidato.full_dict(_image_name)
                    candidato_dict['hash_lista'] = hash_lista
                    candidato_dict['categoria'] = candidato.categoria.nombre
                    lista_dict['candidatos'].append(candidato_dict)

                listas_dict.append(lista_dict)

        if get_tipo_elec("adh_segmentada"):
            if cat is None:
                search_cat = Categoria.one(sorted="posicion")
            else:
                cat = Categoria.one(cat)
                search_cat = cat.next(consulta_popular=False)
            repite, listas_filtradas, next_search_cat = \
                self._cat_con_adh(listas_dict, cat, search_cat, cod_candidatos)
            if repite and next_search_cat is not None:
                listas_dict = listas_filtradas
                ultima_cat = False
            else:
                ultima_cat = True
                listas_finales = []
                for lista in listas_dict:
                    for candidato in listas_filtradas:
                        if lista['hash'] == candidato['hash_lista']:
                            listas_finales.append(lista)
                listas_dict = listas_finales

        if len(listas_dict) > 1:
            if get_tipo_elec("adh_segmentada") and repite and \
                get_tipo_elec("adh_segmentada_nivel") > len(cod_candidatos):

                self.send_command("cargar_adhesiones", [
                    listas_dict, search_cat.codigo, cod_candidatos, ultima_cat
                ])
            else:
                self.send_command("cargar_listas_params",
                                  [listas_dict, None, cod_candidatos])
        else:
            self.seleccionar_lista(
                [listas_dict[0]['codigo'], None, None, True])