当前位置: 首页>>代码示例>>Python>>正文


Python DBSession.query方法代码示例

本文整理汇总了Python中sap.model.DBSession.query方法的典型用法代码示例。如果您正苦于以下问题:Python DBSession.query方法的具体用法?Python DBSession.query怎么用?Python DBSession.query使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在sap.model.DBSession的用法示例。


在下文中一共展示了DBSession.query方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: put

# 需要导入模块: from sap.model import DBSession [as 别名]
# 或者: from sap.model.DBSession import query [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")
开发者ID:mbaez,项目名称:SAP,代码行数:28,代码来源:rol.py

示例2: _do_get_provider_count_and_objs

# 需要导入模块: from sap.model import DBSession [as 别名]
# 或者: from sap.model.DBSession import query [as 别名]
    def _do_get_provider_count_and_objs(self, **kw):
        limit = kw.get('limit', None)
        offset = kw.get('offset', None)
        order_by = kw.get('order_by', None)
        desc = kw.get('desc', False)
        
        

        idUsuario= [x for x in DBSession.query(User.user_id).filter_by(user_name=request.identity['repoze.who.userid'])]
        
        idProy=[x for x in DBSession.query(ProyFaseUsuario.idProyecto).filter_by(iduser=idUsuario[0]).distinct()] 
        proyectos=[]
        
        longitud=len(idProy)
        for y in range(longitud):
            proyectos.append(DBSession.query(self.__entity__).filter_by(id = idProy[y]).one())

        
        if len(kw) > 0:
            
            for y in range(longitud):
                proyectos.append(DBSession.query(self.__entity__).filter((Proyecto.id == idProy[y]) & (Proyecto.nombre.ilike('%'+str(kw['buscar'])+'%'))).one())
            
            objs =proyectos 
            
        else:
            objs = proyectos
        
        
                
        
        
        count = len(objs)
        self.__count__ = count
        return count, objs    
开发者ID:Alberto2011,项目名称:SAP,代码行数:37,代码来源:proyecto.py

示例3: proyectGraphConstructor

# 需要导入模块: from sap.model import DBSession [as 别名]
# 或者: from sap.model.DBSession import query [as 别名]
	def proyectGraphConstructor(self, idproyecto):
		fases = DBSession.query(Fase).filter(Fase.proyecto==idproyecto).all()
		grafo = digraph()
		items = []
		itemsId = []

		#se "obtienen los items de cada fase
		for fase in fases:
			items = items + list(DBSession.query(Item).filter(Item.fase==fase.id_fase))

		for item in items:
			grafo.add_nodes([item.id_item])

		#guardar los ids de los items
		for item in items:
			itemsId = itemsId + [item.id_item]
 		"""
		Se busca en la tabla RelacionItem todas las relaciones
		que contengan a los items del proyecto
		"""
		relaciones = DBSession.query(RelacionItem).\
						filter((RelacionItem.id_item_actual).in_(itemsId)).\
						all()

		#Se añaden las aristas entre los items relacionados
		for relacion in relaciones:
			grafo.add_edge((relacion.id_item_actual,relacion.id_item_relacionado))


		return grafo
开发者ID:mbaez,项目名称:SAP,代码行数:32,代码来源:util.py

示例4: borrarRelacion

