Example #1
0
    def post_buscar(self, *args, **kw):
        """
        Controlador que recibe los parámetros de búsqueda para 
        devolver el resultado esperado.
        """
        
        puede_crear = PoseePermiso("crear proyecto").is_met(request.environ)
        pp = PoseePermiso('consultar proyecto')
        if not pp.is_met(request.environ):
            flash(pp.message % pp.nombre_permiso, 'warning')
            redirect("/proyectos/")

        tmpl_context.widget = self.table
        buscar_table_filler = ProyectoTableFiller(DBSession)
        buscar_table_filler.filtros = kw
        proyectos = buscar_table_filler.get_value()
        
        atras = '/proyectos/'
        
        return dict(lista_elementos=proyectos, 
                    page=self.title, 
                    titulo=self.title, 
                    modelo=self.model.__name__,
                    columnas=self.columnas,
                    url_action="/proyectos/",
                    puede_crear=puede_crear,
                    comboboxes=self.comboboxes,
                    opciones=self.opciones,
                    atras=atras
                    )
Example #2
0
    def put(self, *args, **kw):
        if "sprox_id" in kw:
            del kw["sprox_id"]
        if "repita_nuevo_password" in kw:
            del kw["repita_nuevo_password"]
        if kw["nro_documento"]:
            kw["nro_documento"] = int(kw["nro_documento"])

        username = request.identity['repoze.who.userid']
        usuario = Usuario.by_user_name(username)
        id_usuario = UrlParser.parse_id(request.url, "usuarios")
        
        if (usuario.id_usuario != id_usuario):        
            pp = PoseePermiso('modificar usuario')
            if not pp.is_met(request.environ):
                flash(pp.message % pp.nombre_permiso, 'warning')
                redirect(self.action)

        usuario = Usuario.por_id(args[0])
        usuario.nombre = kw["nombre"]
        usuario.apellido = kw["apellido"]
        usuario.email = kw["email"]
        usuario.telefono = kw["telefono"]
        usuario.nro_documento = kw["nro_documento"]
        if kw["nuevo_password"] != None and kw.has_key('cambiar_pass'):
            usuario.password = kw["nuevo_password"]

        redirect("../") 
Example #3
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 #4
0
    def post_buscar(self, *args, **kw):
        """
        Controlador que recibe los parámetros de búsqueda para 
        devolver el resultado esperado.
        """

        puede_crear = PoseePermiso("crear proyecto").is_met(request.environ)
        pp = PoseePermiso('consultar proyecto')
        if not pp.is_met(request.environ):
            flash(pp.message % pp.nombre_permiso, 'warning')
            redirect("/proyectos/")

        tmpl_context.widget = self.table
        buscar_table_filler = ProyectoTableFiller(DBSession)
        buscar_table_filler.filtros = kw
        proyectos = buscar_table_filler.get_value()

        atras = '/proyectos/'

        return dict(lista_elementos=proyectos,
                    page=self.title,
                    titulo=self.title,
                    modelo=self.model.__name__,
                    columnas=self.columnas,
                    url_action="/proyectos/",
                    puede_crear=puede_crear,
                    comboboxes=self.comboboxes,
                    opciones=self.opciones,
                    atras=atras)
Example #5
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 #6
0
    def __actions__(self, obj):
        """Links de acciones para un registro dado"""
        value = '<div>'
        clase = 'actions'
        id = str(obj.id_atributos_por_tipo_item)
        id_tipo = UrlParser.parse_id(request.url, "tipositems")

        if PoseePermiso('redefinir tipo item',
                        id_tipo_item=obj.id_tipo_item).is_met(request.environ):
            value += '<div>' + \
                        '<a href="./' + id + '/edit" ' + \
                        'class="' + clase + '">Modificar</a>' + \
                     '</div><br />'

        if obj.puede_eliminarse():
            if PoseePermiso('redefinir tipo item',
                            id_tipo_item=obj.id_tipo_item).is_met(
                                request.environ):
                value += '<div><form method="POST" action="' + id + '" class="button-to">'+\
                         '<input type="hidden" name="_method" value="DELETE" />' +\
                         '<input onclick="return confirm(\'Está seguro?\');" value="Eliminar" type="submit" '+\
                         'style="background-color: transparent; float:left; border:0; color: #286571;'+\
                         'display: inline; margin: 0; padding: 0; margin-left:-3px;" class="' + clase + '"/>'+\
                         '</form></div><br />'
        value += '</div>'
        return value
Example #7
0
    def __actions__(self, obj):
        """Links de acciones para un registro dado"""
        value = '<div>'
        clase = 'actions'
        contexto = ""
        perm_mod = PoseePermiso('modificar rol')
        perm_del = PoseePermiso('eliminar rol')
        url_cont = "/rolesplantilla/"
        tipo = obj.tipo.lower()
        if (tipo.find(u"proyecto") >= 0):
            contexto = "proyecto"
        elif (tipo.find(u"fase") >= 0):
            contexto = "fase"
        else:
            contexto = "ti"

        if perm_mod.is_met(request.environ):
            value += '<div>' + \
                        '<a href="' +  url_cont + str(obj.id_rol) + "/edit?contexto="+  \
                        contexto + '" class="' + clase + '">Modificar</a>' + \
                     '</div><br />'

        if perm_del.is_met(request.environ):
            value += '<div><form method="POST" action="./' + str(obj.id_rol) + '" class="button-to">'+\
                     '<input type="hidden" name="_method" value="DELETE" />' +\
                     '<input onclick="return confirm(\'Está seguro?\');" value="Eliminar" type="submit" '+\
                     'style="background-color: transparent; float:left; border:0; color: #286571;'+\
                     'display: inline; margin: 0; padding: 0; margin-left:-3px;" class="' + clase + '"/>'+\
                     '</form></div><br />'
        value += '</div>'
        return value
