示例#1
0
def actualizar_eliminar_atributofase(request):
    """
    @summary: Maneja las solicitudes para actualizar y elimninar atributos particulares de una fase.
    @param request: Delete para eliminar y Put para modificar.
    @return: En caso de recibir un Put retorna el atributo particular modificado.
        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 = AtributoFaseDAO(request)
        atributo = dao.get_by_id(entidad["id"])     
        dao.borrar(atributo)
        return Response(json.dumps({'sucess': 'true'}))

    else:
        #recibio un put
        u = Unpickler()
        dao = AtributoFaseDAO(request)
        entidad = u.restore(request.json_body);
        vieja = dao.get_by_id(entidad["id"])
        vieja._nombre = entidad["_nombre"]
        vieja._descripcion = entidad["_descripcion"]
        vieja._valor = entidad["_valor"]
        
        dao.update(vieja)
        
        lista = []
        p = Pickler()
        lista.append(p.flatten(vieja))
        j_string = p.flatten(lista)
        return Response(json.dumps({'sucess': 'true', 'atributofase':j_string}))
示例#2
0
def actualizar_eliminar_unidad_trabajo(request):
    """
    @summary: Maneja las solicitudes para eliminar y actualizar unidades de trabajo.
    @param request: Delete para eliminar y Put para modificar.
    @return: Retorna la unidad de trabajo modificada en caso de recibir un Put.
        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 = UnidadTrabajoDAO(request)
        unidad = dao.get_by_id(entidad["id"])
        
        id_unidad = entidad['id']
        
        unidad_item_dao = ItemUnidadDAO(request)
        items = unidad_item_dao.get_query().filter(ItemUnidadTrabajo._unidad_id == id_unidad).first()
        
        if items != None:
            return Response(json.dumps({'sucess': 'false' , "message": "La unidad de trabajo no se puede eliminar,debido a que esta asignado a un item" }))
        
        dao_unidad_recurso = UnidadTrabajoRecursoDAO(request)
        entidades = dao_unidad_recurso.get_query().filter(UnidadTrabajo_Recurso._unidad_trabajo_id==id_unidad).all();
        for unidad_recurso in entidades:
            dao_unidad_recurso.borrar(unidad_recurso)
        
        dao.borrar(unidad)
        return Response(json.dumps({'sucess': 'true'}))
    else:
        #Recibio un Put
        u= Unpickler()
        dao = UnidadTrabajoDAO(request)
        entidad = u.restore(request.json_body);
        
        unidad_item_dao = ItemUnidadDAO(request)
        items = unidad_item_dao.get_query().filter(ItemUnidadTrabajo._unidad_id == entidad["id"]).first()
        
        if items != None:
            return Response(json.dumps({'sucess': 'false' , "message": "La unidad de trabajo no se puede modificar,debido a que esta asignado a un item" }))
        
        vieja = dao.get_by_id(entidad["id"])
        vieja._nombre = entidad["_nombre"]
        vieja._etiqueta = entidad["_etiqueta"]
        vieja._descripcion = entidad["_descripcion"]
        vieja._color = entidad["_color"]
        
        dao.update(vieja)
        lista = []
        p = Pickler()
        lista.append(p.flatten(vieja))
        j_string = p.flatten(lista)
        a_ret = json.dumps({'sucess': 'true', 'unidadtrabajo':j_string})
        return Response(a_ret)
示例#3
0
def permisos_rest(request):
    if request.method == "POST":
        u = Unpickler()
        objeto = u.restore(request.json_body)
        permiso_dao = PermisosDAO(request)
        id_permiso = objeto["_permiso"]
        permiso = permiso_dao.get_by_id(id_permiso)
        rol_dao = RolDAO(request)
        id_rol = objeto["_rol"]
        rol = rol_dao.get_by_id(id_rol)

        objeto = PermisosRoles(permiso, rol)
        dao = PermisosRolesDAO(request)
        dao.crear(objeto)
        dto = PermisoRolDTO(objeto)
        p = Pickler()
        aRet = p.flatten(dto)
        return Response(json.dumps({'sucess': 'true', 'permisos': aRet}))
    if request.method == "DELETE":
        id = request.matchdict['id']
        dao = PermisosRolesDAO(request)
        entidad = dao.get_by_id(id)
        dao.borrar(entidad)
        return Response(json.dumps({'sucess': 'true'}))
    return ""
