Example #1
0
 def actualizar_gantt(self, proyecto_id, gantt):
     tarea_dao = TareaDao()
     proyecto_dao = ProyectoDao()
     proyecto = proyecto_dao.obtener_proyecto(proyecto_id)
     flag = False
     riesgos = gantt['children']
     for riesgo in riesgos:
         actividades = riesgo['children']
         for actividad in actividades:
             tareas = actividad['children']
             for tarea in tareas:
                 fecha_inicio_real = datetime.datetime.strptime(
                     tarea['start_date_real'], '%Y-%m-%dT%H:%M:%S')
                 fecha_fin_real = fecha_inicio_real + datetime.timedelta(
                     days=int(tarea['duration_real']))
                 tarea_aux = Tarea(tarea_id=tarea['tarea_id'],
                                   fecha_inicio_real=fecha_inicio_real,
                                   fecha_fin_real=fecha_fin_real,
                                   duracion_real=tarea['duration_real'],
                                   tarea_estado=self.get_id_estado_text(
                                       tarea['estado_text']),
                                   tarea_observacion=tarea['observacion'])
                 flag = tarea_dao.actualizar_tarea_bd(tarea_aux)
                 flag = tarea_dao.actualizar_tarea_base(tarea_aux, proyecto)
     return flag
    def listar_riesgos_respuesta_base(self, proyecto_id):

        proyecto_dao = ProyectoDao()
        p_r_r = ProyectoHasRiesgo_RespuestaDao()

        proyecto = proyecto_dao.obtener_proyecto(proyecto_id)
        respuestas = p_r_r.listar_riesgos_respuesta_base(proyecto)

        aux = {}
        for respuesta in respuestas:
            key = "riesgo_" + str(respuesta.riesgo_id)
            riesgo_aux = aux.get(key)
            if (riesgo_aux):
                riesgo_aux.append(
                    dict(respuesta_id=respuesta.respuesta_id,
                         respuesta_nombre=respuesta.respuesta_nombre,
                         respuesta_descripcion=respuesta.respuesta_descripcion,
                         tipo_respuesta=respuesta.tipo_respuesta,
                         riesgo_has_respuesta=respuesta.riesgo_has_respuesta_id
                         ))
            else:
                aux[key] = []
                aux[key].append(
                    dict(respuesta_id=respuesta.respuesta_id,
                         respuesta_nombre=respuesta.respuesta_nombre,
                         respuesta_descripcion=respuesta.respuesta_descripcion,
                         tipo_respuesta=respuesta.tipo_respuesta,
                         riesgo_has_respuesta=respuesta.riesgo_has_respuesta_id
                         ))
        return aux
Example #3
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
Example #4
0
	def registrar_riesgo_proyecto(self, nombre, causa, evento, efecto, tipo, subcategoria_id, proyecto_id):
		riesgo_dao = RiesgoDao()
		subcategoria_dao = SubcategoriaDao()
		proyecto_dao = ProyectoDao()
		return riesgo_dao.registrar_riesgo_proyecto(
			nombre,
			causa,
			evento,
			efecto,
			tipo,
			subcategoria_dao.obtener_subcategoria(subcategoria_id),
			proyecto_dao.obtener_proyecto(proyecto_id),
		)
Example #5
0
 def actualizar_gantt(self, proyecto_id, gantt):
     tarea_dao = TareaDao()
     proyecto_dao = ProyectoDao()
     proyecto = proyecto_dao.obtener_proyecto(proyecto_id)
     flag = False
     for tarea in gantt['data']:
         if tarea['is_tarea']:
             if tarea['tarea_estado'] == '3' and tarea[
                     'tarea_estado_old'] != '3':
                 tarea['fecha_fin_real'] = self.get_datetime()
             tarea_aux = Tarea(tarea_id=tarea['tarea_id'],
                               fecha_inicio_real=tarea['fecha_inicio_real'],
                               fecha_fin_real=tarea['fecha_fin_real'],
                               tarea_estado=tarea['tarea_estado'],
                               tarea_observacion=tarea['tarea_observacion'])
             flag = tarea_dao.actualizar_tarea_base(tarea_aux, proyecto)
     return flag
Example #6
0
	def editar_riesgo_proyecto(self, proyecto_id, riesgo_id, nombre, causa, evento, efecto, tipo ):

		riesgo_dao = RiesgoDao()
		proyecto_dao = ProyectoDao()
		proyecto_has_riesgo_dao = ProyectoHasRiesgoDao()

		riesgo = riesgo_dao.obtener_riesgo(riesgo_id)
		proyecto = proyecto_dao.obtener_proyecto(proyecto_id)
		#print("VARIABLES", riesgo, proyecto)
		proyecto_has_riesgo = proyecto_has_riesgo_dao.get_by_riesgo_and_proyecto_2(riesgo, proyecto)
		#print("MI OBJETO", proyecto_has_riesgo)
		if proyecto_has_riesgo.is_editado == 1:
			#proyecto_has_riesgo_dao.actualizar_fecha(proyecto_has_riesgo, fecha)
			return riesgo_dao.editar_riesgo(riesgo, nombre, causa, evento, efecto, tipo, riesgo.sub_categoria)
		else:
			proyecto_has_riesgo.delete()
			riesgo_nuevo = riesgo_dao.registrar_riesgo_2(nombre, causa, evento, efecto, tipo, riesgo.sub_categoria)
			proyecto_has_riesgo_dao.registrar_proyecto_riesgo_editado(proyecto, riesgo_nuevo)
			return riesgo_nuevo
Example #7
0
    def obtener_rbs_proyecto(self, proyecto_id):
        """Construye una rbs de acuerdo al sector.

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

        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      
        """
        proyecto_dao = ProyectoDao()
        proyecto = proyecto_dao.obtener_proyecto(proyecto_id)

        categoria_dao = CategoriaDao()
        categorias = categoria_dao.get_categorias_by_proyecto(proyecto)

        sub_categoria_dao = SubcategoriaDao()

        rbs = []

        for categoria in categorias:
            subcategorias = sub_categoria_dao.get_sub_categorias_by_categoria_and_proyecto(
                categoria, proyecto)
            if subcategorias == None:
                rbs.append({"categoria": model_to_dict(categoria)})
            else:
                rbs.append({
                    "categoria":
                    model_to_dict(categoria),
                    "subcategorias":
                    self.raw_queryset_as_values_list(subcategorias)
                })
        return rbs
Example #8
0
 def obtener_proyecto(self, id):
     proyecto_dao = ProyectoDao()
     return proyecto_dao.obtener_proyecto(id)
Example #9
0
 def crear_linea_base(self, gerente_id, proyecto_id):
     proyecto_dao = ProyectoDao()
     proyecto = proyecto_dao.obtener_proyecto(proyecto_id)
     return proyecto_dao.crear_linea_base(gerente_id, proyecto)