Example #8
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 #9
0
    def __actions__(self, obj):
        """Links de acciones para un registro dado"""
        value = '<div>'
        clase = 'actions'
        
        perm_mod = PoseePermiso('modificar rol', id_tipo_item=obj.id_tipo_item)
        perm_del = PoseePermiso('eliminar rol', id_tipo_item=obj.id_tipo_item)

        url = "./"
        if UrlParser.parse_nombre(request.url, "post_buscar"):
            url = "../"
            
        if perm_mod.is_met(request.environ):
            value += '<div>' + \
                        '<a href="' + url + str(obj.id_rol) + "/edit"+  \
                        '" class="' + clase + '">Modificar</a>' + \
                     '</div><br />'

        if perm_del.is_met(request.environ):
            value += '<div><form method="POST" action="' + url + str(obj.id_rol) + '" class="button-to">'+\
                     '<input type="hidden" name="_method" value="DELETE" />' +\
                     '<input onclick="return confirm(\'Está seguro?\');" value="Eliminar" type="submit" '+\
                     'style="background-color: transparent; float:left; border:0; color: #286571;'+\
                     'display: inline; margin: 0; padding: 0; margin-left:-3px;" class="' + clase + '"/>'+\
                     '</form></div><br />'
        value += '</div>'
        return value
Example #10
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 #11
0
    def __actions__(self, obj):
        """Links de acciones para un registro dado"""
        value = '<div>'
        clase = 'actions'

        if PoseePermiso('modificar proyecto',
                        id_proyecto=obj.id_proyecto).is_met(request.environ):
            value += '<div>' + \
                        '<a href="/proyectos/'+ str(obj.id_proyecto) + '/edit" ' + \
                        'class="' + clase + '">Modificar</a>' + \
                     '</div><br />'

            value += '<div>' + \
                        '<a href="/proyectos/'+ str(obj.id_proyecto) + '/fases" ' + \
                        'class="' + clase + '">Fases</a>' + \
                     '</div><br />'

            value += '<div>' + \
                        '<a href="/proyectos/'+ str(obj.id_proyecto) + '/tipositems" ' + \
                        'class="' + clase + '">Tipos de Ítem</a>' + \
                     '</div><br />'

            value += '<div>' + \
                        '<a href="/proyectos/'+ str(obj.id_proyecto) + '/rolesproyecto" ' + \
                        'class="' + clase + '">Roles de Proyecto</a>' + \
                     '</div><br />'

            value += '<div>' + \
                        '<a href="/proyectos/'+ str(obj.id_proyecto) + '/miembros" ' + \
                        'class="' + clase + '">Usuarios</a>' + \
                     '</div><br />'
            '''
            value += '<div>' + \
                        '<a href="/proyectos/'+ str(obj.id_proyecto) + '/nomiembros" ' + \
                        'class="' + clase + '">No miembros</a>' + \
                     '</div><br />'
            '''

        if obj.estado == u"No Iniciado":
            if (PoseePermiso('iniciar proyecto',
                        id_proyecto=obj.id_proyecto).is_met(request.environ) and\
                        obj.numero_fases > 0):
                value += '<div>' + \
                            '<a href="/proyectos/iniciar/' + str(obj.id_proyecto) + '" ' +\
                            'class="' + clase + '">Iniciar</a>' + \
                         '</div><br />'

        if PoseePermiso('eliminar proyecto',
                        id_proyecto=obj.id_proyecto).is_met(request.environ):
            url = "/proyectos/post_delete/%d" % obj.id_proyecto
            value += '<div><form method="POST" action="' + url + '" class="button-to">'+\
                     '<input onclick="return confirm(\'¿Está seguro?\');" value="Eliminar" type="submit" '+\
                     'style="background-color: transparent; float:left; border:0; color: #286571;'+\
                     'display: inline; margin: 0; padding: 0; margin-left: -3px;" class="' + clase + '"/>'+\
                     '</form></div><br />'

        value += '</div>'
        return value
Example #12
0
    def __actions__(self, obj):
        """Links de acciones para un registro dado"""
        value = '<div>'
        clase = 'actions_fase'
        id_proyecto = UrlParser.parse_id(request.url, "proyectos")
        url_proy = "/proyectos/"
        if not id_proyecto:
            #desde el submenu fase.
            id_proyecto = UrlParser.parse_id(request.url, "proyectos_fase")
            url_proy = "/proyectos_fase/"

        url_cont = url_proy + "%d/fases/"
        url_cont %= id_proyecto

        if PoseePermiso('modificar fase',
                        id_fase=obj.id_fase).is_met(request.environ):
            value += '<div>' + \
                        '<a href="'+ url_cont + str(obj.id_fase) + '/edit" ' + \
                        'class="' + clase + '">Modificar</a>' + \
                     '</div><br />'

            value += '<div>' + \
                        '<a href="'+ url_cont + str(obj.id_fase) + '/rolesfase" ' + \
                        'class="' + clase + '">Roles de Fase</a>' + \
                     '</div><br />'


            value += '<div>' + \
                        '<a href="'+ url_cont + str(obj.id_fase) + '/tipositems" ' + \
                        'class="' + clase + '">Tipos de Ítem</a>' + \
                     '</div><br />'


            value += '<div>' + \
                        '<a href="'+ url_cont + str(obj.id_fase) + '/miembrosfase" ' + \
                        'class="' + clase + '">Usuarios</a>' + \
                     '</div><br />'
            '''
            value += '<div>' + \
                        '<a href="'+ url_cont + str(obj.id_fase) + '/nomiembrosfase" ' + \
                        'class="' + clase + '">No miembros</a>' + \
                     '</div><br />'
            '''

        proy = Proyecto.por_id(obj.id_proyecto)
        if proy.estado != "Iniciado" and \
            PoseePermiso('eliminar fase',
                         id_fase=obj.id_fase).is_met(request.environ):

            value += '<div><form method="POST" action="' + str(obj.id_fase) + '" class="button-to">'+\
                     '<input type="hidden" name="_method" value="DELETE" />' +\
                     '<input onclick="return confirm(\'¿Está seguro?\');" value="Eliminar" type="submit" '+\
                     'style="background-color: transparent; float:left; border:0; color: #286571; display: inline;'+\
                     'margin: 0; padding: 0; margin-left: -3px; margin-top: -3px;' + clase + '"/>'+\
                     '</form></div><br />'

        value += '</div>'
        return value
