示例#1
0
    def __actions__(self, obj):
        """Links de acciones para un registro dado"""

        if UrlParser.parse_nombre(request.url, "versiones"):
            #no se hace nada desde el controlador de versiones.
            return '<div></div>'

        value = '<div>'
        clase = 'actions_fase'
        id = str(obj.id_atributos_por_item)
        controller = "./atributos/" + id
        id_item = UrlParser.parse_id(request.url, "items")
        item = Item.por_id(id_item)
        
        if UrlParser.parse_nombre(request.url, "atributos"):
            controller = id

        #if PoseePermiso('modificar item', 
        #                id_fase=item.id_fase).is_met(request.environ):
        if PoseePermiso('modificar item', 
                        id_tipo_item=item.id_tipo_item).is_met(request.environ):
            value += '<div>' + \
                        '<a href="./'+ controller +'/edit" ' + \
                        'class="' + clase + '">Modificar</a>' + \
                     '</div><br />'
        
        value += '</div>'
        return value
示例#2
0
    def __actions__(self, obj):
        """Links de acciones para un registro dado"""

        if UrlParser.parse_nombre(request.url, "versiones"):
            #no se hace nada desde el controlador de versiones.
            return '<div></div>'

        value = '<div>'
        clase = 'actions_fase'
        id = str(obj.id_atributos_por_item)
        controller = "./atributos/" + id
        id_item = UrlParser.parse_id(request.url, "items")
        item = Item.por_id(id_item)

        if UrlParser.parse_nombre(request.url, "atributos"):
            controller = id

        #if PoseePermiso('modificar item',
        #                id_fase=item.id_fase).is_met(request.environ):
        if PoseePermiso('modificar item',
                        id_tipo_item=item.id_tipo_item).is_met(
                            request.environ):
            value += '<div>' + \
                        '<a href="./'+ controller +'/edit" ' + \
                        'class="' + clase + '">Modificar</a>' + \
                     '</div><br />'

        value += '</div>'
        return value
示例#3
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
示例#4
0
 def _do_get_provider_count_and_objs(self, id_version=None, **kw):
     """
     Recupera las relaciones de la versión del ítem indicado.
     """
     count, lista = super(RelacionTableFiller, self).\
                         _do_get_provider_count_and_objs(**kw)
     
     tipo = "a-s"
     if (UrlParser.parse_nombre(request.url, "relaciones_ph")):
         tipo = "p-h"
     
     filtrados = []                    
     if id_version:
         p_item = PropiedadItem.por_id(id_version)
         item = Item.por_id(p_item.id_item_actual)
         #ver este permiso
         ap = AlgunPermiso(tipo='Fase',
                           id_fase=item.id_fase).is_met(request.environ)
         if ap:
             
             for rpi in p_item.relaciones:
                 if (rpi.relacion in lista) and \
                     rpi.relacion.tipo == Relacion.tipo_relaciones[tipo]:
                     filtrados.append(rpi.relacion)
     
     return len(filtrados), filtrados
示例#5
0
    def __actions__(self, obj):
        """Links de acciones para un registro dado"""

        if UrlParser.parse_nombre(request.url, "versiones"):
            #no se hace nada desde el controlador de versiones.
            return '<div></div>'

        value = '<div>'
        clase = 'actions_fase'
        id = str(obj.id_relacion)
        controller = "./" + id
        id_item = UrlParser.parse_id(request.url, "items")
        
        if id_item:
            item = Item.por_id(id_item)
            p_item = PropiedadItem.por_id(item.id_propiedad_item)

            otro = obj.obtener_otro_item(id_item)
            p_otro = PropiedadItem.por_id(otro.id_propiedad_item)
        
            if (p_item.estado not in [u"Bloqueado", u"Revisión-Bloq", u"Eliminado"] and\
                    obj.id_anterior != id_item or p_otro.estado == u"Eliminado"):
                    
                if (PoseePermiso('modificar item', 
                                id_fase=item.id_fase).is_met(request.environ) ):
                    value += '<div><form method="POST" action="' + controller + '" 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;' + clase + '"/>'+\
                             '</form></div><br />'
        
        value += '</div>'
        return value
