def test_it(self): dao = ProyectoDAO(None) rol_dao = RolFinalDAO(None) autor = rol_dao.get_by_id(1) lider = rol_dao.get_by_id(1) nuevo_proyecto = Proyecto("Test", autor, 1, "Prueba", lider, "Prueba", "hoy", "hoy") dao.crear(nuevo_proyecto) dao = FaseDAO(None) nueva_fase = Fase("Testeando", nuevo_proyecto, 2, "Prueba", "Prueba", "0") dao.crear(nueva_fase) dao = AtributoFaseDAO(None) nuevo_atributo = AtributoFase("Atributo de prueba", nueva_fase, "Prueba", "100") dao.crear(nuevo_atributo) direccion = '/atributofase/' + str(nuevo_atributo.id) atributo = { "_nombre": "Atributo 1", "id": nuevo_atributo.id, "_fase_id": nueva_fase.id, "_descripcion": "Prueba", "_valor": "100" } res = self.testapp.delete(direccion, params=json.dumps(atributo)) print "Testeando eliminar atributo de fase" self.failUnless('sucess' in res.body)
def test_it(self): dao = ProyectoDAO(None) rol_dao = RolFinalDAO(None) autor = rol_dao.get_by_id(1) lider = rol_dao.get_by_id(1) nuevo_proyecto = Proyecto("Test", autor, 1, "Prueba", lider, "Prueba", "hoy", "hoy") dao.crear(nuevo_proyecto) direccion = '/deleteProyectos/' + str(nuevo_proyecto.id) proyecto = { "_nombre": "Prueba", "_autor": 1, "_autor_id": 1, "id": nuevo_proyecto.id, "_prioridad": 1, "_estado": "Prueba", "_lider_id": 1, "lider_nombre": 1, "_nota": "Prueba", "_fecha_creacion": "2012-06-18, 3:46 pm", "_fecha_modificacion": "2012-06-18, 3:46 pm" } res = self.testapp.delete(direccion, params=json.dumps(proyecto)) print "Testeando eliminar proyectos" self.failUnless('sucess' in res.body)
def get_proyectos(request): proyectoDAO = ProyectoDAO(request); entidades = proyectoDAO.get_all(); p = Pickler(); lista = []; for entidad in entidades: lista.append(p.flatten(ProyectoDTO(entidad))); j_string = p.flatten(lista) a_ret = json.dumps({'sucess': 'true', 'entidades':j_string}) return Response(a_ret)
def create_proyectos(request): """ @summary: Maneja las solicitudes para crear los proyectos. El proyecto nuevo se crea con una fase por defecto, a la cual se le asocia un tipo de item por defecto @param request: Solicitud de creacion. @return: Retorna el proyecto creado. """ u = Unpickler() entidad = u.restore(request.json_body) dao = ProyectoDAO(request) rol_dao = RolFinalDAO(request) rol = rol_dao.get_query().filter( RolFinal._id == entidad["_autor_id"]).first() lider = rol_dao.get_query().filter( RolFinal._id == entidad["_lider_id"]).first() nuevo_proyecto = Proyecto(entidad["_nombre"], rol, entidad["_prioridad"], entidad["_estado"], lider, entidad["_nota"], entidad["_fecha_creacion"], entidad["_fecha_modificacion"]) dao.crear(nuevo_proyecto) #le creamos una fase por defecto nombre_fase = "Fase por defecto de " + entidad["_nombre"] orden = 1 comentario = "Fase creada por defecto" estado = "PENDIENTE" color = "0" nueva_fase = Fase(nombre_fase, nuevo_proyecto, orden, comentario, estado, color) dao_fase = FaseDAO(request) dao_fase.crear(nueva_fase) asignar_permiso_rol_proyecto(request, nuevo_proyecto._autor, nuevo_proyecto) asignar_permiso_rol_proyecto(request, nuevo_proyecto._lider, nuevo_proyecto) #Le asociamos un tipo de item por defecto a esa fase por defecto # dao_tipo_item = TipoItemDAO(request) # tipo_item = dao_tipo_item.get_by_id(1) # nuevo_tipo_fase = TipoFase(nueva_fase,tipo_item) # dao_tipo_fase = TipoFaseDAO(request) # dao_tipo_fase.crear(nuevo_tipo_fase) lista = [] p = Pickler() a = ProyectoDTO(nuevo_proyecto) lista.append(p.flatten(a)) j_string = p.flatten(lista) a_ret = json.dumps({'sucess': 'true', 'proyectos': j_string}) return Response(a_ret)
def importar(request): u= Unpickler() entidad = u.restore(request.json_body); id_proyecto = entidad['id_proyecto'] proyectoDao = ProyectoDAO(request) proyecto = proyectoDao.get_by_id(id_proyecto) tipoItemDao = TipoItemDAO(request); for id_tipo in entidad['_tipos']: tipoItem = tipoItemDao.get_by_id(id_tipo) nueva_entidad = TipoItem(tipoItem._nombre, tipoItem._comentario, tipoItem._color, tipoItem._prefijo,tipoItem._condicionado,proyecto) tipoItemDao.crear(nueva_entidad) a_ret = json.dumps({'sucess': 'true', 'tipos': entidad}) return Response(a_ret)
def test_it(self): dao = ProyectoDAO(None) rol_dao = RolFinalDAO(None) autor = rol_dao.get_by_id(1) lider = rol_dao.get_by_id(1) nuevo_proyecto = Proyecto("Test", autor, 1, "Prueba", lider, "Prueba", "hoy", "hoy") dao.crear(nuevo_proyecto) dao = FaseDAO(None) nueva_fase = Fase("Testeando", nuevo_proyecto, 2, "Prueba", "Prueba", "0") dao.crear(nueva_fase) direccion = '/fases/' + str(nueva_fase.id) fase = { "_nombre": "Fase 3", "id": nueva_fase.id, "_proyecto_id": 69, "_orden": 3, "_comentario": "Prueba", "_estado": "Pendiente", "_color": "008080" } res = self.testapp.delete(direccion, params=json.dumps(fase)) print "Testeando eliminar fases" self.failUnless('sucess' in res.body)
def test_it(self): dao = ProyectoDAO(None) rol_dao = RolFinalDAO(None) autor = rol_dao.get_by_id(1) lider = rol_dao.get_by_id(1) nuevo_proyecto = Proyecto("Test", autor, 1, "Prueba", lider, "Prueba", "hoy", "hoy") dao.crear(nuevo_proyecto) dao = FaseDAO(None) nueva_fase = Fase("Testeando", nuevo_proyecto, 2, "Prueba", "Prueba", "0") dao.crear(nueva_fase) esquemaDao = EsquemaDAO(None) nuevo_esquema = Esquema("Esquema", "_descripcion", "_etiqueta", "_color", nueva_fase.id) esquemaDao.crear(nuevo_esquema) nueva_entidad = { "_nombre": "Prueba", "_descripcion": "prueba", "_tipo": "numerico", "_valor": "100", "_esquema_id": nuevo_esquema.id } res = self.testapp.post('/atributosEsquemas', params=json.dumps(nueva_entidad)) print "Testeando crear atributos de esquema" self.failUnless('sucess' in res.body)
def test_it(self): dao = ProyectoDAO(None) rol_dao = RolFinalDAO(None) autor = rol_dao.get_by_id(1) lider = rol_dao.get_by_id(1) nuevo_proyecto = Proyecto("Test", autor, 1, "Prueba", lider, "Prueba", "hoy", "hoy") dao.crear(nuevo_proyecto) dao = FaseDAO(None) nueva_fase = Fase("Testeando", nuevo_proyecto, 2, "Prueba", "Prueba", "0") dao.crear(nueva_fase) esquemaDao = EsquemaDAO(None) nueva_entidad = Esquema("Esquema", "_descripcion", "_etiqueta", "_color", nueva_fase.id) esquemaDao.crear(nueva_entidad) direccion = '/esquemas/' + str(nueva_entidad.id) esquema = { "id": nueva_entidad.id, "_nombre": "Esquema Prueba", "_descripcion": "Prueba", "_etiqueta": "Esquema", "_color": "0", "_fase_id": nueva_fase.id } res = self.testapp.delete(direccion, params=json.dumps(esquema)) print "Testeando eliminar esquemas" self.failUnless('sucess' in res.body)
def test_it(self): dao = ProyectoDAO(None) rol_dao = RolFinalDAO(None) autor = rol_dao.get_by_id(1) lider = rol_dao.get_by_id(1) nuevo_proyecto = Proyecto("Test", autor, 1, "Prueba", lider, "Prueba", "hoy", "hoy") dao.crear(nuevo_proyecto) dao = FaseDAO(None) nueva_fase = Fase("Testeando", nuevo_proyecto, 2, "Prueba", "Prueba", "0") dao.crear(nueva_fase) esquema = { "_nombre": "Esquema Prueba", "_descripcion": "Prueba", "_etiqueta": "Esquema", "_color": "0", "_fase_id": nueva_fase.id } res = self.testapp.post('/esquemas', params=json.dumps(esquema)) print "Testeando crear esquema" self.failUnless('sucess' in res.body)
def delete_proyectos(request): """ @summary: Maneja las solicitudes para eliminar proyectos. @param request: Solicitud de eliminacion. @return: Retorna true en caso de exito. """ u = Unpickler() entidad = u.restore(request.json_body) dao = ProyectoDAO(request) proyecto = dao.get_by_id(entidad["id"]) fase_dao = FaseDAO(request) fases = fase_dao.get_query().filter( Fase._proyecto_id == proyecto._id).all() for fase in fases: fase_dao.borrar(fase) dao.borrar(proyecto) return Response(json.dumps({'sucess': 'true'}))
def update_proyectos(request): """ @summary: Maneja las solicitudes para actualizacion de proyectos. @param request: Solicitud de modificacion. @return: Retorna el proyecto modificado. """ u = Unpickler() dao = ProyectoDAO(request) entidad = u.restore(request.json_body) vieja = dao.get_by_id(entidad["id"]) vieja._nombre = entidad["_nombre"] rol_dao = RolFinalDAO(request) # if (isinstance(entidad["_autor"], dict)): # rol = rol_dao.get_query().filter(RolFinal._id == entidad["_autor"]["_id"]).first() # else: rol = rol_dao.get_query().filter( RolFinal._id == entidad["_autor_id"]).first() vieja._autor = rol vieja._prioridad = entidad["_prioridad"] vieja._estado = entidad["_estado"] lider_dao = RolFinalDAO(request) # if (isinstance(entidad["_lider"], dict)): # lider = lider_dao.get_query().filter(RolFinal._id == entidad["_lider"]["_id"]).first() # else: lider = lider_dao.get_query().filter( RolFinal._id == entidad["_lider_id"]).first() vieja._lider = lider vieja._nota = entidad["_nota"] vieja._fecha_creacion = entidad["_fecha_creacion"] vieja._fecha_modificacion = entidad["_fecha_modificacion"] asignar_permiso_rol_proyecto(request, vieja._autor, vieja) asignar_permiso_rol_proyecto(request, vieja._lider, vieja) dao.update(vieja) lista = [] p = Pickler() a = ProyectoDTO(vieja) lista.append(p.flatten(a)) j_string = p.flatten(lista) return Response(json.dumps({'sucess': 'true', 'proyectos': j_string}))
def create_tipo(request): if (request.method == 'POST'): u = Unpickler() entidad = u.restore(request.json_body); tipoItemDao = TipoItemDAO(request); proyectoDao = ProyectoDAO(request) proyecto = proyectoDao.get_by_id(entidad["_proyecto_id"]) topos_tipos = tipoItemDao.get_query().filter(TipoItem._proyecto_id == entidad["_proyecto_id"]).all() for tipo in topos_tipos: if tipo._prefijo == entidad["_prefijo"]: return Response(json.dumps({'sucess': 'false' , 'lista':'Prefijo ya Asignado'})) nueva_entidad = TipoItem(entidad["_nombre"], entidad["_comentario"], entidad["_color"], entidad["_prefijo"], entidad["_condicionado"],proyecto) tipoItemDao.crear(nueva_entidad); lista = [] p = Pickler() a = TipoItemDTO(nueva_entidad) lista.append(p.flatten(a)) j_string = p.flatten(lista) return Response(json.dumps({'sucess': 'true' , 'lista':j_string}))
def test_it(self): dao = ProyectoDAO(None) rol_dao = RolFinalDAO(None) autor = rol_dao.get_by_id(1) lider = rol_dao.get_by_id(1) nuevo_proyecto = Proyecto("Test", autor, 1, "Prueba", lider, "Prueba", "hoy", "hoy") dao.crear(nuevo_proyecto) fase = { "_nombre": "Fase 3", "id": 0, "_proyecto_id": nuevo_proyecto.id, "_orden": 3, "_comentario": "Prueba", "_estado": "Pendiente", "_color": "008080" } res = self.testapp.post('/fases', params=json.dumps(fase)) print "Testeando crear fases" self.failUnless('sucess' in res.body)
def get_dao(self, clase, request): if clase not in self.daos: if clase == Item: self.daos[Item] = ItemDAO(request) if clase == Fase : self.daos[Fase] = FaseDAO(request) if clase == Proyecto : self.daos[Proyecto] = ProyectoDAO(request) if clase == LineaBase : self.daos[LineaBase] = LineaBaseDAO(request) if clase == Esquema : self.daos[Esquema] = EsquemaDAO(request) return self.daos[clase]
def read_proyectos(request): """ @summary: Maneja las solicitudes para recuperar los proyectos. @param request: Solicitud de recuperacion. @return: Retorna todos los proyectos. """ validador = Validador(request) rd = ProyectoDAO(request) entidades = rd.get_all() lista = [] p = Pickler() for entidad in entidades: buleano = validador.es_visible(entidad) if buleano == True: a = ProyectoDTO(entidad) lista.append(p.flatten(a)) j_string = p.flatten(lista) a_ret = json.dumps({'sucess': 'true', 'proyectos': j_string}) return Response(a_ret)
def test_it(self): dao = ProyectoDAO(None) rol_dao = RolFinalDAO(None) autor = rol_dao.get_by_id(1) lider = rol_dao.get_by_id(1) nuevo_proyecto = Proyecto("Test", autor, 1, "Prueba", lider, "Prueba", "hoy", "hoy") dao.crear(nuevo_proyecto) dao = FaseDAO(None) nueva_fase = Fase("Testeando", nuevo_proyecto, 2, "Prueba", "Prueba", "0") dao.crear(nueva_fase) esquemaDao = EsquemaDAO(None) nuevo_esquema = Esquema("Esquema", "_descripcion", "_etiqueta", "_color", nueva_fase.id) esquemaDao.crear(nuevo_esquema) atributoEsquemaDao = AtributoEsquemaDAO(None) nuevo_atributo = AtributoEsquema("_nombre", "_descripcion", "_tipo", "_valor", nuevo_esquema.id) atributoEsquemaDao.crear(nuevo_atributo) atributo = { "id": nuevo_atributo.id, "_nombre": "Prueba", "_descripcion": "prueba", "_tipo": "numerico", "valor": 10, "esquema_id": nuevo_esquema.id } direccion = '/atributosEsquemas/' + str(nuevo_atributo.id) res = self.testapp.put(direccion, params=json.dumps(atributo)) print "Testeando modificar atributo de esquemas" self.failUnless('sucess' in res.body)
def obtener_crear_fases(request): """ @summary: Maneja las solicitudes para obtener y crear fases. Las fases nuevas soportan por defecto un tipo de item. @param request: Get para recuperar y Post para crear. @return: En caso de recibir un Get retorna todas las fases de un proyecto en especifico. En caso de recibir un Post retorna la fase creada. """ if (request.method == 'GET'): proyecto_id = request.GET.get('id') fase_id = request.GET.get('fase_id') rd = FaseDAO(request) lista = []; p = Pickler(False, None) #Codigo de fede if (fase_id != None and fase_id != ""): fase_actual = rd.get_by_id(fase_id) entidad = rd.get_query().filter(Fase._proyecto_id == proyecto_id, Fase._orden < fase_actual._orden).order_by(Fase._orden.desc()).first() if (entidad != None): entidadLinda = FaseLinda(entidad._id, entidad._nombre, entidad._proyecto_id, entidad._orden, entidad._comentario, entidad._estado, entidad._color) lista.append(p.flatten(entidadLinda)) elif (proyecto_id != None and proyecto_id != ""): #Codigo de leo #recuperamos todas las fases del proyecto entidades = rd.get_query().filter(Fase._proyecto_id == proyecto_id).all() for entidad in entidades: entidadLinda = FaseLinda(entidad._id, entidad._nombre, entidad._proyecto_id, entidad._orden, entidad._comentario, entidad._estado, entidad._color) lista.append(p.flatten(entidadLinda)) j_string = p.flatten(lista) a_ret = json.dumps({'sucess': 'true', 'fases':j_string}) return Response(a_ret) else: #Recibimos un POST u = Unpickler() entidad = u.restore(request.json_body); dao = ProyectoDAO(request) proyecto = dao.get_by_id(entidad["_proyecto_id"]) dao = FaseDAO(request) nueva_fase = Fase(entidad["_nombre"], proyecto, entidad["_orden"], entidad["_comentario"], entidad["_estado"], entidad["_color"]) dao.crear(nueva_fase) #le asociamos el tipo de item # dao_tipo_item = TipoItemDAO(request) # tipo_item = dao_tipo_item.get_by_id(1) # nuevo_tipo_fase = TipoFase(nueva_fase,tipo_item) # dao_tipo_fase = TipoFaseDAO(request) # dao_tipo_fase.crear(nuevo_tipo_fase) lista = [] p = Pickler() lista.append(p.flatten(nueva_fase)) j_string = p.flatten(lista) a_ret = json.dumps({'sucess': 'true', 'fases':j_string}) return Response(a_ret)
def test_it(self): dao = ProyectoDAO(None) rol_dao = RolFinalDAO(None) autor = rol_dao.get_by_id(1) lider = rol_dao.get_by_id(1) nuevo_proyecto = Proyecto("Test", autor, 1, "Prueba", lider, "Prueba", "hoy", "hoy") dao.crear(nuevo_proyecto) dao = FaseDAO(None) nueva_fase = Fase("Testeando", nuevo_proyecto, 2, "Prueba", "Prueba", "0") dao.crear(nueva_fase) dao = TipoItemDAO(None) tipo = dao.get_by_id(1) dao = TipoFaseDAO(None) nuevo_tipo_fase = TipoFase(nueva_fase, tipo) dao.crear(nuevo_tipo_fase) direccion = '/tipofase/' + str(nuevo_tipo_fase.id) tipo_fase = { "id": nuevo_tipo_fase.id, "_tipo": 2, "tipo_nombre": "Tipo 1", "_fase": 70 } res = self.testapp.delete(direccion, params=json.dumps(tipo_fase)) print "Testeando eliminar asociacion entre tipo de item y fase" self.failUnless('sucess' in res.body)
def actualizarEstadosFaseyProyecto(self, item): fase_dao = FaseDAO(self._request) proyecto_dao = ProyectoDAO(self._request) fase = fase_dao.get_by_id(item._fase_id) proyecto = proyecto_dao.get_by_id(fase._proyecto_id) if item._estado == 'ACTIVO': items_fase = self.get_items_fase(fase._id) cambiar = True for item_fase in items_fase: if item_fase._estado == 'REVISION' or item_fase._estado == 'COMPROMETIDO': cambiar = False if (cambiar == True): if fase._estado != 'ACTIVA': fase_dao.update_estado_entidad(fase._id, 'ACTIVA') if proyecto._estado != 'ACTIVO': proyecto_dao.update_estado_entidad(proyecto._id, 'ACTIVO') elif item._estado == 'REVISION' or item._estado == 'COMPROMETIDO': if fase._estado != 'COMPROMETIDA': fase_dao.update_estado_entidad(fase._id, 'COMPROMETIDA') if proyecto._estado != 'COMPROMETIDO': proyecto_dao.update_estado_entidad(proyecto._id, 'COMPROMETIDO') elif item._estado == 'BLOQUEADO' or item._estado == 'APROBADO': items_fase = self.get_items_fase(fase._id) cambiarFinalizado = 0 cambiarActivo = 0 for item_fase in items_fase: if item_fase._estado == 'BLOQUEADO' or item_fase._estado == 'APROBADO': cambiarFinalizado += 1 if item_fase._estado == 'ACTIVO' or item_fase._estado == 'APROBADO': cambiarActivo += 1 if (cambiarFinalizado == len(items_fase)): if fase._estado != 'FINALIZADA': fase_dao.update_estado_entidad(fase._id, 'FINALIZADA') if proyecto._estado != 'FINALIZADO': proyecto_dao.update_estado_entidad(proyecto._id, 'FINALIZADO') return if (cambiarActivo == len(items_fase)): if fase._estado != 'ACTIVA': fase_dao.update_estado_entidad(fase._id, 'ACTIVA') if proyecto._estado != 'ACTIVO': proyecto_dao.update_estado_entidad(proyecto._id, 'ACTIVO')