Example #13
0
    def __actions__(self, obj):
        """Links de acciones para un registro dado"""
        value = '<div>'
        clase = 'actions'
        url_cont = "./" + str(obj.id_tipo_item)
        id_tipo = UrlParser.parse_id(request.url, "tipositems")
        if id_tipo:
            url_cont = "../" + str(obj.id_tipo_item)
        
        if UrlParser.parse_nombre(request.url, "post_buscar"):
            url_cont = "../" + str(obj.id_tipo_item)
        
        pp = PoseePermiso('redefinir tipo item', 
                          id_tipo_item=obj.id_tipo_item)
        
            
        #if PoseePermiso('redefinir tipo item').is_met(request.environ):
        if pp.is_met(request.environ):
            value += '<div>' + \
                        '<a href="' + url_cont + '/edit" ' + \
                        'class="' + clase + '">Modificar</a>' + \
                     '</div><br />'

            value += '<div>' + \
                        '<a href="' + url_cont + '/atributostipoitem/" ' + \
                        'class="' + clase + '">Atributos</a>' + \
                     '</div><br />'

            value += '<div>' + \
                        '<a href="'+ url_cont + '/miembrostipo" ' + \
                        'class="' + clase + '">Usuarios</a>' + \
                     '</div><br />'

            '''
            value += '<div>' + \
                        '<a href="'+ url_cont + '/nomiembrostipo" ' + \
                        'class="' + clase + '">No miembros</a>' + \
                     '</div><br />'
            '''
            
            value += '<div>' + \
                        '<a href="'+ url_cont + '/rolestipo" ' + \
                        'class="' + clase + '">Roles de Tipo</a>' + \
                     '</div><br />'

        if obj.puede_eliminarse():
            if pp.is_met(request.environ):
                value += '<div><form method="POST" action="' + str(obj.id_tipo_item) + '" class="button-to">'+\
                         '<input type="hidden" name="_method" value="DELETE" />' +\
                         '<input onclick="return confirm(\'Está seguro?\');" value="Eliminar" type="submit" '+\
                         'style="background-color: transparent; float:left; border:0; color: #286571;'+\
                         'display: inline; margin: 0; padding: 0; margin-left:-3px;" class="' + clase + '"/>'+\
                         '</form></div><br />'
        
        
        value += '</div>'
        return value
Example #14
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 #15
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 #16
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 #17
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 #18
0
 def edit(self, *args, **kw):
     """Despliega una pagina para modificar rol"""
     pp = PoseePermiso('modificar rol')
     if not pp.is_met(request.environ):
         flash(pp.message % pp.nombre_permiso, 'warning')
         redirect(self.action)
     tmpl_context.widget = self.edit_form
     value = self.edit_filler.get_value(values={'id_rol': int(args[0])})
     page = "Rol {nombre}".format(nombre=value["nombre_rol"])
     atras = self.action
     return dict(value=value, page=page, atras=atras)
Example #19
0
 def edit(self, *args, **kw):
     """Despliega una pagina para modificar rol"""
     pp = PoseePermiso('modificar rol')
     if not pp.is_met(request.environ):
         flash(pp.message % pp.nombre_permiso, 'warning')
         redirect(self.action)
     tmpl_context.widget = self.edit_form
     value = self.edit_filler.get_value(values={'id_rol': int(args[0])})
     page = "Rol {nombre}".format(nombre=value["nombre_rol"])
     atras = self.action
     return dict(value=value, page=page, atras=atras)
Example #20
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 #21
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 #22
0
 def new(self, *args, **kw):
     """Despliega una pagina para crear un rol"""
     pp = PoseePermiso('crear rol')
     if not pp.is_met(request.environ):
         flash(pp.message % pp.nombre_permiso, 'warning')
         redirect(self.action)
     tmpl_context.widget = self.new_form
     if request.environ.get('HTTP_REFERER') == "http://" + request.environ.get('HTTP_HOST',) + "/":
         atras = "../"
     else:
         atras = "/roles"
     return dict(value=kw, page="Nuevo Rol", action=self.action, atras=atras)
Example #23
0
 def new(self, *args, **kw):
     """Despliega una pagina para crear un usuario"""
     
     pp = PoseePermiso('crear usuario')
     if not pp.is_met(request.environ):
         flash(pp.message % pp.nombre_permiso, 'warning')
         redirect("/usuarios/")
     
     page = u"Nuevo Usuario"
     atras = "/usuarios/"
     return dict(super(UsuarioController, self).new(*args, **kw),
                 page=page, 
                 atras=atras)
Example #24
0
    def put(self, *args, **kw):
        """update a record"""
        url_action = url_action = "../../"
        pp = PoseePermiso('redefinir tipo item',
                          id_tipo_item=kw["id_tipo_item"])
        if not pp.is_met(request.environ):
            flash(pp.message % pp.nombre_permiso, 'warning')
            redirect(url_action)

        tipo = TipoItem.por_id(int(kw["id_tipo_item"]))  
        tipo.descripcion = unicode(kw["descripcion"])
        flash("Actualizacion exitosa")
        redirect("./")
Example #25
0
    def new(self, *args, **kw):
        """Despliega una pagina para crear un tipo_item"""
        id_tipo_item = UrlParser.parse_id(request.url, "tipositems")
        url_action = "./"

        pp = PoseePermiso('redefinir tipo item', id_tipo_item=id_tipo_item)
        if not pp.is_met(request.environ):
            flash(pp.message % pp.nombre_permiso, 'warning')
            redirect(atras)
        tmpl_context.widget = self.new_form
        return dict(value=kw, 
                    page=u"Nuevo Atributo", 
                    action=url_action, 
                    atras=url_action)
