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 obtener_crear_tipofase(request): """ @summary: Maneja las solicitudes para obtener y asociar tipos de items a una fase en particular. @param request: Get para recuperar y Post para crear. @return: En caso de recibir un Get retorna todos los tipos de items que soporta una fase en especifico. En caso de recibir un Post asocia un tipo de item a una fase. """ if (request.method == 'GET'): id = request.GET.get('id') rd = TipoFaseDAO(request) entidades = rd.get_query().filter(TipoFase._fase_id == id).all() lista = []; p = Pickler() for entidad in entidades: a = TipoFaseLindos(entidad._id, entidad._fase._id, entidad._tipo._id, entidad._tipo._nombre) lista.append(p.flatten(a)) j_string = p.flatten(lista) a_ret = json.dumps({'sucess': 'true', 'tipofase':j_string}) return Response(a_ret) elif (request.method == 'POST'): u = Unpickler() entidad = u.restore(request.json_body); dao = FaseDAO(request) fase = dao.get_by_id(entidad["_fase"]) dao = TipoItemDAO(request) tipo = dao.get_by_id(entidad["_tipo"]) dao = TipoFaseDAO(request) nuevo_tipo_fase = TipoFase(fase, tipo) dao.crear(nuevo_tipo_fase) lista = [] p = Pickler() a = TipoFaseLindos(nuevo_tipo_fase._id, nuevo_tipo_fase._fase._id, nuevo_tipo_fase._tipo._id, nuevo_tipo_fase._tipo._nombre) lista.append(p.flatten(a)) j_string = p.flatten(lista) a_ret = json.dumps({'sucess': 'true', 'tipofase' : j_string}) return Response(a_ret)
def obtener_crear_atributofase(request): """ @summary: Maneja las solicitudes para obtener y crear atributos particulares de una fase. @param request: Get para recuperar y Post para crear. @return: En caso de recibir un Get retorna todos los atributos particulares de una fase en especifico. En caso de recibir un Post retorna el atributo particular creado. """ if (request.method == 'GET'): id = request.GET.get('id') rd = AtributoFaseDAO(request) entidades = rd.get_query().filter(AtributoFase._fase_id == id).all() lista = []; p = Pickler() for entidad in entidades: lista.append(p.flatten(entidad)) j_string = p.flatten(lista) a_ret = json.dumps({'sucess': 'true', 'atributofase':j_string}) return Response(a_ret) else: #recibio un Post u = Unpickler() entidad = u.restore(request.json_body); dao = FaseDAO(request) fase = dao.get_by_id(entidad["_fase_id"]) dao = AtributoFaseDAO(request) nuevo_atributo = AtributoFase(entidad["_nombre"], fase, entidad["_descripcion"], entidad["_valor"]) dao.crear(nuevo_atributo) lista = [] p = Pickler() lista.append(p.flatten(nuevo_atributo)) j_string = p.flatten(lista) a_ret = json.dumps({'sucess': 'true', 'atributofase':j_string}) return Response(a_ret)