示例#6
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)        
        
        value += '<div>' + \
                    '<a href="' + url_cont + '/edit" ' + \
                    'class="' + clase + '">Ver</a>' + \
                 '</div><br />'

        value += '<div>' + \
                    '<a href="' + url_cont + '/atributostipoitem/" ' + \
                    'class="' + clase + '">Atributos</a>' + \
                 '</div><br />'        
        
        value += '</div>'
        return value
示例#7
0
    def _do_get_provider_count_and_objs(self, id_version=None, **kw):
        """
        Recupera las relaciones de la versión del ítem indicado.
        """
        count, lista = super(RelacionTableFiller, self).\
                            _do_get_provider_count_and_objs(**kw)

        tipo = "a-s"
        if (UrlParser.parse_nombre(request.url, "relaciones_ph")):
            tipo = "p-h"

        filtrados = []
        if id_version:
            p_item = PropiedadItem.por_id(id_version)
            item = Item.por_id(p_item.id_item_actual)
            #ver este permiso
            ap = AlgunPermiso(tipo='Fase',
                              id_fase=item.id_fase).is_met(request.environ)
            if ap:

                for rpi in p_item.relaciones:
                    if (rpi.relacion in lista) and \
                        rpi.relacion.tipo == Relacion.tipo_relaciones[tipo]:
                        filtrados.append(rpi.relacion)

        return len(filtrados), filtrados
示例#8
0
    def __actions__(self, obj):
        """Links de acciones para un registro dado"""

        if UrlParser.parse_nombre(request.url, "versiones"):
            #no se hace nada desde el controlador de versiones.
            return '<div></div>'

        value = '<div>'
        clase = 'actions_fase'
        id = str(obj.id_relacion)
        controller = "./" + id
        id_item = UrlParser.parse_id(request.url, "items")

        if id_item:
            item = Item.por_id(id_item)
            p_item = PropiedadItem.por_id(item.id_propiedad_item)

            otro = obj.obtener_otro_item(id_item)
            p_otro = PropiedadItem.por_id(otro.id_propiedad_item)

            if (p_item.estado not in [u"Bloqueado", u"Revisión-Bloq", u"Eliminado"] and\
                    obj.id_anterior != id_item or p_otro.estado == u"Eliminado"):

                if (PoseePermiso('modificar item',
                                 id_fase=item.id_fase).is_met(
                                     request.environ)):
                    value += '<div><form method="POST" action="' + controller + '" 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;' + clase + '"/>'+\
                             '</form></div><br />'

        value += '</div>'
        return value
示例#9
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
示例#10
0
    def get_all(self, *args, **kw):
        """ 
        Retorna todos los registros
        Retorna una página HTML si no se especifica JSON
        """
        id_item = UrlParser.parse_id(request.url, "items")
        item = Item.por_id(id_item)

        controller = "relacionar_as"
        tipo = "A-S"
        if (UrlParser.parse_nombre(request.url, "relaciones_ph")):
            controller = "relacionar_ph"
            tipo = "P-H"

        #TODO ACENTO EN RELACION
        page = u"Relacion {tipo} con ítem: {codigo}".format(tipo=tipo,
                                                            codigo=item.codigo)
        tmpl_context.tabla_items = item_relacion_table
        items = item_relacion_table_filler.get_value(id_item=id_item,\
                                                          tipo=tipo, **kw)

        atras = "../"

        return dict(items=items,
                    page=page,
                    title=self.title,
                    controlador=controller,
                    atras=atras)
示例#11
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)

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

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

        value += '</div>'
        return value
示例#12
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
示例#13
0
    def __actions__(self, obj):
        """Links de acciones para un registro dado"""

        value = '<div>'
        clase = 'actions_fase'
        id_item = UrlParser.parse_id(request.url, "items")
        item = Item.por_id(id_item)
        p_item = PropiedadItem.por_id(item.id_propiedad_item)
        id = str(obj.id_archivo_externo)
        #if PoseePermiso('modificar item', 
        #                id_fase=item.id_fase).is_met(request.environ):
        if PoseePermiso('modificar item', 
                        id_tipo_item=item.id_tipo_item).is_met(request.environ):
            value += '<div>' + \
                        '<a href="./descargar/' + id + '" ' +  \
                        'class="' + clase + '">Descargar</a>' + \
                     '</div><br />'
            if not UrlParser.parse_nombre(request.url, "versiones") and \
                   p_item.estado not in [u"Eliminado", u"Bloqueado", 
                                       u"Revisión-Bloq"]:
                #No se puede eliminar desde el controlador de versiones.
                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;' + clase + '"/>'+\
                         '</form></div><br />'

        value += '</div>'
        return value
