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
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
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
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
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
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
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
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
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
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)
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
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
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
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
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
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 )
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)
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
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
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
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
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
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
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
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
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 )
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')
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')
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
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
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
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