Beispiel #1
0
 def nuevo_rol_desde_plantilla(cls, plantilla=None, id_plantilla=None, id=None):
     """
     Crea un rol a partir de una plantilla
     
     @param plantilla: rol del tipo plantilla.
     @param id_plantilla: id del rol del tipo plantilla.
     @param id: identificador con el qué asociar al rol.
     """
     base_query = DBSession.query(Rol)
     if (id_plantilla):
         plantilla = base_query.filter(Rol.id_rol == int(id_plantilla)).first()
         
     rol = Rol()
     rol.nombre_rol = plantilla.nombre_rol
     rol.descripcion = plantilla.descripcion
     if (plantilla.tipo == u"Plantilla proyecto"):
         rol.tipo = u"Proyecto"
         rol.id_proyecto = id
     elif (plantilla.tipo == u"Plantilla fase"):
         rol.tipo = u"Fase"
         rol.id_fase = id
     elif (plantilla.tipo == u"Plantilla tipo ítem"):
         rol.tipo = u"Tipo de Ítem"
         rol.id_tipo_item = id
     
     for perm in plantilla.permisos:
         perm.roles.append(rol)
           
     DBSession.add(rol)
     DBSession.flush()
     rol.codigo = Rol.generar_codigo(rol)
     
     return rol
Beispiel #2
0
 def setUp(self):
     """Prepare model test fixture."""
     try:
         new_attrs = {}
         new_attrs.update(self.attrs)
         new_attrs.update(self.do_get_dependencies())
         self.obj = self.klass(**new_attrs)
         DBSession.add(self.obj)
         DBSession.flush()
         return self.obj
     except:
         DBSession.rollback()
         raise
Beispiel #3
0
 def setUp(self):
     """Prepare model test fixture."""
     try:
         new_attrs = {}
         new_attrs.update(self.attrs)
         new_attrs.update(self.do_get_dependencies())
         self.obj = self.klass(**new_attrs)
         DBSession.add(self.obj)
         DBSession.flush()
         return self.obj
     except:
         DBSession.rollback()
         raise
Beispiel #4
0
    def post(self, *args, **kw):
        if "sprox_id" in kw:
            del kw["sprox_id"]

        proy = Proyecto(**kw)
        DBSession.add(proy)
        DBSession.flush()
        proy.codigo = Proyecto.generar_codigo(proy)

        #Creamos el rol miembro  y lider de proyecto para este proyecto.
        plant_l = Rol.obtener_rol_plantilla(nombre_rol=u"Lider de Proyecto")
        rol_l = Rol.nuevo_rol_desde_plantilla(plantilla=plant_l, id=proy.id_proyecto)

        flash("Se ha creado un nuevo proyecto")
        redirect("/proyectos/")
Beispiel #5
0
    def post(self, *args, **kw):
        if "sprox_id" in kw:
            del kw["sprox_id"]

        proy = Proyecto(**kw)
        DBSession.add(proy)
        DBSession.flush()
        proy.codigo = Proyecto.generar_codigo(proy)

        #Creamos el rol miembro  y lider de proyecto para este proyecto.
        plant_l = Rol.obtener_rol_plantilla(nombre_rol=u"Lider de Proyecto")
        rol_l = Rol.nuevo_rol_desde_plantilla(plantilla=plant_l,
                                              id=proy.id_proyecto)

        flash("Se ha creado un nuevo proyecto")
        redirect("/proyectos/")
Beispiel #6
0
    def nuevo_rol_desde_plantilla(cls,
                                  plantilla=None,
                                  id_plantilla=None,
                                  id=None):
        """
        Crea un rol a partir de una plantilla
        
        @param plantilla: rol del tipo plantilla.
        @param id_plantilla: id del rol del tipo plantilla.
        @param id: identificador con el qué asociar al rol.
        """
        base_query = DBSession.query(Rol)
        if (id_plantilla):
            plantilla = base_query.filter(
                Rol.id_rol == int(id_plantilla)).first()

        rol = Rol()
        rol.nombre_rol = plantilla.nombre_rol
        rol.descripcion = plantilla.descripcion
        if (plantilla.tipo == u"Plantilla proyecto"):
            rol.tipo = u"Proyecto"
            rol.id_proyecto = id
        elif (plantilla.tipo == u"Plantilla fase"):
            rol.tipo = u"Fase"
            rol.id_fase = id
        elif (plantilla.tipo == u"Plantilla tipo ítem"):
            rol.tipo = u"Tipo de Ítem"
            rol.id_tipo_item = id

        for perm in plantilla.permisos:
            perm.roles.append(rol)

        DBSession.add(rol)
        DBSession.flush()
        rol.codigo = Rol.generar_codigo(rol)

        return rol
Beispiel #7
0
    def crear_rol(cls, **kw):
        """ Crea un nuevo rol """
        if "sprox_id" in kw:
            del kw["sprox_id"]
        if "permisos_src" in kw: #campo que genera dojo
            del kw["permisos_src"]
            
        pks = kw["permisos"]
        del kw["permisos"]
        for k in ["id_proyecto", "id_fase", "id_tipo_item"]:
            if kw.has_key(k):
                if kw[k]:
                    kw[k] = int(kw[k])
                else:
                    del kw[k]

        rol_new = Rol(**kw)

        if type(pks).__name__ == 'list':
            for i, pk in enumerate(pks):
                pks[i] = int(pk)
        else:
            pks = [int(pks)]

        permisos = DBSession.query(Permiso).filter( \
                                            Permiso.id_permiso.in_(pks)).all()
        if not permisos:
            return None
            
        for p in permisos:
            p.roles.append(rol_new)
            
        DBSession.flush()
        rol_new.codigo = Rol.generar_codigo(rol_new)
        DBSession.add(rol_new)
        return rol_new
Beispiel #8
0
    def crear_rol(cls, **kw):
        """ Crea un nuevo rol """
        if "sprox_id" in kw:
            del kw["sprox_id"]
        if "permisos_src" in kw:  #campo que genera dojo
            del kw["permisos_src"]

        pks = kw["permisos"]
        del kw["permisos"]
        for k in ["id_proyecto", "id_fase", "id_tipo_item"]:
            if kw.has_key(k):
                if kw[k]:
                    kw[k] = int(kw[k])
                else:
                    del kw[k]

        rol_new = Rol(**kw)

        if type(pks).__name__ == 'list':
            for i, pk in enumerate(pks):
                pks[i] = int(pk)
        else:
            pks = [int(pks)]

        permisos = DBSession.query(Permiso).filter( \
                                            Permiso.id_permiso.in_(pks)).all()
        if not permisos:
            return None

        for p in permisos:
            p.roles.append(rol_new)

        DBSession.flush()
        rol_new.codigo = Rol.generar_codigo(rol_new)
        DBSession.add(rol_new)
        return rol_new