示例#14
0
    def __actions__(self, obj):
        """Links de acciones para un registro dado"""

        value = '<div>'
        clase = 'actions_fase'
        item = Item.por_id(obj.id_item_actual)
        p_item = PropiedadItem.por_id(item.id_propiedad_item)
        id = obj.id_propiedad_item

        controller = "./" + str(obj.id_propiedad_item)
        controller2 = "./"
        if (UrlParser.parse_nombre(request.url, "post_buscar")):#desde post_buscar
            controller = "../" + str(obj.id_propiedad_item)
            controller2 = "../"

            
        
        value += '<div>' + \
                    '<a href="' + controller + '/edit" ' +  \
                    'class="' + clase + '">Detalles</a>' + \
                 '</div><br />'
                 
        value += '<div>' + \
                    '<a href="' + controller + '/atributos" ' +  \
                    'class="' + clase + '">Atributos</a>' + \
                 '</div><br />'


        if PoseePermiso('modificar item',
                        id_tipo_item=item.id_tipo_item).is_met(request.environ):
                
            if p_item.estado not in [u"Bloqueado", u"Eliminado", u"Revisión-Bloq"] and\
                id != p_item.id_propiedad_item:
                value += '<div>' + \
                            '<a href="' + controller2 + 'revertir/'+ str(id) + '" ' + \
                            'class="' + clase + '">Volver a versión</a>' + \
                         '</div><br />'
                     
        value += '<div>' + \
            '<a href="' + controller +'/adjuntos" ' + \
            'class="' + clase + '">Adjuntos</a>' + \
            '</div><br />'
            
        value += '<div>' + \
            '<a href="' + controller +'/relaciones_ph" ' + \
            'class="' + clase + '">Relaciones P-H</a>' + \
            '</div><br />'
            
        value += '<div>' + \
            '<a href="' + controller +'/relaciones_as" ' + \
            'class="' + clase + '">Relaciones A-S</a>' + \
            '</div><br />'
        
        value += '<div>' + \
            '<a href="' + controller +'/historial" ' + \
            'class="' + clase + '">Historial</a>' + \
            '</div><br />'
                    
        value += '</div>'
        return value
示例#15
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
示例#16
0
 def get_all(self, *args, **kw):
     """ 
     Retorna todos los registros
     Retorna una página HTML si no se especifica JSON
     """
     id_item = UrlParser.parse_id(request.url, "items")
     id_version = UrlParser.parse_id(request.url, "versiones")
     titulo = self.title
     relaciones = []
     tabla = self.table
     puede_relacionar = False
     puede_nueva = False
     atras = "../../"    
       
     if id_version:
         #desde controller de versiones
         p_item = PropiedadItem.por_id(id_version)
         titulo = u"Relaciones de Version: %d" % p_item.version
         relaciones = self.table_filler. \
                     get_value(id_version=id_version, **kw)
     elif id_item:
         #desde controller de items.
         item = Item.por_id(id_item)
         titulo = u"Relaciones de Ítem: %s" % item.codigo
         atras = "../"
         
         relaciones = relacion_item_table_filler. \
                     get_value(id_version=item.id_propiedad_item, **kw)
         tabla = relacion_item_table
         
         puede_relacionar = PoseePermiso('modificar item', \
                             id_tipo_item=item.id_tipo_item).is_met(request.environ)
         fase = Fase.por_id(item.id_fase)
         if (UrlParser.parse_nombre(request.url, "relaciones_as")):
             if (fase.posicion > 1):
                 puede_nueva = True
         else:
             puede_nueva = True
             
     tmpl_context.widget = tabla
     return dict(lista_elementos=relaciones, 
                 page=titulo,
                 titulo=titulo, 
                 modelo=self.model.__name__, 
                 #columnas=self.columnas,
                 #opciones=self.opciones,
                 #comboboxes=self.comboboxes,
                 url_action=self.tmp_action,
                 puede_relacionar=puede_relacionar,
                 atras=atras,
                 puede_nueva=puede_nueva
                 )