示例#4
0
def AG_item_esquema(request):
    if (request.method == 'GET'):
        rd = EsquemaItemDAO(request)
        esquema_id = request.GET.get('id')
        entidades = rd.get_query().filter(
            EsquemaItem._esquema_id == esquema_id).all()
        lista = []
        p = Pickler(True, None)
        for entidad in entidades:
            lista.append(p.flatten(entidad))
        j_string = p.flatten(lista)
        a_ret = json.dumps({'sucess': True, 'lista': j_string})
        return Response(a_ret)
    elif (request.method == 'POST'):
        u = Unpickler()
        entidad = u.restore(request.json_body)
        esquemaItemDao = EsquemaItemDAO(request)

        nueva_entidad = EsquemaItem(entidad["_esquema_id"],
                                    entidad["_item_id"])

        esquemaItemDao.crear(nueva_entidad)

        lista = []
        p = Pickler()
        lista.append(p.flatten(nueva_entidad))
        j_string = p.flatten(lista)

        return Response(json.dumps({'sucess': 'true', 'lista': j_string}))
示例#5
0
def AG_esquemas(request):
    if (request.method == 'GET'):
        rd = EsquemaDAO(request)
        fase_id = request.GET.get('id')
        entidades = rd.get_query().filter(Esquema._fase_id == fase_id).all()
        lista = []
        p = Pickler(True, None)
        #        val = Validador(request);
        for entidad in entidades:
            #            if val.es_visible(entidad):
            lista.append(p.flatten(entidad))
        j_string = p.flatten(lista)
        a_ret = json.dumps({'sucess': True, 'lista': j_string})
        return Response(a_ret)
    elif (request.method == 'POST'):
        u = Unpickler()
        entidad = u.restore(request.json_body)
        esquemaDao = EsquemaDAO(request)

        nueva_entidad = Esquema(entidad["_nombre"], entidad["_descripcion"],
                                entidad["_etiqueta"], entidad["_color"],
                                entidad["_fase_id"])

        esquemaDao.crear(nueva_entidad)

        lista = []
        p = Pickler()
        lista.append(p.flatten(nueva_entidad))
        j_string = p.flatten(lista)

        return Response(json.dumps({'sucess': 'true', 'lista': j_string}))
示例#6
0
def AG_atributos(request):
    if (request.method == 'GET'):
        rd = AtributoEsquemaDAO(request)
        esquema_id = request.GET.get('id')
        entidades = rd.get_query().filter(
            AtributoEsquema._esquema_id == esquema_id).all()
        lista = []
        p = Pickler(True, None)
        for entidad in entidades:
            lista.append(p.flatten(entidad))
        j_string = p.flatten(lista)
        a_ret = json.dumps({'sucess': True, 'lista': j_string})
        return Response(a_ret)
    elif (request.method == 'POST'):
        u = Unpickler()
        entidad = u.restore(request.json_body)
        atributoEsquemaDao = AtributoEsquemaDAO(request)

        nueva_entidad = AtributoEsquema(entidad["_nombre"],
                                        entidad["_descripcion"],
                                        entidad["_tipo"], entidad["_valor"],
                                        entidad["_esquema_id"])

        atributoEsquemaDao.crear(nueva_entidad)

        lista = []
        p = Pickler()
        lista.append(p.flatten(nueva_entidad))
        j_string = p.flatten(lista)

        return Response(json.dumps({'sucess': 'true', 'lista': j_string}))