Example #26
0
    def new(self, *args, **kw):
        """Despliega una pagina para crear un tipo_item"""
        id_tipo_item = UrlParser.parse_id(request.url, "tipositems")
        url_action = "./"

        pp = PoseePermiso('redefinir tipo item', id_tipo_item=id_tipo_item)
        if not pp.is_met(request.environ):
            flash(pp.message % pp.nombre_permiso, 'warning')
            redirect(atras)
        tmpl_context.widget = self.new_form
        return dict(value=kw,
                    page=u"Nuevo Atributo",
                    action=url_action,
                    atras=url_action)
Example #27
0
    def edit(self, id_proyecto, *args, **kw):
        """Despliega una pagina para admistrar un proyecto"""

        pp = PoseePermiso('modificar proyecto', id_proyecto=id_proyecto)
        if not pp.is_met(request.environ):
            flash(pp.message % pp.nombre_permiso, 'warning')
            redirect("/proyectos")
        proyecto = Proyecto.por_id(id_proyecto)
        tmpl_context.widget = self.edit_form
        value = self.edit_filler.get_value(values={'id_proyecto': id_proyecto})
        value['_method'] = 'PUT'
        atras = "/proyectos/"
        return dict(value=value,
                    page="Modificar Proyecto %s" % proyecto.nombre,
                    atras=atras)
Example #28
0
    def edit(self, *args, **kw):
        """Despliega una pagina para modificar el atributo"""
        id_tipo_item = UrlParser.parse_id(request.url, "tipositems")
        url_action = "../"

        pp = PoseePermiso('redefinir tipo item', id_tipo_item=id_tipo_item)
        if not pp.is_met(request.environ):
            flash(pp.message % pp.nombre_permiso, 'warning')
            redirect(url_action)
        tmpl_context.widget = self.edit_form
        value = self.edit_filler.get_value( \
                     values={'id_atributos_por_tipo_item': int(args[0])})
        value['_method'] = 'PUT'
        page = "Atributo {nombre}".format(nombre=value["nombre"])
        return dict(value=value, page=page, atras=url_action)
Example #29
0
    def post_buscar(self, *args, **kw):
        id_tipo_item = UrlParser.parse_id(request.url, "tipositems")
        tipo = TipoItem.por_id(id_tipo_item)

        #titulo = u"Miembros del Tipo de Ítem: %s" % tipo.nombre
        titulo = "Lista de Usuarios"
        puede_remover = PoseePermiso("asignar-desasignar rol",
                                     id_tipo_item=id_tipo_item).is_met(
                                         request.environ)
        tmpl_context.widget = miembros_tipo_table
        buscar_table_filler = MiembrosTipoTableFiller(DBSession)
        buscar_table_filler.filtros = kw
        usuarios = buscar_table_filler.get_value(id_tipo_item=id_tipo_item,
                                                 **kw)

        #atras = "/proyectos/%d/" % id_proyecto
        atras = "../"
        return dict(lista_elementos=usuarios,
                    page=titulo,
                    titulo=titulo,
                    columnas=self.columnas,
                    opciones=self.opciones,
                    url_action="../",
                    atras=atras,
                    puede_remover=puede_remover)
Example #30
0
    def edit(self, id_proyecto,*args, **kw):
        """Despliega una pagina para admistrar un proyecto"""

        pp = PoseePermiso('modificar proyecto', id_proyecto=id_proyecto)
        if not pp.is_met(request.environ):
            flash(pp.message % pp.nombre_permiso, 'warning')
            redirect("/proyectos")
        proyecto = Proyecto.por_id(id_proyecto)
        tmpl_context.widget = self.edit_form
        value = self.edit_filler.get_value(values={'id_proyecto': id_proyecto})
        value['_method'] = 'PUT'
        atras = "/proyectos/"
        return dict(value=value,
                    page="Modificar Proyecto %s" % proyecto.nombre,
                    atras=atras
                    )
Example #31
0
    def post_buscar(self, *args, **kw):
        """ 
        Retorna todos los registros
        Retorna una página HTML si no se especifica JSON
        """

        id_tipo_item = UrlParser.parse_id(request.url, "tipositems")
        puede_crear = PoseePermiso('redefinir tipo item',
                                   id_tipo_item=id_tipo_item).is_met(
                                       request.environ)
        tipo = TipoItem.por_id(id_tipo_item)
        titulo = self.title % tipo.nombre
        filler = AtributosPorTipoItemTableFiller(DBSession)
        filler.filtros = kw
        atributos = filler.get_value(id_tipo_item=id_tipo_item, **kw)
        tmpl_context.widget = self.table
        url_action = self.action
        atras = "../"

        return dict(lista_elementos=atributos,
                    page=titulo,
                    titulo=titulo,
                    modelo=self.model.__name__,
                    columnas=self.columnas,
                    opciones=self.opciones,
                    comboboxes=self.comboboxes,
                    url_action="../",
                    puede_crear=puede_crear,
                    atras=atras)
Example #32
0
    def put(self, *args, **kw):
        """update"""
        if "sprox_id" in kw:
            del kw["sprox_id"]
        id_proyecto = int(kw["id_proyecto"])
        id_fase = int(kw["id_fase"])
        del kw["id_fase"]
        pp = PoseePermiso('modificar fase', id_fase=id_fase)
        if not pp.is_met(request.environ):
            flash(pp.message % pp.nombre_permiso, 'warning')
            redirect("../")

        proy = Proyecto.por_id(id_proyecto)
        proy.modificar_fase(id_fase, **kw)
        flash("Fase modificada")
        redirect("./")