示例#17
0
    def get_all(self, *args, **kw):
        """ 
        Retorna todos los registros
        Retorna una página HTML si no se especifica JSON
        """
        id_item = UrlParser.parse_id(request.url, "items")
        id_version = UrlParser.parse_id(request.url, "versiones")
        titulo = self.title
        relaciones = []
        tabla = self.table
        puede_relacionar = False
        puede_nueva = False
        atras = "../../"

        if id_version:
            #desde controller de versiones
            p_item = PropiedadItem.por_id(id_version)
            titulo = u"Relaciones de Version: %d" % p_item.version
            relaciones = self.table_filler. \
                        get_value(id_version=id_version, **kw)
        elif id_item:
            #desde controller de items.
            item = Item.por_id(id_item)
            titulo = u"Relaciones de Ítem: %s" % item.codigo
            atras = "../"

            relaciones = relacion_item_table_filler. \
                        get_value(id_version=item.id_propiedad_item, **kw)
            tabla = relacion_item_table

            puede_relacionar = PoseePermiso('modificar item', \
                                id_tipo_item=item.id_tipo_item).is_met(request.environ)
            fase = Fase.por_id(item.id_fase)
            if (UrlParser.parse_nombre(request.url, "relaciones_as")):
                if (fase.posicion > 1):
                    puede_nueva = True
            else:
                puede_nueva = True

        tmpl_context.widget = tabla
        return dict(
            lista_elementos=relaciones,
            page=titulo,
            titulo=titulo,
            modelo=self.model.__name__,
            #columnas=self.columnas,
            #opciones=self.opciones,
            #comboboxes=self.comboboxes,
            url_action=self.tmp_action,
            puede_relacionar=puede_relacionar,
            atras=atras,
            puede_nueva=puede_nueva)
示例#18
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_rol) + '" ' + \
                 'class="' + clase + '">Ver</a>' + \
              '</div><br />'
     value += "</div>"
     return value
示例#19
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_rol) + '" ' + \
                 'class="' + clase + '">Ver</a>' + \
              '</div><br />'
     value += "</div>"
     return value
示例#20
0
    def __actions__(self, obj):
        controller = "relacionar_as"
        clase = "action"
        if (UrlParser.parse_nombre(request.url, "relaciones_ph")):
            controller = "relacionar_ph"

        if PoseePermiso('modificar item',
                        id_tipo_item=obj.id_tipo_item).is_met(request.environ):
            value = '<div>' + \
                        '<a href="./' + controller + '/' + str(obj.id_item) +'" ' + \
                        'class="' + clase + '">Relacionar</a>' + \
                     '</div>'

        return value
示例#21
0
    def __actions__(self, obj):
        """Links de acciones para un registro dado"""
        value = '<div>'
        clase = 'actions'
        controller = './' + str(obj.id_proyecto)
        if (UrlParser.parse_nombre(request.url, "post_buscar")):
            controller = '../' + str(obj.id_proyecto)
            
        value += '<div>' + \
                    '<a href="' + controller + '/fases_desarrollo/" ' + \
                    'class="' + clase + '">Seleccionar</a>' + \
                 '</div><br />'

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

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

        value += '</div>'
        return value
示例#23
0
    def __actions__(self, obj):
        """Links de acciones para un registro dado"""
        value = '<div>'
        clase = 'actions'

        url = "./"
        if UrlParser.parse_nombre(request.url, "post_buscar"):
            url = "../"
            
        value += '<div>' + \
                    '<a href="'+ url + str(obj.id_proyecto) + '/fases/" ' + \
                    'class="' + clase + '">Seleccionar</a>' + \
                 '</div><br />'

        value += '</div>'
        return value
示例#24
0
    def __actions__(self, obj):
        """Links de acciones para un registro dado"""

        value = '<div>'
        clase = 'actions_fase'
        id = str(obj.id_lb)
        id_fase = UrlParser.parse_id(request.url, "fases")
        url_cont = "./"
        if UrlParser.parse_nombre(request.url, "post_buscar"):
            url_cont = "../"
        if PoseePermiso('consultar lb',
                        id_fase=id_fase).is_met(request.environ):
            
            value += '<div>' + '<a href="' + url_cont + 'examinar/'  + id + \
                        '" class="' + clase + '">Examinar</a>' + \
                     '</div><br />'                
        value += '</div>'
        return value
