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
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
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/")
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
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