# 需要导入模块: from sap.model import DBSession [as 别名]
# 或者: from sap.model.DBSession import query [as 别名]
	def borrarRelacion(self, item1, item2, idfase, **kw):

		if not self.puede_borrar(item1, item2, idfase):
			flash ("No se peude borrar la relacion! deja huerfanos", 'warning')
			redirect("/miproyecto/fase/relacion/list/"+idfase)

		#auditar items y aumentar su version
		item_1 = DBSession.query(Item).get(item1)
		item_2 = DBSession.query(Item).get(item2)

		item_util.audit_item(item_1)
		item_util.audit_item(item_2)

		item_1.version += 1
		item_2.version += 1

		item_1.estado = 3
		item_2.estado = 3

		DBSession.add(item_1)
		DBSession.add(item_2)

		DBSession.delete(DBSession.query(RelacionItem).\
					filter(RelacionItem.id_item_actual==item1).\
					filter(RelacionItem.id_item_relacionado==item2).\
					one())

		#marcar en revision los relacionados
		fase = DBSession.query(Fase).get(item_1.fase)
		grafo = item_util.proyectGraphConstructor(fase.proyecto)
		item_util.marcar_en_revision(grafo, item_1.id_item)
		item_util.marcar_en_revision(grafo, item_2.id_item)

		flash("Se ha eliminado la relacion: "+item1+" <--> "+item2)
		redirect("/miproyecto/fase/relacion/list/"+idfase)
开发者ID:mbaez,项目名称:SAP,代码行数:37,代码来源:relacion.py

示例5: faseGraphConstructor

# 需要导入模块: from sap.model import DBSession [as 别名]
# 或者: from sap.model.DBSession import query [as 别名]
	def faseGraphConstructor(self, idfase):
		#lista de items para el grafo
		items = DBSession.query(Item).filter(Item.fase==idfase).all()
		itemsId = []

		"""
		Todos los items de la fase forman parte del grafo (item = nodo)
		"grafo" es un grafo dirigido que representa las relaciones padre-hijo
		en una fase.
		"""
		grafo = digraph()
		for item in items:
			grafo.add_nodes([item.id_item])

		"""
		Se busca en la tabla RelacionItem todas las relaciones de padre-hijo
		que contengan a los items de la fase
		"""
		#guardar los ids de los items
		for item in items:
			itemsId = itemsId + [item.id_item]

		relaciones = DBSession.query(RelacionItem).\
						filter(RelacionItem.relacion_parentesco==1).\
						filter(RelacionItem.id_item_actual.in_(itemsId)).\
						filter(RelacionItem.id_item_relacionado.in_(itemsId)).\
						all()

		#Se añaden las aristas entre los items relacionados
		for relacion in relaciones:
			grafo.add_edge((relacion.id_item_actual, relacion.id_item_relacionado))

		return grafo
开发者ID:mbaez,项目名称:SAP,代码行数:35,代码来源:util.py

示例6: new

# 需要导入模块: from sap.model import DBSession [as 别名]
# 或者: from sap.model.DBSession import query [as 别名]
    def new(self,lid=None ,*args, **kw):

        tmpl_context.widget = self.new_form
   
        
        if len(kw)<2:
            """-----obtiene el idFase de la en el que esta la linea base------- """

            fid=DBSession.query(LineaBase.idFase).filter_by(id=lid).first()
            log.debug("fidddd= %s" %fid)   
            """-----------------------------------------------------------------"""
             
            emfaseactual= [x for x in DBSession.query(Item.id, Item.nombre).filter_by(idFase=fid,idLineaBase=None).all()]
            return dict(value={'lineabase':lid}, model=self.model.__name__,items_options=itemfaseactual)
            
            
            """Este else es como el Post.Como,al guardar no se va al Post,vuelve al new, entonces se le creo este "else" """
        else:
            
            kw2=dict()
            kw2['id']=kw['items']
            kw2['idLineaBase']=kw['lineabase']
            self.provider.update(self.model, params=kw2)
            
            raise redirect('../' +'../itemlineabase/?lid='+ kw['lineabase'])
开发者ID:Alberto2011,项目名称:SAP,代码行数:27,代码来源:controller.py

示例7: put