示例#25
0
    def __actions__(self, obj):
        """Links de acciones para un registro dado"""

        value = '<div>'
        clase = 'actions_fase'
        controller = "./" #+ str(obj.id_lb)
        if UrlParser.parse_nombre(request.url, "post_buscar"):
            controller = "../"
        id_fase = UrlParser.parse_id(request.url, "fases")
        
        id = str(obj.id_lb)
        if PoseePermiso('abrir-cerrar lb', 
                         id_fase=id_fase).is_met(request.environ):
            if obj.estado in [u"Cerrada", u"Para-Revisión"]:
                value += '<div>' + \
                            '<a href="'+ controller +'abrir/' + id + '" ' + \
                            'class="' + clase + '">Abrir</a>' + \
                         '</div><br />'
            elif obj.estado == u"Abierta":
                value += '<div>' + \
                            '<a href="'+ controller +'post_cerrar/' + id + '" ' + \
                            'class="' + clase + '">Cerrar</a>' + \
                         '</div><br />'
            '''
            elif obj.estado == u"Cerrada":
                value += '<div>' + \
                            '<a href="'+ controller +'partir/' + id + '" ' + \
                            'class="' + clase + '">Partir</a>' + \
                         '</div><br />'
            '''

        value += '<div>' + \
                    '<a href="'+ controller +'examinar/' + id + '" ' + \
                    'class="' + clase + '">Examinar</a>' + \
                 '</div><br />'        

        value += '<div>' + \
                    '<a href="'+ controller + id + '/historiallbs" ' + \
                    'class="' + clase + '">Historial</a>' + \
                 '</div><br />' 

        value += "</div>"
        return value
示例#26
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")
        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
        tipo_items = self.table_filler.get_value(id_fase=id_fase, **kw)
        tmpl_context.widget = self.table
        url_action = self.action
        
        if UrlParser.parse_nombre(request.url, "post_buscar"):
            url_action = "../"

        
        return dict(lista_elementos=tipo_items,
                    page=titulo, 
                    titulo=titulo, 
                    modelo=self.model.__name__, 
                    columnas=self.columnas,
                    opciones=self.opciones, 
                    url_action=url_action,
                    puede_crear=puede_crear,
                    atras=atras
                    )
示例#27
0
 def put(self, *args, **kw):
     """update"""
     if "sprox_id" in kw:
         del kw["sprox_id"]
     id_item = UrlParser.parse_id(request.url, "items")
     if UrlParser.parse_nombre(request.url, "versiones"):
         #No debe poder modificarse, solo visualizar. TODO
         redirect('../')
     if id_item:
         #desde controller de items.
         id = int(args[0])  #identificador del atributo
         item = Item.por_id(id_item)
         p_item = PropiedadItem.por_id(item.id_propiedad_item)
         valor = kw["valor"]
         user_name = request.credentials["repoze.what.userid"]
         user = Usuario.by_user_name(user_name)
         try:
             p_item.modificar_atributo(user, id, valor)
         except ModificarItemError, err:
             flash(unicode(err), 'warning')
示例#28
0
 def put(self, *args, **kw):
     """update"""
     if "sprox_id" in kw:
         del kw["sprox_id"]
     id_item = UrlParser.parse_id(request.url, "items")
     if UrlParser.parse_nombre(request.url, "versiones"):
         #No debe poder modificarse, solo visualizar. TODO
         redirect('../')
     if id_item:
         #desde controller de items.
         id = int(args[0]) #identificador del atributo
         item = Item.por_id(id_item)
         p_item = PropiedadItem.por_id(item.id_propiedad_item)
         valor = kw["valor"]
         user_name = request.credentials["repoze.what.userid"]
         user = Usuario.by_user_name(user_name)
         try:
             p_item.modificar_atributo(user, id, valor)
         except ModificarItemError, err:
             flash(unicode(err), 'warning')
