本文整理汇总了Python中sap.model.DBSession.merge方法的典型用法代码示例。如果您正苦于以下问题:Python DBSession.merge方法的具体用法?Python DBSession.merge怎么用?Python DBSession.merge使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类sap.model.DBSession
的用法示例。
在下文中一共展示了DBSession.merge方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: iniciar_proyecto
# 需要导入模块: from sap.model import DBSession [as 别名]
# 或者: from sap.model.DBSession import merge [as 别名]
def iniciar_proyecto(self, idproyecto, **kw):
proyecto = DBSession.query(Proyecto).get(idproyecto)
proyecto.estado = estado_proyecto_util.get_by_codigo('Desarrollo')
DBSession.merge(proyecto)
redirect('/miproyecto/ver/'+str(idproyecto))
示例2: put
# 需要导入模块: from sap.model import DBSession [as 别名]
# 或者: from sap.model.DBSession import merge [as 别名]
def put(self, args={}, **kw):
"""
Evento invocado luego de un evento post en el form de editar
ecargado de persistir las modificaciones de las instancias.
@type args : Hash
@param args : Argumentos de template
@type kw : Hash
@param kw : Keywords
"""
del kw['sprox_id']
rol = DBSession.query(Rol).get(int(kw['rol_id']))
rol.nombre = kw['nombre']
rol.codigo = kw['codigo']
rol.descripcion = kw['descripcion']
rol.is_template = kw['is_template']
rol.permisos = []
for permiso_id in kw['permisos'] :
rol.permisos.append(DBSession.query(Permiso).get(permiso_id))
DBSession.merge(rol)
flash("El rol '"+rol.nombre+"' ha sido modificado correctamente.")
redirect("/administracion/rol/get_all")
示例3: revivir_item
# 需要导入模块: from sap.model import DBSession [as 别名]
# 或者: from sap.model.DBSession import merge [as 别名]
def revivir_item (self, historial_item):
"""
Restaura el item a su ultima version sin sus relaciones
"""
item = Item()
item.id_item = historial_item.id_item
item.nombre = historial_item.nombre
item.codigo = historial_item.codigo
#el estado del item es en desarrollo al revivir
item.estado = 2
item.tipo_item = historial_item.tipo_item
item.fase = historial_item.fase
item.version = historial_item.version
item.prioridad = historial_item.prioridad
item.complejidad = historial_item.complejidad
item.descripcion = historial_item.descripcion
item.observacion = historial_item.observacion
item.linea_base = historial_item.linea_base
#recuperar los detalles
historial_detalles = DBSession.query(HistorialDetalleItem).\
filter(HistorialDetalleItem.id_item==historial_item.id_item).\
all()
for hist_detalle in historial_detalles:
detalle = DetalleItem()
detalle.id_detalle = hist_detalle.id_detalle
detalle.id_item = hist_detalle.id_item
detalle.recurso = hist_detalle.recurso
detalle.valor = hist_detalle.valor
item.detalles.append(detalle)
DBSession.merge(item)
示例4: put
# 需要导入模块: from sap.model import DBSession [as 别名]
# 或者: from sap.model.DBSession import merge [as 别名]
def put(self, id, **kw):
"""
Evento invocado luego de un evento post en el form de editar
encargado de persistir las modificaciones de las instancias.
@type id : Integer
@param id : Identificador del Detalle del item.
@type kw : Hash
@param kw : Keywords
"""
detalle = DBSession.query(DetalleItem).get(id)
detalle.valor = kw['valor']
detalle.observacion = kw ['observacion']
DBSession.merge(detalle)
DBSession.flush()
item = DBSession.query(Item).get(detalle.id_item)
item_util.audit_item(item)
item.version += 1
DBSession.merge(item)
flash("El item atributo ha sido modificado correctamente.")
redirect('/miproyecto/fase/item/poner_en_revision/'+str(detalle.id_item))
示例5: put
# 需要导入模块: from sap.model import DBSession [as 别名]
# 或者: from sap.model.DBSession import merge [as 别名]
def put(self, args={}, **kw):
"""
Evento invocado luego de un evento post en el form de editar
ecargado de persistir las modificaciones de las instancias.
@type args : Hash
@param args : Argumentos de template
@type kw : Hash
@param kw : Keywords
"""
#Se obtiene de la base de datos el proyecto modifcado
proyecto = DBSession.query(Proyecto).get(int(kw['id_proyecto']))
#Se actualizan unicamente los campos actualizables
proyecto.nombre=kw['nombre']
proyecto.nro_fases = kw['nro_fases']
proyecto.descripcion = kw['descripcion']
#asignar lider
proyecto.lider = DBSession.query(Usuario).get(kw['lider'])
util.asignar_lider(proyecto)
DBSession.merge(proyecto)
flash("El proyecto ha sido '" +proyecto.nombre+ "' modificado correctamente.")
redirect("/administracion/proyecto/list")
示例6: put
# 需要导入模块: from sap.model import DBSession [as 别名]
# 或者: from sap.model.DBSession import merge [as 别名]
def put(self, id, **kw):
"""
Evento invocado luego de un evento post en el form de editar
ecargado de persistir las modificaciones de las instancias.
@type id : Integer
@param id : Identificador del usuario.
@type kw : Hash
@param kw : Keywords
"""
usuario = DBSession.query(Usuario).get( int(id) )
usuario.nombre = kw['nombre']
usuario.email_address = kw['email_address']
if usuario._password != kw['password'] :
print 'Actualizando la contrasenha'
usuario._set_password(kw['password'])
DBSession.merge(usuario)
flash("El usuario '"+usuario.nombre+"' ha sido modificado correctamente.")
redirect("/administracion/usuario/get_all")
示例7: aprobar_item
# 需要导入模块: from sap.model import DBSession [as 别名]
# 或者: from sap.model.DBSession import merge [as 别名]
def aprobar_item(self, iditem, **kw):
"""
Metodo para aprobar un item
"""
item = DBSession.query(Item).get(iditem)
item.estado = 1
idfase = item.fase
DBSession.merge(item)
flash("El item " + item.codigo+ " ha sido aprobado correctamente")
redirect('/miproyecto/fase/item/ver/'+str(iditem))
示例8: revertir_item
# 需要导入模块: from sap.model import DBSession [as 别名]
# 或者: from sap.model.DBSession import merge [as 别名]
def revertir_item (self, historial_item):
"""
Dada una entidad HistorialItem que representa una version
anterior del item en si se obtiene de la tabla las entradas de
esa version para que el item recupere los valores de esa version
"""
#debe ser una version posterior a la actual
item = DBSession.query(Item).get(historial_item.id_item)
version = int(item.version) + 1
item = Item()
item.id_item = historial_item.id_item
item.nombre = historial_item.nombre
item.codigo = historial_item.codigo
item.estado = 3#historial_item.estado
item.tipo_item = historial_item.tipo_item
item.fase = historial_item.fase
item.version = version
item.prioridad = historial_item.prioridad
item.complejidad = historial_item.complejidad
item.descripcion = historial_item.descripcion
item.observacion = historial_item.observacion
item.linea_base = historial_item.linea_base
#recuperar los detalles
historial_detalles = DBSession.query(HistorialDetalleItem).\
filter(HistorialDetalleItem.id_item==historial_item.id_item).\
all()
for hist_detalle in historial_detalles:
detalle = DetalleItem()
detalle.id_item_detalle = hist_detalle.id_detalle
detalle.id_item = hist_detalle.id_item
detalle.adjunto = hist_detalle.adjunto
detalle.observacion = hist_detalle.observacion
detalle.valor = hist_detalle.valor
item.detalles.append(detalle)
#recuperar los relaciones
historial_relaciones = DBSession.query(HistorialRelacion).\
filter((HistorialRelacion.id_item_1 or
HistorialRelacion.id_item_2) == item.id_item).\
all()
for hist_relacion in historial_relaciones:
relacion = RelacionItem()
if(DBSession.query(Item).get(hist_relacion.id_item_1)!=None and
DBSession.query(Item).get(hist_relacion.id_item_2)!=None):
relacion.id_item_actual = hist_relacion.id_item_1
relacion.id_item_relacionado = hist_relacion.id_item_2
relacion.relacion_parentesco = hist_relacion.id_tipo_relacion
DBSession.merge(relacion)
DBSession.merge(item)
示例9: eliminar
# 需要导入模块: from sap.model import DBSession [as 别名]
# 或者: from sap.model.DBSession import merge [as 别名]
def eliminar(self, id, **kw):
archivo = DBSession.query(Archivo).get(id)
item_util.audit_item(archivo.item)
archivo.item.version += 1
DBSession.merge(archivo.item)
id_item = archivo.id_item
DBSession.delete(archivo)
flash("El archivo ha sido eliminado correctamente.")
redirect('/miproyecto/fase/item/poner_en_revision/'+str(id_item))
示例10: post
# 需要导入模块: from sap.model import DBSession [as 别名]
# 或者: from sap.model.DBSession import merge [as 别名]
def post(self, idfase, args={},**kw):
"""
Evento invocado luego de un evento post en el form de crear
ecargado de persistir las nuevas instancias.
@type idfase : Integer
@param idfase : Identificador de la fase.
@type args : Hash
@param args : Argumentos de template
@type kw : Hash
@param kw : Keywords
"""
del kw['sprox_id']
"""
se crea la nueva relacion y se le asignan los valores de los combos
"""
if kw['item_1'] != None and kw['item_2'] != None:
relacion = RelacionItem()
relacion.id_item_actual = kw['item_1']
relacion.id_item_relacionado = kw['item_2']
relacion.relacion_parentesco = 2
DBSession.merge(relacion)
#auditar items y aumentar su version
item1 = DBSession.query(Item).get(kw['item_1'])
item2 = DBSession.query(Item).get(kw['item_2'])
item_util.audit_item(item1)
item_util.audit_item(item2)
item1.version += 1
item2.version += 1
DBSession.add(item1)
DBSession.add(item2)
#marcar en revision los relacionados
fase = DBSession.query(Fase).get(item1.fase)
grafo = item_util.proyectGraphConstructor(fase.proyecto)
item_util.marcar_en_revision(grafo, item1.id_item)
flash("La relacion se ha creado correctamente")
redirect("/miproyecto/fase/relacion/list/"+idfase)
flash("No se puede crear la relacion", 'warning')
redirect("/miproyecto/fase/relacion/"+idfase+"/new/")
示例11: revivir_item
# 需要导入模块: from sap.model import DBSession [as 别名]
# 或者: from sap.model.DBSession import merge [as 别名]
def revivir_item (self, historial_item):
"""
Restaura el item a su ultima version sin sus relaciones
"""
item = Item()
item.id_item = historial_item.id_item
item.nombre = historial_item.nombre
item.codigo = historial_item.codigo
#el estado del item es en desarrollo al revivir
item.estado_actual = estado_item_util.get_by_codigo('Revision')
item.tipo_item = historial_item.tipo_item
item.fase = historial_item.fase
item.version = historial_item.version
item.prioridad = historial_item.prioridad
item.complejidad = historial_item.complejidad
item.descripcion = historial_item.descripcion
item.observacion = historial_item.observacion
item.linea_base = None
#se vacian los detalles
item.detalles = []
atributo_mapper = {}
#Se obtienen los atributos actuales del tipo de item al que pertenece
tipo_item = DBSession.query(TipoItem).get(historial_item.tipo_item)
for atributo in tipo_item.atributos:
detalle = DetalleItem()
detalle.id_item = historial_item.id_item
detalle.id_atributo_tipo_item = atributo.id_atributo_tipo_item
detalle.adjunto = None
detalle.valor = None
atributo_mapper[atributo.id_atributo_tipo_item] = len(item.detalles)
item.detalles.append(detalle)
#recuperar los detalles
historial_detalles = DBSession.query(HistorialDetalleItem).\
filter(HistorialDetalleItem.id_item==historial_item.id_item).\
all()
#Se setean los valores a los atributos ya existentes
for hist_detalle in historial_detalles:
#Se obtiene el indice correspondiente al atributo del tipo de item
index = atributo_mapper[hist_detalle.id_atributo_tipo_item]
item.detalles[index].adjunto = hist_detalle.adjunto
item.detalles[index].valor = hist_detalle.valor
DBSession.merge(item)
示例12: put
# 需要导入模块: from sap.model import DBSession [as 别名]
# 或者: from sap.model.DBSession import merge [as 别名]
def put(self, args={}, **kw):
"""
Evento invocado luego de un evento post en el form de editar
ecargado de persistir las modificaciones de las instancias.
@type args : Hash
@param args : Argumentos de template
@type kw : Hash
@param kw : Keywords
"""
del kw['sprox_id']
tipo_item = TipoItem(**kw)
DBSession.merge(tipo_item)
flash("El tipo de item ha sido modificado correctamente.")
redirect('/miproyecto/fase/tipo_item/list/'+str(tipo_item.fase))
示例13: put
# 需要导入模块: from sap.model import DBSession [as 别名]
# 或者: from sap.model.DBSession import merge [as 别名]
def put(self, args={}, **kw):
"""
Evento invocado luego de un evento post en el form de editar
encargado de persistir las modificaciones de las instancias.
@type args : Hash
@param args : Argumentos de template
@type kw : Hash
@param kw : Keywords
"""
del kw['sprox_id']
fase = Fase(**kw)
DBSession.merge(fase)
flash("La fase '" + fase.nombre+ "'ha sido modificado correctamente.")
redirect("/miproyecto/fase/"+str(kw['id_fase']))
示例14: marcar_en_revision
# 需要导入模块: from sap.model import DBSession [as 别名]
# 或者: from sap.model.DBSession import merge [as 别名]
def marcar_en_revision(self, grafo, itemId):
"""
Se marca en revision los items relacionados hacia atras y adelante.
Las lineas base de los items relacionados se marcan con estado
Comprometida.
obtener la lista de todos antecesores directos e indirectos
el list(set()) es para que elimine los repetidos
los metodos listBackwards y listForward retornan listas con elementos
repetidos.
"""
antecesores = list(set(self.listBackward(grafo, grafo.incidents(itemId))))
"""
se añade a la lista el propio item
"""
item = [itemId]
"""
obtener la lista de todos sucesores directos e indirectos
"""
sucesores = list(set(self.listForward(grafo, grafo.neighbors(itemId))))
#suma de listas
items = antecesores + item + sucesores
relacionados = antecesores + sucesores
for id_item in items:
item_actual = DBSession.query(Item).get(id_item)
item_actual.estado = 3
DBSession.merge(item_actual)
# Se marca con estado comprometido cada linea base de los items
# sucesores y antecesores.
if(relacionados != None):
for id_item in relacionados:
item_actual = DBSession.query(Item).get(id_item)
if item_actual.linea_base != None:
linea_base = item_actual.linea_base #DBSession.query(LineaBase).get(item_actual.id_linea_base)
linea_base.estado = estado_linea_base_util.get_by_codigo('Comprometida')
DBSession.merge(linea_base)
flash('Lineas base comprometidas')
else:
flash('El item no posee relaciones')
示例15: put
# 需要导入模块: from sap.model import DBSession [as 别名]
# 或者: from sap.model.DBSession import merge [as 别名]
def put(self, id, **kw):
"""
Evento invocado luego de un evento post en el form de editar
encargado de persistir las modificaciones de las instancias.
@type id : Integer
@param id : Identificador del item.
@type kw : Hash
@param kw : Keywords
"""
kw['id_item'] = id
item = DBSession.query(Item).get(int(kw['id_item']))
item_util.audit_item(item)
archivo = Archivo()
archivo.id_item = id
if kw ['archivo'] != None:
stream = True
archivo.archivo = ""
while stream :
stream = kw ['archivo'].file.read(1024)
archivo.archivo += stream
archivo.file_name = kw ['archivo'].filename
archivo.content_type = kw ['archivo'].type
kw ['archivo'].file.close()
DBSession.add(archivo)
item.version += 1
DBSession.merge(item)
flash("El item atributo ha sido modificado correctamente.")
redirect('/miproyecto/fase/item/poner_en_revision/'+str(archivo.id_item))