# 需要导入模块: from sap.model import DBSession [as 别名]
# 或者: from sap.model.DBSession import query [as 别名]
 def put(self, *args, **kw):
     """update"""
     pks = self.provider.get_primary_fields(self.model)
     for i, pk in enumerate(pks):
         if pk not in kw and i < len(args):
             kw[pk] = args[i]
     
     idTipoDeItem=DBSession.query(Campos.idTipoDeItem).filter_by(id=kw['id']).first()
     
     
     
     if kw['nombre']==None:
         flash("El nuevo Atributo debe tener un nombre" , "error")
         redirect('../'+ kw['id'] +'/edit')
     
     
     nombreduplicado=DBSession.query(Campos.nombre).filter((Campos.idTipoDeItem==idTipoDeItem) &(Campos.id != kw['id']) &(Campos.nombre==kw['nombre'])).first()
     
     if nombreduplicado != None :
         flash("Ya existe un Atributo con el mismo nombre" , "error")
         redirect('../'+ kw['id'] +'/edit')
         
         
     self.provider.update(self.model, params=kw)
     idtipo=DBSession.query(Campos.idTipoDeItem).filter_by(id=kw[pk]).first()
     
     redirect('../?tid=' + str(idtipo[0]))
开发者ID:Alberto2011,项目名称:SAP,代码行数:29,代码来源:controller.py

示例8: new

# 需要导入模块: from sap.model import DBSession [as 别名]
# 或者: from sap.model.DBSession import query [as 别名]
	def new(self, idtipo, args={}, **kw):
		"""
		Encargado de cargar el widget para crear nuevas instancias,
		solo tienen acceso aquellos usuarios que posean el premiso de crear

		@type  idtipo : Integer
		@param idtipo : Identificador del Atributo del item.

		@type  args : Hash
		@param args : Argumentos de template

		@type  kw : Hash
		@param kw : Keywords

		@rtype  : Diccionario
		@return : El diccionario que sera utilizado en el template.

		"""

		tmpl_context.widget = new_atributo_form
		self.params['modelname'] = "Atributos del Tipo de Item"
		self.params['idtipo'] = idtipo
		self.params['tipo_item'] = DBSession.query(TipoItem).get(idtipo)
		self.params['current_name'] = self.params['tipo_item'].nombre
		id_fase = self.params['tipo_item'].fase
		self.params['fase'] = DBSession.query(Fase).get(id_fase)
		self.params['idfase'] = id_fase
		self.params['header_file'] = 'tipo_item'
		self.params['cancelar_url'] = '/miproyecto/fase/tipo_item/atributos/list/'+str(idtipo)
		return dict(value=kw, params=self.params)
开发者ID:mbaez,项目名称:SAP,代码行数:32,代码来源:atributo.py

示例9: __actions__

# 需要导入模块: from sap.model import DBSession [as 别名]
# 或者: from sap.model.DBSession import query [as 别名]
 def __actions__(self, obj):
     """Override this function to define how action links should be displayed for the given record."""
     primary_fields = self.__provider__.get_primary_fields(self.__entity__)
     pklist = '/'.join(map(lambda x: str(getattr(obj, x)), primary_fields))
     #if has_permission('manage'):############
     proyecto = DBSession.query(Fase.idproyec).filter_by(id = pklist).first()
     estado = DBSession.query(Proyecto.estado).filter_by(id = proyecto).first()
     value='<div></div>'
     
     if str(estado[0]).__eq__("nuevo"):
         value = '<div><div><a class="edit_link" href="'+pklist+'/edit" style="text-decoration:none">edit</a></div>'\
         '<div><form method="POST" action="'+pklist+'" class="button-to">'\
         '<input type="hidden" name="_method" value="DELETE" />'\
         '<input class="delete-button" onclick="return confirm(\'Are you sure?\');" value="delete" type="submit" '\
         'style="background-color: transparent; float:left; border:0; color: #286571; display: inline; margin: 0; padding: 0;"/>'\
         '</form>'\
         '</div>''</div>'
         
     elif str(estado[0]).__eq__("iniciado"):
         value = '<div><div><a class="edit_link" href="'+pklist+'/edit" style="text-decoration:none">edit</a>'\
         '<div><a class="loginlogout" href="/tipodeitem/?fid='+pklist+ '">TiposItem</a></div><br/>'\
         '<div><a class="loginlogout" href="/importartipodeitem/new/?fid='+pklist+ '">ImportarTipoItem</a></div><br/>'\
         '</div></div>'
     
     return value