Example #33
0
    def post_buscar(self, *args, **kw):
        """
        Controlador que recibe los parámetros de búsqueda para 
        devolver el resultado esperado.
        """
        id_proyecto = UrlParser.parse_id(request.url, "proyectos")
        #action = self.tmp_action % id_proyecto
        if not id_proyecto:
            id_proyecto = UrlParser.parse_id(request.url, "proyectos_fase")
            #action = self.tmp_action_fase % id_proyecto

        puede_crear = PoseePermiso(
            "crear fase", id_proyecto=id_proyecto).is_met(request.environ)

        proy = Proyecto.por_id(id_proyecto)
        if proy.estado == "Iniciado":
            puede_crear = False

        titulo = self.title % proy.nombre
        tmpl_context.widget = self.table
        buscar_table_filler = FaseTableFiller(DBSession)
        buscar_table_filler.filtros = kw
        fases = buscar_table_filler.get_value(id_proyecto=id_proyecto)
        atras = '../'

        return dict(lista_elementos=fases,
                    page=titulo,
                    titulo=titulo,
                    modelo=self.model.__name__,
                    columnas=self.columnas,
                    url_action="../",
                    puede_crear=puede_crear,
                    comboboxes=self.comboboxes,
                    opciones=self.opciones,
                    atras=atras)
Example #34
0
 def get_one(self, *args, **kw):
     id_tipo = int(args[0])
     id_proyecto = UrlParser.parse_id(request.url, "proyectos")
     id_fase = UrlParser.parse_id(request.url, "fases")
     if not id_proyecto:
         id_proyecto = UrlParser.parse_id(request.url, "proyectos_fase")
         if not id_proyecto:
             id_proyecto = UrlParser.parse_id(request.url, "proyectos_fase_ti")
             id_fase = UrlParser.parse_id(request.url, "fases_ti")
     
     proy = Proyecto.por_id(id_proyecto)
     puede_crear = puede_crear = PoseePermiso("crear tipo item",
                                              id_fase=id_fase).is_met(request.environ)
     if proy.estado != "Iniciado":
         puede_crear = False
         
     ti = self.table_filler.get_value(id_tipo=id_tipo, **kw)
         
     tmpl_context.widget = self.table
     fase = Fase.por_id(id_fase)
     titulo = self.title % fase.nombre
     atras = '../'
     return dict(lista_elementos=ti, 
                 page=titulo,
                 titulo=titulo, 
                 modelo=self.model.__name__, 
                 columnas=self.columnas,
                 opciones=self.opciones,
                 url_action=self.action,
                 puede_crear=puede_crear,
                 atras=atras
                 )
Example #35
0
 def revertir(self, *args, **kw):
     """
     Revierte el ítem en cuestion a la version indicada.
     """
     id_item = UrlParser.parse_id(request.url, "items")
     id_version = int(args[0])
     if not id_item:
         redirect("../")
     item = Item.por_id(id_item)
     pp = PoseePermiso('modificar item', id_tipo_item=item.id_tipo_item)
     if not pp.is_met(request.environ):
         flash(pp.message % pp.nombre_permiso, 'warning')
         redirect("../")
     user = Usuario.by_user_name(request.credentials["repoze.what.userid"])
     item.revertir(id_version, user)
     redirect("../")
Example #36
0
    def put(self, *args, **kw):
        """update"""
        if "sprox_id" in kw:
            del kw["sprox_id"]
        id_proyecto = int(kw["id_proyecto"])
        id_fase = int(kw["id_fase"])
        del kw["id_fase"]
        pp = PoseePermiso('modificar fase', id_fase=id_fase)
        if not pp.is_met(request.environ):
            flash(pp.message % pp.nombre_permiso, 'warning')
            redirect("../")

        proy = Proyecto.por_id(id_proyecto)
        proy.modificar_fase(id_fase, **kw)
        flash("Fase modificada")
        redirect("./")
Example #37
0
 def post_buscar(self, *args, **kw):
     id_proyecto = UrlParser.parse_id(request.url, "proyectos")
     id_fase = UrlParser.parse_id(request.url, "fases")
     atras = "../"
     if not id_proyecto:
         id_proyecto = UrlParser.parse_id(request.url, "proyectos_fase")
         if not id_proyecto:
             id_proyecto = UrlParser.parse_id(request.url, "proyectos_fase_ti")
             id_fase = UrlParser.parse_id(request.url, "fases_ti")
         atras = "../../../"
     
     proy = Proyecto.por_id(id_proyecto)
     puede_crear = puede_crear = PoseePermiso("crear tipo item",
                                              id_fase=id_fase).is_met(request.environ)
     if proy.estado != "Iniciado":
         puede_crear = False
     fase = Fase.por_id(id_fase)
     titulo = self.title % fase.nombre
     tmpl_context.widget = self.table
     buscar_table_filler = self.table_filler.__class__(DBSession)
     buscar_table_filler.filtros = kw
     tipos_items = buscar_table_filler.get_value(id_fase=id_fase)
     
     return  dict(lista_elementos=tipos_items, 
                  page=titulo, 
                  titulo=titulo,
                  modelo=self.model.__name__, 
                  columnas=self.columnas,
                  opciones=self.opciones, 
                  url_action="../",
                  puede_crear=puede_crear,
                  atras=atras
                  )
Example #38
0
    def get_all(self, *args, **kw):
        """ 
        Retorna todos los registros
        Retorna una página HTML si no se especifica JSON
        """

        id_proyecto = UrlParser.parse_id(request.url, "proyectos")
        proy = Proyecto.por_id(id_proyecto)
        #titulo = "Miembros del Proyecto: %s" % proy.nombre
        titulo = "Lista de Usuarios"
        puede_remover = PoseePermiso("asignar-desasignar rol",
                                     id_proyecto=id_proyecto).is_met(
                                         request.environ)

        if request.response_type == 'application/json':
            return self.table_filler.get_value(id_proyecto=id_proyecto, **kw)
        if not getattr(self.table.__class__, '__retrieves_own_value__', False):
            miembros = self.table_filler.get_value(id_proyecto=id_proyecto,
                                                   **kw)
        else:
            miembros = []

        tmpl_context.widget = self.table
        atras = "/proyectos/%d/" % id_proyecto
        return dict(lista_elementos=miembros,
                    page=titulo,
                    titulo=titulo,
                    columnas=self.columnas,
                    opciones=self.opciones,
                    url_action=self.action,
                    atras=atras,
                    puede_remover=puede_remover)