示例#7
0
def asignar_recursos(request):
    """
    @summary: Se encarga de asignar recursos a la unidad de trabajo.
    @param request: La unidad de trabajo y los recursos.
    """  
    u= Unpickler()
    entidad = u.restore(request.json_body);
    id_unidad = entidad['id_unidad_trabajo']
    
    unidad_item_dao = ItemUnidadDAO(request)
    items = unidad_item_dao.get_query().filter(ItemUnidadTrabajo._unidad_id == id_unidad).first()
    
    if items != None:
        return Response(json.dumps({'sucess': 'false' , "message": "No se puede realizar la operacion debido a que la unidad de trabajo esta asignado a un item" }))
    
    dao_unidad_recurso = UnidadTrabajoRecursoDAO(request)
    entidades = dao_unidad_recurso.get_query().filter(UnidadTrabajo_Recurso._unidad_trabajo_id==id_unidad).all();
    for unidad_recurso in entidades:
        dao_unidad_recurso.borrar(unidad_recurso)
    
    for id_recurso in entidad['_recursos']:
        a_guardar = UnidadTrabajo_Recurso(id_unidad, id_recurso)
        dao_unidad_recurso.crear(a_guardar)
        
    a_ret = json.dumps({'sucess': 'true', 'recursos': entidad})
    
    return Response(a_ret)
示例#8
0
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}))
示例#9
0
def decode(string):
    """Converts the JSON string into a Python object.

    >>> str(decode('"my string"'))
    'my string'
    >>> decode('36')
    36
    """
    j = Unpickler()
    return j.restore(json.decode(string))
示例#10
0
def decode(string):
    """Converts the JSON string into a Python object.

    >>> str(decode('"my string"'))
    'my string'
    >>> decode('36')
    36
    """
    j = Unpickler()
    return j.restore(json.decode(string))
示例#11
0
    def decode_complex_obj(self, pairs):
        res_dict = {}
        for k, v in pairs:
            if "_date" in k or "_time" in k:
                v = self.decode_date(v)
            res_dict[k] = v
        context = Unpickler()
        res = context.restore(res_dict, reset=True)

        return res
示例#12
0
def BM_item_esquema(request):
    if (request.method == 'PUT'):
        u = Unpickler()
        entidad = u.restore(request.json_body)
        #id = request.params.matchdict['id']
        esquemaItemDao = EsquemaItemDAO(request)
        esquemaItem = esquemaItemDao.get_by_id(entidad["id"])
        esquemaItem._esquema_id = entidad["_esquema_id"]
        esquemaItem._item_id = entidad["_item_id"]
        esquemaItemDao.update(esquemaItem)
        return Response(json.dumps({'sucess': 'true'}))

    elif (request.method == 'DELETE'):
        u = Unpickler()
        entidad = u.restore(request.json_body)

        esquemaItemDao = EsquemaDAO(request)
        esquemaItem = esquemaItemDao.get_by_id(entidad["id"])
        esquemaItemDao.borrar(esquemaItem)
        return Response(json.dumps({'sucess': 'true'}))
示例#13
0
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)
示例#14
0
def obtener_crear_unidad_trabajo(request):
    """
    @summary: Maneja las solicitudes para obtener y crear unidad de trabajo.
    @param request: Get para recuperar y Post para crear.
    @return: Retorna todos las unidades de trabajo en caso de recibir un Get.
        Retorna la unidad creada en caso de recibir una unidad de trabajo
    """
    if (request.method == 'GET'):
        rd = UnidadTrabajoDAO(request)
        unidades = [];
        unidades = rd.get_all()
        item_id = request.GET.get('_item_id')
#        print item_id
        if (item_id !=None):
            item_dao = ItemDAO(request)
#            unidades = item_dao.get_unidades_disponibles(item_dao.get_by_id(item_id))
            #####################################
            ###La parte comentada de abajo, trae las unidades como le gusta a cocho,
            ###osea, con ese return se podra asignar a cualquier item la misma unidad de trabajo
            ###si es que ya no tiene una asignada
            #####################################
            itemUnidadDao = ItemUnidadDAO(request)
            unidadesAsignadas = itemUnidadDao.get_query().filter(ItemUnidadTrabajo._item_id == item_id).all()
            for unidadAsignada in unidadesAsignadas:
                for unidad in unidades:
                    if (unidad._id == unidadAsignada._unidad_id):
                        unidades.remove(unidad)            
        lista = [];
        p = Pickler()
        for entidad in unidades:
            lista.append(p.flatten(entidad))    
        j_string = p.flatten(lista)
        a_ret = json.dumps({'sucess': 'true', 'unidadtrabajo':j_string})    
        
        return Response(a_ret)
    else:
        #Recibio un Post
        u= Unpickler()
        entidad = u.restore(request.json_body);
        
        nueva_unidad_trabajo = UnidadTrabajo(entidad["_nombre"],entidad["_etiqueta"],entidad["_descripcion"],entidad["_color"])
        dao = UnidadTrabajoDAO(request)
            
        dao.crear(nueva_unidad_trabajo)
        
        lista = []
        p = Pickler()
        lista.append(p.flatten(nueva_unidad_trabajo))
        j_string = p.flatten(lista)
        a_ret = json.dumps({'sucess': 'true', 'unidadtrabajo':j_string})
    
        return Response(a_ret)
