Example #1
0
    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)
Example #2
0
    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)
Example #3
0
    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)
Example #4
0
    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)
Example #5
0
    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)
Example #6
0
    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)
Example #7
0
    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)
Example #8
0
    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)
Example #9
0
    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)
Example #10
0
    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)
Example #11
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/")
Example #12
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/")
Example #13
0
    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 "./"
Example #14
0
 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)
Example #15
0
    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 "./"
Example #16
0
 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)
Example #17
0
 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)
Example #18
0
 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)
Example #19
0
 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)
Example #20
0
    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)
Example #21
0
    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)
Example #22
0
 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)