Example #39
0
    def get_all(self, *args, **kw):
        """ 
        Retorna todos los registros
        Retorna una página HTML si no se especifica JSON
        """
        puede_crear = PoseePermiso("crear proyecto").is_met(request.environ)
        if pylons.request.response_type == 'application/json':
            return dict(lista=self.table_filler.get_value(**kw))
        if not getattr(self.table.__class__, ' ', False):
            proyectos = self.table_filler.get_value(**kw)
        else:
            proyectos = []

        tmpl_context.widget = self.table
        atras = '/'
        return dict(lista_elementos=proyectos,
                    page=self.title,
                    titulo=self.title,
                    modelo=self.model.__name__,
                    columnas=self.columnas,
                    opciones=self.opciones,
                    url_action="/proyectos/",
                    puede_crear=puede_crear,
                    comboboxes=self.comboboxes,
                    atras=atras)
Example #40
0
    def __actions__(self, obj):
        """Links de acciones para un registro dado"""
        id_proyecto = UrlParser.parse_id(request.url, "proyectos")
        clase = 'actions'
        value = "<div>"
        url_cont = "/proyectos/%d/" % id_proyecto
        value += '<div>' + \
                    '<a href="' + url_cont + "miembros/" + str(obj.id_usuario) + '" ' + \
                    'class="' + clase + '">Ver</a>' + \
                 '</div><br />'

        if PoseePermiso("asignar-desasignar rol",
                        id_proyecto=id_proyecto).is_met(request.environ):
            value += '<div>' + \
                        '<a href="'+ url_cont + "miembros/" + str(obj.id_usuario) + \
                        "/rolesasignados/" '" ' + \
                        'class="' + clase + '">Roles Asig.</a>' + \
                     '</div><br />'
            value += '<div>' + \
                        '<a href="'+ url_cont + "miembros/" + str(obj.id_usuario) + \
                        "/rolesdesasignados/" '" ' + \
                        'class="' + clase + '">Roles Desasig.</a>' + \
                     '</div><br />'
        value += '</div>'

        return value
Example #41
0
    def __actions__(self, obj):
        """Links de acciones para un registro dado"""
        clase = 'actions'
        value = "<div>"
        url = "./"
        if UrlParser.parse_nombre(request.url, "post_buscar"):
            url = "../"

        value += '<div>' + \
                    '<a href="' + url + str(obj.id_usuario) + '/" ' + \
                    'class="' + clase + '">Ver</a>' + \
                 '</div><br />'

        id_tipo_item = UrlParser.parse_id(request.url, "tipositems")
        if PoseePermiso("asignar-desasignar rol",
                        id_tipo_item=id_tipo_item).is_met(request.environ):
            value += '<div>' + \
                        '<a href="./'+ str(obj.id_usuario) + \
                        "/rolesasignados/" '" ' + \
                        'class="' + clase + '">Roles Asig.</a>' + \
                     '</div><br />'
            value += '<div>' + \
                        '<a href="./' + str(obj.id_usuario) + \
                        "/rolesdesasignados/" '" ' + \
                        'class="' + clase + '">Roles Desasig.</a>' + \
                     '</div><br />'
        value += '</div>'

        return value
Example #42
0
    def get_all(self, *args, **kw):
        """ 
        Retorna todos los registros
        Retorna una página HTML si no se especifica JSON
        """

        id_tipo_item = UrlParser.parse_id(request.url, "tipositems")
        tipo = TipoItem.por_id(id_tipo_item)
        titulo = "Lista de Usuarios"

        puede_incorporar = PoseePermiso("asignar-desasignar rol",
                                        id_tipo_item=id_tipo_item).is_met(
                                            request.environ)

        if request.response_type == 'application/json':
            return self.table_filler.get_value(id_tipo_item=id_tipo_item, **kw)
        if not getattr(self.table.__class__, '__retrieves_own_value__', False):
            nomiembros = self.table_filler.get_value(id_tipo_item=id_tipo_item,
                                                     **kw)
        else:
            nomiembros = []

        tmpl_context.widget = self.table
        atras = "../"
        return dict(lista_elementos=nomiembros,
                    page=titulo,
                    titulo=titulo,
                    columnas=self.columnas,
                    opciones=self.opciones,
                    url_action=self.action,
                    atras=atras,
                    puede_incorporar=puede_incorporar)
Example #43
0
    def post_buscar(self, *args, **kw):
        id_fase = UrlParser.parse_id(request.url, "fases")
        id_usuario = UrlParser.parse_id(request.url, "miembrosfase")
        usuario = Usuario.por_id(id_usuario)

        fase = Fase.por_id(id_fase)
        puede_desasignar = PoseePermiso("asignar-desasignar rol",
                                        id_fase=id_fase).is_met(
                                            request.environ)

        titulo = "Roles de: %s" % usuario.nombre_usuario
        tmpl_context.widget = self.table
        buscar_table_filler = MiembrosFaseRolesTableFiller(DBSession)
        buscar_table_filler.filtros = kw
        usuarios = buscar_table_filler.get_value(usuario=usuario,
                                                 id_fase=id_fase,
                                                 **kw)

        atras = "../../"
        return dict(lista_elementos=usuarios,
                    page=titulo,
                    titulo=titulo,
                    columnas=self.columnas,
                    opciones=self.opciones,
                    comboboxes=self.comboboxes,
                    url_action="../",
                    atras=atras,
                    puede_desasignar=puede_desasignar)
Example #44
0
    def get_all(self, *args, **kw):
        """ 
        Retorna todos los registros
        Retorna una página HTML si no se especifica JSON
        """
        id_proyecto = UrlParser.parse_id(request.url, "proyectos")
        atras = "../"
        if not id_proyecto:
            id_proyecto = UrlParser.parse_id(request.url, "proyectos_fase")
            atras = "../../"

        puede_crear = PoseePermiso(
            "crear fase", id_proyecto=id_proyecto).is_met(request.environ)
        proy = Proyecto.por_id(id_proyecto)
        if proy.estado == "Iniciado":
            puede_crear = False

        titulo = self.title % proy.nombre
        fases = self.table_filler.get_value(id_proyecto=id_proyecto, **kw)
        tmpl_context.widget = self.table

        return dict(lista_elementos=fases,
                    page=titulo,
                    titulo=titulo,
                    modelo=self.model.__name__,
                    columnas=self.columnas,
                    opciones=self.opciones,
                    url_action=self.tmp_action,
                    puede_crear=puede_crear,
                    comboboxes=self.comboboxes,
                    atras=atras)
