def actualizar_eliminar_fase(request): """ @summary: Maneja las solicitudes para actualizar y elimninar fases. Al eliminar la fase se eliminan sus atributos particulares y los tipos de items que soporta. @param request: Delete para eliminar y Put para modificar. @return: En caso de recibir un Put retorna la fase creada. En caso de recibir un Delete retorna true en caso de exito . """ if (request.method == 'DELETE'): u = Unpickler() entidad = u.restore(request.json_body); dao = FaseDAO(request) fase = dao.get_by_id(entidad["id"]) #eliminamos los atributos particulares de la fase atributo_fase_dao = AtributoFaseDAO(request) atributos = atributo_fase_dao.get_query().filter(AtributoFase._fase_id == fase._id).all(); for atributo in atributos: atributo_fase_dao.borrar(atributo); #eliminamos las asociaciones que puede tener con los tipos de items tipo_fase_dao = TipoFaseDAO(request) tipos = tipo_fase_dao.get_query().filter(TipoFase._fase_id == fase._id).all(); for tipo in tipos: tipo_fase_dao.borrar(tipo); dao.borrar(fase) return Response(json.dumps({'sucess': 'true'})) else: #Recibimos un PUT u = Unpickler() dao = FaseDAO(request) entidad = u.restore(request.json_body); vieja = dao.get_by_id(entidad["id"]) vieja._nombre = entidad["_nombre"] vieja._orden = entidad["_orden"] vieja._comentario = entidad["_comentario"] vieja._color = entidad["_color"] dao.update(vieja) lista = [] p = Pickler() lista.append(p.flatten(vieja)) j_string = p.flatten(lista) return Response(json.dumps({'sucess': 'true', 'fases':j_string}))
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'}))