示例#29
0
    def __actions__(self, obj):
        """Links de acciones para un registro dado"""

        clase = 'actions_fase'
        value = "<div>"

        if PoseePermiso('modificar usuario').is_met(request.environ):
            value += '<div>' + \
                        '<a href="/usuarios/'+ str(obj.id_usuario) +'/edit" ' + \
                        'class="' + clase + '">Modificar</a>' + \
                     '</div><br />'
                     
        if PoseePermiso('asignar-desasignar rol').is_met(request.environ):
            value += '<div>' + \
                        '<a href="/usuarios/' + str(obj.id_usuario) + \
                                '/roles_sis_asignados" ' + \
                        'class="' + clase + '">Roles Asig.</a>' + \
                     '</div><br />'
                     
            value += '<div>' + \
                        '<a href="/usuarios/' + str(obj.id_usuario) + \
                                '/roles_sis_desasignados" ' + \
                        'class="' + clase + '">Roles Desa.</a>' + \
                     '</div><br />'  

        if PoseePermiso('eliminar usuario').is_met(request.environ):
            url = ""
            if UrlParser.parse_nombre(request.url, "post_buscar"):
                url = "../"
            value += '<div><form method="POST" action="' + url + str(obj.id_usuario) + '" 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
示例#30
0
    def __actions__(self, obj):
        """Links de acciones para un registro dado"""

        value = '<div>'
        clase = 'actions_items'

        controller = "./" + str(obj.id_item)
        controller2 = "./"
        eliminar_cont = "./" + str(obj.id_item)
        if (UrlParser.parse_id(request.url, "items") or\
            UrlParser.parse_nombre(request.url, "post_buscar")):#desde get_one o post_buscar
            controller = "../" + str(obj.id_item)
            controller2 = "../"
            eliminar_cont = "../" + str(obj.id_item)

        p_item = PropiedadItem.por_id(obj.id_propiedad_item)  #version actual.

        if PoseePermiso('modificar item',
                        id_tipo_item=obj.id_tipo_item).is_met(request.environ):
            if p_item.estado not in [
                    u"Bloqueado", u"Revisión-Bloq", u"Eliminado"
            ]:
                value += '<div>' + \
                            '<a href="'+ controller +'/edit" ' + \
                            'class="' + clase + '">Modificar</a>' + \
                         '</div><br />'

            #atributos es el controlador de atributos (por el tipo) del item.
            value += '<div>' + \
                        '<a href="'+ controller +'/atributos" ' + \
                        'class="' + clase + '">Atributos</a>' + \
                     '</div><br />'

            #relaciones a-s del item.
            value += '<div>' + \
                        '<a href="'+ controller +'/relaciones_as" ' + \
                        'class="' + clase + '">Relaciones A-S</a>' + \
                     '</div><br />'

            #relaciones p-h del item.
            value += '<div>' + \
                        '<a href="'+ controller +'/relaciones_ph" ' + \
                        'class="' + clase + '">Relaciones P-H</a>' + \
                     '</div><br />'

            #adjuntos es el controlador de archivos adjuntos al item.
            value += '<div>' + \
                        '<a href="'+ controller +'/adjuntos" ' + \
                        'class="' + clase + '">Adjuntos</a>' + \
                     '</div><br />'

            #versiones es el controlador de versiones del item.
            value += '<div>' + \
                        '<a href="'+ controller +'/versiones" ' + \
                        'class="' + clase + '">Versiones</a>' + \
                     '</div><br />'

        eliminar = False
        revivir = False
        aprobar = False
        desaprobar = False
        st = p_item.estado
        if st == u"Desaprobado" or st == u"Revisión-Desbloq":
            eliminar = True
            aprobar = True
        elif st == u"Aprobado":
            eliminar = True
            desaprobar = True
        elif st == u"Eliminado":
            revivir = True

        #if PoseePermiso('eliminar-revivir item',
        #                id_fase=obj.id_fase).is_met(request.environ):
        if PoseePermiso('eliminar-revivir item',
                        id_tipo_item=obj.id_tipo_item).is_met(request.environ):
            if revivir:
                value += '<div>' + \
                            '<a href="' + controller2 + '/revivir/' +str(obj.id_item) +'" ' + \
                            'class="' + clase + '">Revivir</a>' + \
                         '</div><br />'

        #if PoseePermiso('eliminar-revivir item',
        #                id_fase=obj.id_fase).is_met(request.environ):
        if PoseePermiso('eliminar-revivir item',
                        id_tipo_item=obj.id_tipo_item).is_met(request.environ):
            if eliminar:
                value += '<div><form method="POST" action="' + eliminar_cont + '" 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;' + clase + '"/>'+\
                         '</form></div><br />'

        #if PoseePermiso('aprobar-desaprobar item',
        #                id_fase=obj.id_fase).is_met(request.environ):
        if PoseePermiso('aprobar-desaprobar item',
                        id_tipo_item=obj.id_tipo_item).is_met(request.environ):
            if aprobar:
                value += '<div>' + \
                            '<a href="' + controller2 + 'aprobar/' +str(obj.id_item) +'" ' + \
                            'style="margin-left: -46px;" class="' + clase + '">Aprobar</a>' + \
                         '</div><br />'
            elif desaprobar:
                value += '<div>' + \
                            '<a href="' + controller2 + 'desaprobar/' +str(obj.id_item) +'" ' + \
                            'class="' + clase + '">Desaprobar</a>' + \
                         '</div><br />'

        #if PoseePermiso('calcular impacto',
        #                id_fase=obj.id_fase).is_met(request.environ):
        if PoseePermiso('calcular impacto',
                        id_tipo_item=obj.id_tipo_item).is_met(request.environ):
            value += '<div>' + \
                        '<a href="' + controller2 + 'calcular_impacto/' + str(obj.id_item) +'" ' + \
                        'class="' + clase + '">Calcular Impacto</a>' + \
                     '</div><br />'

        value += '</div>'
        return value