Example #45
0
 def post_buscar(self, *args, **kw):
     id_proyecto = UrlParser.parse_id(request.url, "proyectos")
     id_usuario = UrlParser.parse_id(request.url, "miembros")
     usuario = Usuario.por_id(id_usuario)
     proy = Proyecto.por_id(id_proyecto)
     puede_asignar = PoseePermiso("asignar-desasignar rol",
                                  id_proyecto=id_proyecto).is_met(
                                      request.environ)
     titulo = u"Roles Desasignados para: %s" % usuario.nombre_usuario
     tmpl_context.widget = self.table
     buscar_table_filler = MiembrosProyectoRolesTableFiller(DBSession)
     buscar_table_filler.filtros = kw
     roles = buscar_table_filler.get_value(usuario=usuario,
                                           asignados=False,
                                           id_proyecto=id_proyecto,
                                           **kw)
     atras = "/proyectos/%d/miembros/" % id_proyecto
     return dict(lista_elementos=roles,
                 page=titulo,
                 titulo=titulo,
                 columnas=self.columnas,
                 opciones=self.opciones,
                 comboboxes=self.comboboxes,
                 url_action="../",
                 atras=atras,
                 puede_asignar=puede_asignar)
Example #46
0
 def get_all(self, *args, **kw):
     """ 
     Retorna todos los registros
     Retorna una página HTML si no se especifica JSON
     """
     id_usuario = UrlParser.parse_id(request.url, "usuarios")
     usuario = Usuario.por_id(id_usuario)
     puede_asignar = PoseePermiso("asignar-desasignar rol") \
                                     .is_met(request.environ)
     
     titulo = "Roles Desasignados de Sistema para: %s" % usuario.nombre_usuario
                                     
     if request.response_type == 'application/json':
         return self.table_filler.get_value(usuario=usuario, 
                                             asignados=False,
                                             **kw)
     if not getattr(self.table.__class__, '__retrieves_own_value__', False):
         roles = self.table_filler.get_value(usuario=usuario, 
                                             asignados=False,
                                             **kw)
     else:
         roles = []
         
     tmpl_context.widget = self.table
     atras = "/usuarios/"
     return dict(lista_elementos=roles, 
                 page=titulo, 
                 titulo=titulo, 
                 columnas=self.columnas,
                 opciones=self.opciones,
                 url_action=self.action, 
                 atras=atras,
                 puede_asignar=puede_asignar)
Example #47
0
    def new(self, *args, **kw):
        """Despliega una pagina para crear un tipo_item"""
        id_fase = UrlParser.parse_id(request.url, "fases")
        if not id_fase:
            id_fase = UrlParser.parse_id(request.url, "fases_ti")

        pp = PoseePermiso('crear tipo item', id_fase=id_fase)
        if not pp.is_met(request.environ):
            flash(pp.message % pp.nombre_permiso, 'warning')
            redirect("./")
            
        atras = self.action
        tmpl_context.widget = self.new_form
        return dict(value=kw, 
                    page=u"Nuevo Tipo de Ítem", 
                    action=self.action, 
                    atras=atras)
Example #48
0
 def _do_get_provider_count_and_objs(self, id_proyecto=None, **kw):
     """
     Retorna la Lista los proyectos del sistema sobre
     """
     if id_proyecto:
         proy  = Proyecto.por_id(id_proyecto)
         return 1, [proy]
         
     count, lista = super(ProyectoTableFiller, self).\
                         _do_get_provider_count_and_objs(**kw)
     filtrados = []                    
     for p in lista:
         pp = PoseePermiso(u"modificar proyecto", id_proyecto=p.id_proyecto)
         if pp.is_met(request.environ):
             filtrados.append(p)
         
     return len(filtrados), filtrados         
Example #49
0
 def new(self, *args, **kw):
     """Pagina para generar una nueva linea base"""
     id_fase = UrlParser.parse_id(request.url, "fases")
     pp = PoseePermiso("crear lb", id_fase=id_fase)
     if not id_fase:
         flash("Se Debe especificar una fase", "warning")
         redirect("../")
     if not pp.is_met(request.environ):
         flash(pp.message % pp.nombre_permiso, 'warning')
         redirect("../")
     fase = Fase.por_id(id_fase)
     titulo = u"Generar LB para Fase: %s" % fase.nombre
     tmpl_context.tabla_items = item_generar_table
     items = item_generar_table_filler.get_value(id_fase=fase.id_fase)
     return dict(items=items,
                 page=titulo, 
                 atras='./')
Example #50
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 #51
0
 def edit(self, *args, **kw):
     """Despliega una pagina para modificar el atributo"""
     id_tipo_item = UrlParser.parse_id(request.url, "tipositems")
     url_action = "../"
    
     pp = PoseePermiso('redefinir tipo item',
                       id_tipo_item=id_tipo_item)
     if not pp.is_met(request.environ):
         flash(pp.message % pp.nombre_permiso, 'warning')
         redirect(url_action)
     tmpl_context.widget = self.edit_form
     value = self.edit_filler.get_value( \
                  values={'id_atributos_por_tipo_item': int(args[0])})
     value['_method'] = 'PUT'
     page = "Atributo {nombre}".format(nombre=value["nombre"])
     return dict(value=value, 
                 page=page, 
                 atras=url_action)