开发者ID:Alberto2011,项目名称:SAP,代码行数:27,代码来源:fase.py

示例10: put

# 需要导入模块: from sap.model import DBSession [as 别名]
# 或者: from sap.model.DBSession import query [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")
开发者ID:mbaez,项目名称:SAP,代码行数:28,代码来源:proyecto.py

示例11: get_all

# 需要导入模块: from sap.model import DBSession [as 别名]
# 或者: from sap.model.DBSession import query [as 别名]
	def get_all(self, idfase, **kw):
		"""Lista todos los items de la fase"""

		has_permiso = session_util.authorize_fase('ver_fase', idfase)
		if ( has_permiso == None) :
			flash("No posee permisos sobre la fase #"+str(idfase),'error')
			redirect('/miproyecto/fase/error')


		tmpl_context.widget = item_table
		items = DBSession.query(Item).filter(Item.fase==idfase).all()
		value = item_filler.get_value(items)

		permiso_editar = fase_util.check_fase_permiso(idfase, 'editar_fase')
		permiso_anadir = fase_util.check_fase_permiso(idfase, 'administrar_participantes')

		self.params['title'] = 'Titulo'
		self.params['permiso_editar'] = permiso_editar
		self.params['permiso_anadir'] = permiso_anadir
		self.params['modelname'] = 'Items'
		self.params['header_file'] = 'fase'
		self.params['permiso'] = 'crear_item'
		self.params['idfase'] = idfase
		self.params['fase'] = DBSession.query(Fase).get(idfase)
		self.params['new_url'] = '/miproyecto/fase/item/'+idfase+'/new/'
		self.params['label'] = 'Agregar Atributo'
		self.params['usuarios'] = usuario_util.get_usuarios_by_fase(idfase)

		return dict(value=value, params = self.params)
开发者ID:mbaez,项目名称:SAP,代码行数:31,代码来源:fase.py

示例12: importar_este_tipo

# 需要导入模块: from sap.model import DBSession [as 别名]
# 或者: from sap.model.DBSession import query [as 别名]
	def importar_este_tipo(self, idtipo, idfase):
		"""
		Se obtiene de la BD el tipo de item y sus atributos
		"""
		tipo = DBSession.query(TipoItem).get(idtipo)
		atributos = DBSession.query(AtributoTipoItem).\
						filter(AtributoTipoItem.tipo_item==tipo.id_tipo_item)
		"""
		Se settean los valores de la copia
		El nuevo tipo de item (copia_tipo )pertenecera a esta fase ahora
		"""
		copia_tipo = TipoItem()
		copia_tipo.nombre = tipo.nombre
		copia_tipo.descripcion = tipo.descripcion
		copia_tipo.fase = idfase
		copia_tipo.codigo = tipo.codigo
		'''
		Se settean los valores para cada copia_atributo
		'''
		for atributo in atributos:
			copia_atributo = AtributoTipoItem()
			copia_atributo.nombre = atributo.nombre
			copia_atributo.tipo_id = atributo.tipo_id
			copia_tipo.atributos.append(copia_atributo)

		DBSession.add(copia_tipo)
		flash("El tipo de item "+str(tipo.nombre)+
										" pertenece ahora a esta fase")
		redirect("/miproyecto/fase/tipo_item/importar/"+str(idfase))
开发者ID:mbaez,项目名称:SAP,代码行数:31,代码来源:tipo_item.py

示例13: get_usuarios_by_fase