示例#15
0
def eliminar_tipofase(request):
    """
    @summary: Maneja las solicitudes elimninar soporte de tipos de item de una fase.
    @param request: Delete para eliminar.
    @return: Retorna true en caso de exito.
    """
    if (request.method == 'DELETE'):
        u = Unpickler()
        entidad = u.restore(request.json_body);
        dao = TipoFaseDAO(request)
        tipo_fase = dao.get_by_id(entidad["id"])     
        dao.borrar(tipo_fase)
        return Response(json.dumps({'sucess': 'true'}))        
示例#16
0
def editar_atributo_item(request):
    if (request.method == 'PUT'):
        u = Unpickler()
        
        entidad = u.restore(request.json_body);
        dao = ItemAtributoDAO(request)
        item_atributo = dao.get_by_id(entidad["id"])
        item_dao = ItemDAO(request)
        item_atributo._valor  = entidad["_valor"]
        
        dao.update(item_atributo);
        return Response(json.dumps({'sucess': 'true'}))
        
    elif (request.method == 'DELETE'):
        u = Unpickler()
        entidad = u.restore(request.json_body);
       
        dao = ItemAtributoDAO(request)
        item_unidad = dao.get_by_id(entidad["id"])
        dao.borrar(item_unidad)
        return Response(json.dumps({'sucess': 'true'}))
        
        
示例#17
0
def put_suscripcion(request):
    u = Unpickler()
    objeto = u.restore(request.json_body)
    dao = SuscripcionDAO(request)
    entidad = get_entidad_padre(request, objeto)
    rol = get_rol_final(request, objeto)
    a_editar = dao.get_by_id(request.matchdict['id_suscripcion'])
    a_editar._nombre = objeto['_nombre']
    a_editar._entidad_padre = entidad
    a_editar._rol = rol
    dao.update(a_editar)
    p = Pickler()
    aRet = p.flatten(entidad)
    return Response(json.dumps({'sucess': 'true'}))
示例#18
0
def delete_tipo(request):
    u = Unpickler()
    entidad = u.restore(request.json_body);
    
    tipoItemDao = TipoItemDAO(request);
    tipoItem = tipoItemDao.get_by_id(entidad["id"])
    
    rd = TipoFaseDAO(request)
    temp = rd.get_query().filter(TipoFase._tipo_id == entidad["id"]).first()
    if temp == None:
        tipoItemDao.borrar(tipoItem)
        return Response(json.dumps({'sucess': 'true'}))
    else:
        return Response(json.dumps({'sucess': 'false' , "message": "El tipo de item se encuentra asociado a una fase" }))
示例#19
0
def BM_esquemas(request):
    if (request.method == 'PUT'):
        u = Unpickler()
        entidad = u.restore(request.json_body)
        #id = request.params.matchdict['id']
        esquemaDao = EsquemaDAO(request)
        esquema = esquemaDao.get_by_id(entidad["id"])
        esquema._nombre = entidad["_nombre"]
        esquema._descripcion = entidad["_descripcion"]
        esquema._etiqueta = entidad["_etiqueta"]
        esquema._color = entidad["_color"]
        esquema._fase_id = entidad["_fase_id"]
        esquemaDao.update(esquema)
        return Response(json.dumps({'sucess': 'true'}))

    elif (request.method == 'DELETE'):
        u = Unpickler()
        entidad = u.restore(request.json_body)

        esquemaDao = EsquemaDAO(request)
        esquema = esquemaDao.get_by_id(entidad["id"])
        esquemaDao.borrar(esquema)
        return Response(json.dumps({'sucess': 'true'}))
