Exemplo n.º 1
0
    def obtener_rbs_completa_by_proyecto(self, gerente_id, proyecto_id):
        """Construye la rbs con los riesgos por subcategoria del gerente.

        Devuelve en un diccionario la informacion de las categorias
        junto con las subcategorias asociadas y sus riesgos.

        Se encarga de consultar la rbs del gerente y a partir de su id
        consultar todas las categorias y subcategorias asociados.
        Parámetros:
        gerente_id -- corresponde al id del gerente en la base de datos     
        Excepciones:
        ValueError -- Si gerente no existe      
        """
        gerente_dao = GerenteDao()
        gerente = gerente_dao.get_by_id(gerente_id)
        categoria_dao = CategoriaDao()
        categorias = categoria_dao.get_categorias_by_gerente(gerente)
        proyecto_dao = ProyectoDao()
        proyecto = proyecto_dao.obtener_proyecto(proyecto_id)
        rbs = []
        sub_categoria_dao = SubcategoriaDao()
        riesgo_dao = RiesgoDao()
        for categoria in categorias:
            subcategorias = sub_categoria_dao.get_sub_categorias_by_categoria(
                categoria)
            aux = []
            for subcategoria in subcategorias:
                riesgos = riesgo_dao.get_riesgo_by_subcategoria(subcategoria)
                if riesgos == None:
                    aux.append({
                        "subcategoria": model_to_dict(subcategoria),
                        "riesgos": []
                    })
                else:
                    riesgos = list(riesgos.values())
                    if (len(riesgos) > 0):
                        for riesgo in riesgos:
                            e = riesgo_dao.riesgo_is_proyecto(
                                Riesgo(riesgo_id=riesgo["riesgo_id"]),
                                proyecto)
                            if (e != None):
                                riesgo['is_assigned'] = True
                                riesgo[
                                    'fecha_manifestacion'] = e.fecha_manifestacion.strftime(
                                        "%Y-%m-%d")
                            else:
                                riesgo['is_assigned'] = False
                    aux.append({
                        "subcategoria": model_to_dict(subcategoria),
                        "riesgos": riesgos
                    })
            rbs.append({
                "categoria": model_to_dict(categoria),
                "subcategorias": aux
            })
        return rbs
Exemplo n.º 2
0
    def obtener_rbs_completa(self, gerente_id):
        """Construye la rbs con los riesgos por subcategoria del gerente.

        Devuelve en un diccionario la informacion de las categorias
        junto con las subcategorias asociadas y sus riesgos.

        Se encarga de consultar la rbs del gerente y a partir de su id
        consultar todas las categorias y subcategorias asociados.
        Parámetros:
        gerente_id -- corresponde al id del gerente en la base de datos     
        Excepciones:
        ValueError -- Si gerente no existe      
        """
        gerente_dao = GerenteDao()
        gerente = gerente_dao.get_by_id(gerente_id)
        categoria_dao = CategoriaDao()
        categorias = categoria_dao.get_categorias_by_gerente(gerente)
        rbs = []
        sub_categoria_dao = SubcategoriaDao()
        riesgo_dao = RiesgoDao()
        for categoria in categorias:
            subcategorias = sub_categoria_dao.get_sub_categorias_by_categoria(
                categoria)
            aux = []
            for subcategoria in subcategorias:
                riesgos = riesgo_dao.get_riesgo_by_subcategoria(subcategoria)
                if riesgos == None:
                    aux.append({
                        "subcategoria": model_to_dict(subcategoria),
                        "riesgos": []
                    })
                else:
                    aux.append({
                        "subcategoria": model_to_dict(subcategoria),
                        "riesgos": list(riesgos.values())
                    })
            rbs.append({
                "categoria": model_to_dict(categoria),
                "subcategorias": aux
            })
        return rbs