示例#31
0
    def __actions__(self, obj):
        """Links de acciones para un registro dado"""

        value = '<div>'
        clase = 'actions_fase'
        item = Item.por_id(obj.id_item_actual)
        p_item = PropiedadItem.por_id(item.id_propiedad_item)
        id = obj.id_propiedad_item

        controller = "./" + str(obj.id_propiedad_item)
        controller2 = "./"
        if (UrlParser.parse_nombre(request.url,
                                   "post_buscar")):  #desde post_buscar
            controller = "../" + str(obj.id_propiedad_item)
            controller2 = "../"



        value += '<div>' + \
                    '<a href="' + controller + '/edit" ' +  \
                    'class="' + clase + '">Detalles</a>' + \
                 '</div><br />'

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

        if PoseePermiso('modificar item',
                        id_tipo_item=item.id_tipo_item).is_met(
                            request.environ):

            if p_item.estado not in [u"Bloqueado", u"Eliminado", u"Revisión-Bloq"] and\
                id != p_item.id_propiedad_item:
                value += '<div>' + \
                            '<a href="' + controller2 + 'revertir/'+ str(id) + '" ' + \
                            'class="' + clase + '">Volver a versión</a>' + \
                         '</div><br />'

        value += '<div>' + \
            '<a href="' + controller +'/adjuntos" ' + \
            'class="' + clase + '">Adjuntos</a>' + \
            '</div><br />'

        value += '<div>' + \
            '<a href="' + controller +'/relaciones_ph" ' + \
            'class="' + clase + '">Relaciones P-H</a>' + \
            '</div><br />'

        value += '<div>' + \
            '<a href="' + controller +'/relaciones_as" ' + \
            'class="' + clase + '">Relaciones A-S</a>' + \
            '</div><br />'

        value += '<div>' + \
            '<a href="' + controller +'/historial" ' + \
            'class="' + clase + '">Historial</a>' + \
            '</div><br />'

        value += '</div>'
        return value
