Beispiel #1
0
    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)
Beispiel #2
0
 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)
Beispiel #3
0
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)
Beispiel #4
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)
Beispiel #5
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)
Beispiel #6
0
    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)
Beispiel #7
0
    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)
Beispiel #8
0
    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)
Beispiel #9
0
    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)
Beispiel #10
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'}))
Beispiel #11
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}))
Beispiel #12
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}))
Beispiel #13
0
    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)
Beispiel #14
0
 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]
Beispiel #15
0
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)
Beispiel #16
0
    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)
Beispiel #17
0
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)
Beispiel #18
0
    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)
Beispiel #19
0
    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')