# 需要导入模块: from sap.model import DBSession [as 别名]
# 或者: from sap.model.DBSession import query [as 别名]
	def get_usuarios_by_fase(self, id, permiso_name='ver_fase'):
		"""
		Obtiene una lista de los usuarios que poseen el permiso especificado sobre
		un proyecto.

		@type  id  : Integer
		@param id  : Identificador de la fase

		@type  permiso_name : String
		@param permiso_name : Nombre del permiso

		@rtype  : Usuario []
		@return : Lista de usuarios que poseen el permiso sobre la fase
		"""
		usuarios = DBSession.query(Usuario).\
					filter(UsuarioPermisoFase.usuario_id == Usuario.usuario_id).\
					filter(UsuarioPermisoFase.fase_id == id).\
					filter(UsuarioPermisoFase.permiso_id == Permiso.permiso_id).\
					filter(Permiso.nombre == permiso_name).all()
		#Si el usuairo es lider del proyecto se saltan los controles
		user = checker.get_current_user()
		fase = DBSession.query(Fase).get(id)
		rol = self.get_rol_by_codigo('lider_' + str(fase.proyecto))

		if self.usuario_has_rol(user.usuario_id, rol ):
			usuarios.append(user)

		return self.distinct(usuarios)
开发者ID:mbaez,项目名称:SAP,代码行数:30,代码来源:checker.py

示例14: _do_get_provider_count_and_objs

# 需要导入模块: from sap.model import DBSession [as 别名]
# 或者: from sap.model.DBSession import query [as 别名]
    def _do_get_provider_count_and_objs(self, **kw):
        limit = kw.get('limit', None)
        offset = kw.get('offset', None)
        order_by = kw.get('order_by', None)
        desc = kw.get('desc', False)
        #objs = DBSession.query(self.__entity__).filter_by(idFase=1).all()
        
        if len(kw) > 0:
            if len(kw) > 1:
                #objs = DBSession.query(self.__entity__).filter((Fase.idproyec==kw['pid']) & (Fase.nombre.ilike('%'+str(kw['buscar'])+'%'))).all()

                if kw['buscar']=="":
                    objs = DBSession.query(self.__entity__).filter_by(nrohistorial=kw['hid'], ultimaversion=0).all()
                else:
                    objs = DBSession.query(self.__entity__).filter((Item.nrohistorial==kw['hid'])& (Item.ultimaversion==0) & (Item.version ==kw['buscar'])).all()
                

            else:
                
                objs = DBSession.query(self.__entity__).filter_by(nrohistorial=kw['hid'], ultimaversion=0).all()
        else:
            
            objs = DBSession.query(self.__entity__).all()

        count = len(objs)
        self.__count__ = count
        return count, objs    
开发者ID:Alberto2011,项目名称:SAP,代码行数:29,代码来源:revertir.py

示例15: asociar_usuario_fase

# 需要导入模块: from sap.model import DBSession [as 别名]
# 或者: from sap.model.DBSession import query [as 别名]
	def asociar_usuario_fase(self, usuario_id, fase_id):
		"""
		Asocia los permisos de un usuario con una fase, asi los usuarios que posean
		el rol estaran asociados a la fase.

		@type  usuario_id  : String
		@param usuario_id : Codigo del rol

		@type  fase_id   : Integer
		@param fase_id   : Identificador de la fase

		@rtype  : Rol
		@return : El rol que es aplicado a la fase.
		"""

		fase = DBSession.query(Fase).get(fase_id)
		#Se obtienen los permisos del template
		permisos_rol = self.distinct(DBSession.query(Permiso).\
						filter(RolPermisoProyecto.permiso_id == Permiso.permiso_id).\
						filter(RolPermisoProyecto.proyecto_id == fase.proyecto)
						)

		#Se se asocian el rol con la fase
		for permiso in permisos_rol:

			rpu = UsuarioPermisoFase()

			rpu.fase_id = fase_id
			rpu.usuario_id = usuario_id
			rpu.permiso_id = permiso.permiso_id
			#Asocia el rol con los permisos y la fase
			DBSession.add(rpu)
开发者ID:mbaez,项目名称:SAP,代码行数:34,代码来源:util.py


注:本文中的sap.model.DBSession.query方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。