示例#20
0
def BM_atributo(request):
    if (request.method == 'PUT'):
        u = Unpickler()
        entidad = u.restore(request.json_body);
        #id = request.params.matchdict['id']
        atributoTipoItemDAO = AtributoTipoItemDAO(request);
        atributoItem =  atributoTipoItemDAO.get_by_id(entidad["id"])
        atributoItem._tipo = entidad["_tipo"]
        atributoItem._valor = entidad["_valor"]
        atributoItem._descripcion = entidad["_descripcion"]
        atributoItem._opcional = entidad["_opcional"]
        atributoItem._defecto = entidad["_defecto"]
        atributoTipoItemDAO.update(atributoItem);
        return Response(json.dumps({'sucess': 'true'}))

    elif (request.method == 'DELETE'):                            
        u = Unpickler()
        entidad = u.restore(request.json_body);
       
        atributoItemDao = AtributoTipoItemDAO(request);
        atributo = atributoItemDao.get_by_id(entidad["id"])
        atributoItemDao.borrar(atributo)
        return Response(json.dumps({'sucess': 'true'}))
示例#21
0
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)
示例#22
0
def AG_atributos_tipos_item(request): 
    if (request.method == 'GET'):
        if request.GET.get('_item_id') != None:
            item_id = request.GET.get('_item_id');
            itemDAO = ItemDAO(request)
            item = itemDAO.get_ultima_version_item_by_id(item_id);
            atributoTipoItemDAO = AtributoTipoItemDAO(request)
            atributosTipoItem = atributoTipoItemDAO.get_atributos_by_tipo_id(item._tipo_item_id)
    
                
            dao = ItemAtributoDAO(request) 
            entidades = dao.get_query().filter(ItemAtributo._item_id == item._id).all()
            p = Pickler()
            aRet = []
            aRet = atributosTipoItem
            if (request.GET.get('_no_definidos') == "true"):
                for ent in entidades:
                    for atributo in atributosTipoItem:
                        if ent._atributo_id == atributo._id:
                            aRet.remove(atributo);
            entidades = aRet
        else:        
            rd = AtributoTipoItemDAO(request)
            entidades = rd.get_atributos_by_tipo_id(request.GET.get('id'))
        lista = [];
        p = Pickler(True, None)
        for entidad in entidades:
            lista.append(p.flatten(entidad))
        j_string = p.flatten(lista)
        a_ret = json.dumps({'sucess': True, 'lista':j_string})
        return Response(a_ret)
    elif (request.method == 'POST'):
        u = Unpickler()
        entidad = u.restore(request.json_body);
        atributoItemDao = AtributoTipoItemDAO(request);
        
        nueva_entidad = AtributoTipoItem(entidad["_tipo"], entidad["_valor"], entidad["_descripcion"], entidad["_opcional"], entidad["_defecto"], entidad["_tipo_item_id"])
        
        atributoItemDao.crear(nueva_entidad);
        
        lista = []
        p = Pickler()
        lista.append(p.flatten(nueva_entidad))
        j_string = p.flatten(lista)
        
        return Response(json.dumps({'sucess': 'true', 'lista':j_string}))
示例#23
0
def get_privilegios(request):
    """Metodo que maneja las llamadas para privilegios
        - Retorna una lista si se envia GET
        - Agrega si se envia POST
        - Modifica si se envia PUT
        - Elimina si se envia DELETE
    """
    if (request.method == 'GET'):
        id_rol = request.GET.get('id_rol')
        dao = RolPrivilegioDAO(request)
        entidades = dao.get_query().filter(
            RolPrivilegio._rol_id == id_rol).all()
        lista = []
        p = Pickler()
        for entidad in entidades:
            n_entidad = RolPrivilegioDTO(entidad)
            lista.append(p.flatten(n_entidad))

        j_string = p.flatten(lista)
        a_ret = json.dumps({'sucess': 'true', 'privilegios': j_string})
        return Response(a_ret)

    if (request.method == 'POST'):
        u = Unpickler()
        #{"id":0,"_entidad":1,"_privilegio":1,"_permitir":true,"_rol":2}
        objeto = u.restore(request.json_body)
        if (objeto['_entidad'] == ''):
            entidad = None
        else:
            entidad = EntidadPadreDAO(request).get_by_id(objeto['_entidad'])
        privilegio = PrivilegioDAO(request).get_by_id(objeto['_privilegio'])
        rol = RolDAO(request).get_by_id(objeto['_rol'])
        nuevo = RolPrivilegio(privilegio, entidad, rol, objeto['_permitir'])
        dao = RolPrivilegioDAO(request)
        dao.crear(nuevo)

        p = Pickler()
        aRet = p.flatten(nuevo)
        return Response(json.dumps({'sucess': 'true', 'privilegios': aRet}))

    if (request.method == 'DELETE'):
        id_privilegio = request.matchdict['id_privilegio']
        dao = RolPrivilegioDAO(request)
        entidad = dao.get_by_id(id_privilegio)
        dao.borrar(entidad)
        return Response(json.dumps({'sucess': 'true'}))