示例#32
0
文件: item.py 项目: jorgeramirez/LPM
    def __actions__(self, obj):
        """Links de acciones para un registro dado"""

        value = '<div>'
        clase = 'actions_items'
        
        controller = "./" + str(obj.id_item)
        controller2 = "./"
        eliminar_cont = "./" + str(obj.id_item) 
        if (UrlParser.parse_id(request.url, "items") or\
            UrlParser.parse_nombre(request.url, "post_buscar")):#desde get_one o post_buscar
            controller = "../" + str(obj.id_item)
            controller2 = "../"
            eliminar_cont = "../" + str(obj.id_item) 

        p_item = PropiedadItem.por_id(obj.id_propiedad_item) #version actual.    
        
        if PoseePermiso('modificar item', 
                        id_tipo_item=obj.id_tipo_item).is_met(request.environ):
            if p_item.estado not in [u"Bloqueado", u"Revisión-Bloq", u"Eliminado"]:
                value += '<div>' + \
                            '<a href="'+ controller +'/edit" ' + \
                            'class="' + clase + '">Modificar</a>' + \
                         '</div><br />'
                         
            #atributos es el controlador de atributos (por el tipo) del item.
            value += '<div>' + \
                        '<a href="'+ controller +'/atributos" ' + \
                        'class="' + clase + '">Atributos</a>' + \
                     '</div><br />'
            
            #relaciones a-s del item.
            value += '<div>' + \
                        '<a href="'+ controller +'/relaciones_as" ' + \
                        'class="' + clase + '">Relaciones A-S</a>' + \
                     '</div><br />'
                    
            #relaciones p-h del item.
            value += '<div>' + \
                        '<a href="'+ controller +'/relaciones_ph" ' + \
                        'class="' + clase + '">Relaciones P-H</a>' + \
                     '</div><br />'
                     
            #adjuntos es el controlador de archivos adjuntos al item.
            value += '<div>' + \
                        '<a href="'+ controller +'/adjuntos" ' + \
                        'class="' + clase + '">Adjuntos</a>' + \
                     '</div><br />'         
            
            #versiones es el controlador de versiones del item.
            value += '<div>' + \
                        '<a href="'+ controller +'/versiones" ' + \
                        'class="' + clase + '">Versiones</a>' + \
                     '</div><br />'
        
        eliminar = False
        revivir = False
        aprobar = False
        desaprobar = False
        st = p_item.estado
        if st == u"Desaprobado" or st == u"Revisión-Desbloq":
            eliminar = True
            aprobar = True
        elif st == u"Aprobado":
            eliminar = True
            desaprobar = True
        elif st == u"Eliminado":
            revivir = True
        
        #if PoseePermiso('eliminar-revivir item', 
        #                id_fase=obj.id_fase).is_met(request.environ):
        if PoseePermiso('eliminar-revivir item', 
                        id_tipo_item=obj.id_tipo_item).is_met(request.environ):
            if revivir:
                value += '<div>' + \
                            '<a href="' + controller2 + '/revivir/' +str(obj.id_item) +'" ' + \
                            'class="' + clase + '">Revivir</a>' + \
                         '</div><br />'
        
        
        #if PoseePermiso('eliminar-revivir item',
        #                id_fase=obj.id_fase).is_met(request.environ):
        if PoseePermiso('eliminar-revivir item',
                        id_tipo_item=obj.id_tipo_item).is_met(request.environ):
            if eliminar:
                value += '<div><form method="POST" action="' + eliminar_cont + '" 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;' + clase + '"/>'+\
                         '</form></div><br />'

     
            
        #if PoseePermiso('aprobar-desaprobar item', 
        #                id_fase=obj.id_fase).is_met(request.environ):
        if PoseePermiso('aprobar-desaprobar item', 
                        id_tipo_item=obj.id_tipo_item).is_met(request.environ):
            if aprobar:
                value += '<div>' + \
                            '<a href="' + controller2 + 'aprobar/' +str(obj.id_item) +'" ' + \
                            'style="margin-left: -46px;" class="' + clase + '">Aprobar</a>' + \
                         '</div><br />'
            elif desaprobar:
                value += '<div>' + \
                            '<a href="' + controller2 + 'desaprobar/' +str(obj.id_item) +'" ' + \
                            'class="' + clase + '">Desaprobar</a>' + \
                         '</div><br />'
                         
        #if PoseePermiso('calcular impacto', 
        #                id_fase=obj.id_fase).is_met(request.environ):
        if PoseePermiso('calcular impacto', 
                        id_tipo_item=obj.id_tipo_item).is_met(request.environ):
                value += '<div>' + \
                            '<a href="' + controller2 + 'calcular_impacto/' + str(obj.id_item) +'" ' + \
                            'class="' + clase + '">Calcular Impacto</a>' + \
                         '</div><br />'
        
        value += '</div>'
        return value