def put(self, *args, **kw): """actualiza un rol""" pp = None atras = "/roles/" msg = u"El Rol se ha actualizado con éxito" if kw["id_proyecto"]: pp = PoseePermiso('modificar rol', id_proyecto=int(kw["id_proyecto"])) elif kw["id_fase"]: pp = PoseePermiso('modificar rol', id_fase=int(kw["id_fase"])) elif kw["id_tipo_item"]: pp = PoseePermiso('modificar rol', id_tipo_item=int(kw["id_tipo_item"])) else: pp = PoseePermiso('modificar rol') atras = "/rolesplantilla/" msg = u"El de Plantilla se ha actualizado con éxito" if not pp.is_met(request.environ): flash(pp.message % pp.nombre_permiso, 'warning') redirect(atras) if not (kw.has_key("permisos") and kw["permisos"]): flash("Debe seleccionar al menos un permiso", 'warning') redirect("./edit?contexto=%s" % kw["contexto"]) Rol.actualizar_rol(**kw) flash(msg) redirect(atras)
def post(self, *args, **kw): """ Crea un nuevo rol plantilla o con contexto""" pp = None ctx = "" if kw["id_proyecto"]: ctx = "id_proyecto" pp = PoseePermiso('crear rol', id_proyecto=int(kw["id_proyecto"])) elif kw["id_fase"]: ctx = "id_fase" pp = PoseePermiso('crear rol', id_fase=int(kw["id_fase"])) elif kw["id_tipo_item"]: ctx = "id_tipo_item" pp = PoseePermiso('crear rol', id_tipo_item=int(kw["id_tipo_item"])) else: pp = PoseePermiso('crear rol') if not pp.is_met(request.environ): flash(pp.message % pp.nombre_permiso, 'warning') redirect(self.action) #en caso de exito ok_url = u"" #url que redirige al new y rellena los parametros que ya ingreso error_url = u"/rolesplantilla/new/" if ctx == "id_proyecto": ok_url = "/proyectos/%s/edit" % kw[ctx] error_url += "proyecto?{ctx}={val}".format(ctx=ctx, val=kw[ctx]) elif ctx == "id_fase": ok_url = "/fases/%s/edit" % kw[ctx] error_url += "fase?{ctx}={val}".format(ctx=ctx, val=kw[ctx]) elif ctx == "id_tipo_item": ok_url = "/tipositems/%s/edit" % kw[ctx] error_url += "ti?{ctx}={val}".format(ctx=ctx, val=kw[ctx]) else: tipo = unicode(kw["tipo"].lower()) ok_url = "/rolesplantilla/" if tipo.find(u"proyecto") >= 0: error_url += "proyecto?" elif tipo.find(u"fase") >= 0: error_url += "fase?" else: error_url += "ti?" #agregamos los parametros que ya ingreso el usuario. nombre = kw.get("nombre_rol", None).encode("utf-8") nombre_q = urllib.quote(nombre) desc = kw.get("descripcion", None).encode("utf-8") desc_q = urllib.quote(desc) params = "&nombre_rol=" + nombre_q + "&descripcion=" + desc_q error_url += params if not (kw.has_key("permisos") and kw["permisos"]): flash("Debe seleccionar al menos un permiso", 'warning') redirect(error_url) else: Rol.crear_rol(**kw) flash(u"El Rol se ha creado correctamente") redirect(ok_url)
def post(self, *args, **kw): """ Crea un nuevo rol plantilla o con contexto""" id_proyecto = UrlParser.parse_id(request.url, "proyectos") url_action = self.action % id_proyecto pp = PoseePermiso('crear rol', id_proyecto=id_proyecto) kw["id_proyecto"] = id_proyecto if not pp.is_met(request.environ): flash(pp.message % pp.nombre_permiso, 'warning') redirect(url_action) #url que redirige al new y rellena los parametros que ya ingreso error_url = url_action + "new" #agregamos los parametros que ya ingreso el usuario. nombre = kw.get("nombre_rol", None).encode("utf-8") nombre_q = urllib.quote(nombre) desc = kw.get("descripcion", None).encode("utf-8") desc_q = urllib.quote(desc) params = "?nombre_rol=" + nombre_q + "&descripcion=" + desc_q error_url += params if not (kw.has_key("permisos") and kw["permisos"]): flash("Debe seleccionar al menos un permiso", 'warning') redirect(error_url) else: Rol.crear_rol(**kw) flash(u"El Rol se ha creado correctamente") redirect(url_action)
def put(self, *args, **kw): """update a record""" pp = PoseePermiso('modificar rol') if not pp.is_met(request.environ): flash(pp.message % pp.nombre_permiso, 'warning') redirect(self.action) Rol.actualizar_rol(**kw) redirect(self.action)
def post(self, *args, **kw): """create a new record""" pp = PoseePermiso('crear rol') if not pp.is_met(request.environ): flash(pp.message % pp.nombre_permiso, 'warning') redirect(self.action) if (not kw.has_key('tipo')): kw["tipo"] = self.rol_tipo Rol.crear_rol(**kw) redirect(self.action)
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 asignar_roles(self, *args, **kw): """ Asigna los roles seleccionados a un usuario """ if kw: pks = [] for k, pk in kw.items(): if not k.isalnum(): continue pks.append(int(pk)) transaction.begin() id_user = UrlParser.parse_id(request.url, "miembros") id_proyecto = UrlParser.parse_id(request.url, "proyectos") user = Usuario.por_id(id_user) roles = DBSession.query(Rol).filter(Rol.id_rol.in_(pks)).all() for r in roles: if r.tipo.find( u"Plantilla") >= 0: #crear rol a partir de plantilla rol_new = Rol.nuevo_rol_desde_plantilla(plantilla=r, id=id_proyecto) rol_new.usuarios.append(user) else: r.usuarios.append(user) transaction.commit() flash("Roles Asignados correctamente") else: flash("Seleccione por lo menos un rol", "warning") return "./"
def post_delete(self, *args, **kw): rol = Rol.por_id(int(args[0])) if rol.nombre_rol == u"Lider de Proyecto" and rol.tipo == u"Plantilla Proyecto": flash(u'Rol Lider de Proyecto no puede ser eliminado', 'warning') elif rol.nombre_rol == u"Miembro de Proyecto" and rol.tipo == u"Plantilla Proyecto": flash(u'Rol Miembro de Proyecto no puede ser eliminado', 'warning') super(RolPlantillaController, self).post_delete(*args, **kw)
def asignar_roles(self, *args, **kw): """ Asigna los roles seleccionados a un usuario """ if kw: pks = [] for k, pk in kw.items(): if not k.isalnum(): continue pks.append(int(pk)) transaction.begin() id_user = UrlParser.parse_id(request.url, "nomiembros") id_proyecto = UrlParser.parse_id(request.url, "proyectos") user = Usuario.por_id(id_user) roles = DBSession.query(Rol).filter(Rol.id_rol.in_(pks)).all() for r in roles: if r.tipo.find(u"Plantilla") >= 0: #crear rol a partir de plantilla rol_new = Rol.nuevo_rol_desde_plantilla(plantilla=r, id=id_proyecto) rol_new.usuarios.append(user) else: r.usuarios.append(user) transaction.commit() flash("Roles Asignados correctamente") else: flash("Seleccione por lo menos un rol", "warning") return "./"
def post_delete(self, *args, **kw): rol = Rol.por_id(int(args[0])) if rol.nombre_rol == u"Miembro de Tipo Item": flash(u'Rol Miembro de Tipo Item no puede ser eliminado', 'warning') flash("El rol se ha eliminado") super(RolesTipoController, self).post_delete(*args, **kw)
def post_delete(self, *args, **kw): rol = Rol.por_id(int(args[0])) if rol.nombre_rol == u"Lider de Proyecto": flash(u'Rol Lider de Proyecto no puede ser eliminado', 'warning') elif rol.nombre_rol == u"Miembro de Proyecto": flash(u'Rol Miembro de Proyecto no puede ser eliminado', 'warning') flash("El rol se ha eliminado") super(RolesProyectoController, self).post_delete(*args, **kw)
def put(self, *args, **kw): """actualiza un rol""" id_tipo_item = UrlParser.parse_id(request.url, "tipositems") url_action = "../../" msg = u"El Rol se ha actualizado con éxito" pp = PoseePermiso('modificar rol', id_tipo_item=id_tipo_item) if not pp.is_met(request.environ): flash(pp.message % pp.nombre_permiso, 'warning') redirect(url_action) if not (kw.has_key("permisos") and kw["permisos"]): flash("Debe seleccionar al menos un permiso", 'warning') redirect(url_action + kw["id_rol"] + "/edit") Rol.actualizar_rol(**kw) flash(msg) redirect(url_action)