示例#24
0
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'}))
示例#25
0
def post_suscripcion(request):
    u = Unpickler()
    objeto = u.restore(request.json_body)
    dao = SuscripcionDAO(request)
    if objeto['_entidad_padre'] == None:
        entidad_padre = None
    else:
        entidad_padre = EntidadPadreDAO(request).get_by_id(
            objeto['_entidad_padre'])
    if objeto['_rol_final'] == None:
        rol = None
    else:
        rol = RolFinalDAO(request).get_by_id(objeto['_rol_final'])
    entidad = Suscripcion(objeto['_nombre'], entidad_padre, rol)
    dao.crear(entidad)
    p = Pickler()
    aRet = p.flatten(entidad)
    return Response(json.dumps({'sucess': 'true', 'suscripciones': aRet}))
示例#26
0
def update_tipo(request):
    u = Unpickler()
    entidad = u.restore(request.json_body);    
    tipoItemDao = TipoItemDAO(request);
    tipoItem = tipoItemDao.get_by_id(entidad["id"])
    if (isinstance(tipoItem, TipoItem)):
            tipoItem._nombre = entidad["_nombre"]
            tipoItem._comentario = entidad["_comentario"]
            tipoItem._color = entidad["_color"]
            tipoItem._prefijo = entidad["_prefijo"]
            tipoItem._condicionado = entidad["_condicionado"]
            tipoItemDao.update(tipoItem);
            lista = []
            p = Pickler()
            a = TipoItemDTO(tipoItem)
            lista.append(p.flatten(a))
            j_string = p.flatten(lista)
            return Response(json.dumps({'sucess': 'true', 'lista':j_string}))
示例#27
0
def rest(request):

    if (request.method == 'POST'):
        try:
            u = Unpickler()
            objeto = u.restore(request.json_body)
            if (objeto['_fase'] == ''):
                raise FaseNoEncontradaException()
            fase_dao = FaseDAO(request)
            fase = fase_dao.get_by_id(objeto['_fase'])

            if (objeto['_items'] == None or objeto['_items'] == ''):
                raise NoItemLineaBaseException()
            item_dao = ItemDAO(request)
            items = []
            for item_id in objeto['_items']:
                items.append(item_dao.get_by_id(item_id))

            dao_item = ItemDAO(request)
            nItems = []
            for item in items:
                n_item = Item(item._item_id, item._nombre, item._tipo_item,
                              item._fase, item._duracion, item._descripcion,
                              item._condicionado, item._version + 1,
                              "BLOQUEADO", item._fecha_inicio,
                              item._completado, item._padre_item_id,
                              item._antecesor_item_id, item._color)
                dao_item.crear(n_item)
                nItems.append(n_item)
                actualizar_referencias_item(n_item, item_dao, item._id, False)
                item_dao.actualizarEstadosFaseyProyecto(n_item)
                item_dao.actualizarReferenciasItemNuevaVersion(n_item._id)

            linea_base = LineaBase(objeto['_nombre'], objeto['_descripcion'],
                                   fase, nItems)
            dao = LineaBaseDAO(request)
            dao.crear(linea_base)
            p = Pickler()
            aRet = p.flatten(linea_base)
            return Response(json.dumps({'sucess': 'true', 'entidades': aRet}))
        except FaseNoEncontradaException, e:
            print e
            return Response(json.dumps({'sucess': 'false'}))
        return Response(json.dumps({'sucess': 'false'}))
示例#28
0
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}))
示例#29
0
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}))
示例#30
0
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)
示例#31
0
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)