Example #52
0
    def post(self, *args, **kw):
        """create a new record"""
        id_tipo_item = UrlParser.parse_id(request.url, "tipositems")
        url_action = "./"

        pp = PoseePermiso('redefinir tipo item',id_tipo_item=id_tipo_item)
                          
        if not pp.is_met(request.environ):
            flash(pp.message % pp.nombre_permiso, 'warning')
            redirect(url_action)
            
        if kw.has_key("sprox_id"):
            del kw["sprox_id"]

        tipo = TipoItem.por_id(id_tipo_item)
        try:
            tipo.agregar_atributo(**kw)
        except NombreDeAtributoError, err:
            flash(unicode(err), "warning")
Example #53
0
    def post(self, *args, **kw):
        """create a new record"""
        id_proyecto = UrlParser.parse_id(request.url, "proyectos")
        id_fase = UrlParser.parse_id(request.url, "fases")
        if not id_proyecto:
            id_proyecto = UrlParser.parse_id(request.url, "proyectos_fase")
            if not id_proyecto:
                id_proyecto = UrlParser.parse_id(request.url, "proyectos_fase_ti")
                id_fase = UrlParser.parse_id(request.url, "fases_ti")

        pp = PoseePermiso('crear tipo item', id_fase=id_fase)
        url_action = self.action
        
        if not pp.is_met(request.environ):
            flash(pp.message % pp.nombre_permiso, 'warning')
            redirect(url_action)
            
        if kw.has_key("sprox_id"):
            del kw["sprox_id"]
            
        id_padre = int(kw["id_padre"])
        id_importado = kw["id_importado"]
        
        if (kw["id_importado"]):
            id_importado = int(kw["id_importado"])
        mezclar = False
        if kw.has_key("mezclar"):
            mezclar = kw["mezclar"]
            del kw["mezclar"]
        del kw["id_padre"]
        del kw["id_importado"]
        
        proy = Proyecto.por_id(id_proyecto)
        tipo = proy.definir_tipo_item(id_padre, id_importado, mezclar, **kw)
        
        #Creamos el rol miembro  de tipo de ítem
        #plant_m = Rol.obtener_rol_plantilla(nombre_rol=u"Miembro de Tipo Item")
        #rol_m = Rol.nuevo_rol_desde_plantilla(plantilla=plant_m, 
        #                                      id=tipo.id_tipo_item)
        
        flash(u"Creacion exitosa")
        redirect(url_action)
Example #54
0
 def edit(self, *args, **kw):
     """Despliega una pagina para realizar modificaciones"""
     id_fase = UrlParser.parse_id(request.url, "fases")
     fase = Fase.por_id(int(id_fase))
     id_proyecto = UrlParser.parse_id(request.url, "proyectos")
     atras = "./"
     if not id_proyecto:
         id_proyecto = UrlParser.parse_id(request.url, "proyectos_fase")
         
     pp = PoseePermiso('modificar fase', id_fase=id_fase)
     if not pp.is_met(request.environ):
         flash(pp.message % pp.nombre_permiso, 'warning')
         redirect("./")
         
     tmpl_context.widget = FaseEditForm(DBSession)
     value = self.edit_filler.get_value(values={'id_fase': id_fase})
     page = u"Modificar Fase: %s" % value["nombre"]
     return dict(value=value,
                 page=page,
                 atras=atras)
Example #55
0
    def edit(self, *args, **kw):
        """Despliega una pagina para modificar usuario"""
        username = request.identity['repoze.who.userid']
        usuario = Usuario.by_user_name(username)
        
        if usuario.id_usuario != int(args[0]):
            pp = PoseePermiso('modificar usuario')
            if not pp.is_met(request.environ):
                flash(pp.message % pp.nombre_permiso, 'warning')
                redirect("/usuarios")
        
        tmpl_context.widget = self.edit_form

        user = Usuario.por_id(args[0])
        page = "Usuario {nombre}".format(nombre=user.nombre_usuario)
        atras = "/usuarios/"
        value = self.edit_filler.get_value(values={'id_usuario': args[0]})
        value['_method'] = 'PUT'
        return dict(value=value,
                    page=page,
                    id=args[0], 
                    atras=atras
                    )
Example #56
0
    def edit(self, *args, **kw):
        """Despliega una pagina para modificar tipo_item"""
        id_tipo = UrlParser.parse_id(request.url, "tipositems")
        id_fase = UrlParser.parse_id(request.url, "fases")
        if not id_fase:
            id_fase = UrlParser.parse_id(request.url, "fases_ti")
        
        value = self.edit_filler.get_value(values={'id_tipo_item': id_tipo})
        url_action = "./"
        pp = PoseePermiso('redefinir tipo item', id_tipo_item=id_tipo)
                          
        if not pp.is_met(request.environ):
            flash(pp.message % pp.nombre_permiso, 'warning')
            redirect(url_action)

        tmpl_context.widget = self.edit_form
        value['_method'] = 'PUT'
        page = "Tipo Item: {nombre}".format(nombre=value["nombre"])
        return dict(value=value, 
                    page=page, 
                    atras=url_action, 
                    url_action=url_action
                    )
Example #57
0
    def __actions__(self, obj):
        """Links de acciones para un registro dado"""
        value = '<div>'
        clase = 'actions'
        url_cont = "/proyectos/%d/rolesproyecto/" % obj.id_proyecto
        perm_mod = PoseePermiso('modificar rol', id_proyecto=obj.id_proyecto)
        perm_del = PoseePermiso('eliminar rol', id_proyecto=obj.id_proyecto)
            
        if perm_mod.is_met(request.environ):
            value += '<div>' + \
                        '<a href="' +  url_cont + str(obj.id_rol) + "/edit"+  \
                        '" class="' + clase + '">Modificar</a>' + \
                     '</div><br />'

        if perm_del.is_met(request.environ):
            value += '<div><form method="POST" action="./' + str(obj.id_rol) + '" class="button-to">'+\
                     '<input type="hidden" name="_method" value="DELETE" />' +\
                     '<input onclick="return confirm(\'Está seguro?\');" value="Delete" type="submit" '+\
                     'style="background-color: transparent; float:left; border:0; color: #286571;'+\
                     'display: inline; margin: 0; padding: 0;" class="' + clase + '"/>'+\
                     '</form></div><br />'
        value += '</div>'
        return value