예제 #1
0
파일: proyectos.py 프로젝트: gosu86/saip
	def lista_de_proyectos(self, page='1', rp='25', sortname='id', sortorder='asc', qtype=None, query=None):
		try:
			offset = (int(page)-1) * int(rp)
			if (query):
				d = {qtype:query}
				proyectos = DBSession.query(Proyecto).filter_by(**d)
			else:
				proyectos = DBSession.query(Proyecto)
			
			total = proyectos.count()
			column = getattr(Proyecto, sortname)
			proyectos = proyectos.order_by(getattr(column,sortorder)()).offset(offset).limit(rp)
			for p in proyectos:
				log.debug("Lider == %s" % (p.lider.name))
			
			rows = [{'id'  : proyecto.id,
					'cell': [proyecto.id,
							proyecto.name,
							proyecto.lider.name,
							proyecto.descripcion,
							proyecto.estado,
							(', '.join([f.name for f in proyecto.fases]))]} for proyecto in proyectos]
			result = dict(page=page, total=total, rows=rows)
		except:
			result = dict() 
		return result		
예제 #2
0
파일: permisos.py 프로젝트: gosu86/saip
	def fetch(self, page='1', rp='25', sortname='id', sortorder='asc', qtype=None, query=None):
		try:	
			offset = (int(page)-1) * int(rp)
			if (query):
				d = {qtype:query}
				permisos = DBSession.query(Permiso).filter_by(**d)
			else:
				permisos = DBSession.query(Permiso)
			
			total = permisos.count()
			column = getattr(Permiso, sortname)
			log.debug("column = %s" %column)
			permisos = permisos.order_by(getattr(column,sortorder)()).offset(offset).limit(rp)
			
			rows = [{'id'  : permiso.id,
					'cell': [permiso.id,
							permiso.permiso_name,
							permiso.descripcion,
							(', '.join([r.name for r in permiso.roles]))
							]} for permiso in permisos
					]
			result = dict(page=page, total=total, rows=rows)
		except:
			result = dict() 
		return result
예제 #3
0
파일: tiposDeItem.py 프로젝트: gosu86/saip
 def fetch(self, page='1', rp='25', sortname='id', sortorder='asc', qtype=None, query=None):
     try:
         #____________________________________________
         # hacer esto para cada dato del tipo numerico
         if (qtype=="id"):
             id=int(query)
         #_____________________________________________
         
         offset = (int(page)-1) * int(rp)
         if (query):
             d = {qtype:query}
             tipositems = DBSession.query(TipoItem).filter_by(**d)
         else:
             tipositems = DBSession.query(TipoItem)
         
         total = tipositems.count()
         column = getattr(TipoItem, sortname)
         tipositems = tipositems.order_by(getattr(column,sortorder)()).offset(offset).limit(rp)    
         rows = [{'id'  : tipoitem.id,
                 'cell': [
                          tipoitem.id,
                          tipoitem.name,
                          tipoitem.descripcion,
                          tipoitem.complejidad,
                          (','.join([ce.name for ce in tipoitem.campos_extra]))]
                  } for tipoitem in tipositems]
         result = dict(page=page, total=total, rows=rows)
     except:
         result = dict() 
     return result
예제 #4
0
파일: configurar.py 프로젝트: gosu86/saip
 def usuarios_del_sistema(self, fid=None, page='1', rp='25', sortname='id', sortorder='asc', qtype=None, query=None):
     try:
         offset = (int(page)-1) * int(rp)
         if (query):
             d = {qtype:query}
             usuarios = DBSession.query(Usuario).filter_by(**d)
         else:
             usuarios = DBSession.query(Usuario)
             
            
         if fid:
             
             column = getattr(Usuario, sortname)
             usuarios = usuarios.order_by(getattr(column,sortorder)())                
             u=self.get_usuarios(usuarios,fid,offset,rp)
             total = usuarios.count()
             usuarios=u
         else:
             total = usuarios.count() 
             column = getattr(Usuario, sortname)
             usuarios = usuarios.order_by(getattr(column,sortorder)()).offset(offset).limit(rp)
               
         rows = [{'id'  : usuario.id,
                 'cell': [usuario.id,
                          usuario.name,
                          self.roles_select(usuario.id)]} for usuario in usuarios
                 ]
         result = dict(page=page, total=total, rows=rows)
     except:
         result = dict() 
     return result
예제 #5
0
파일: configurar.py 프로젝트: gosu86/saip
    def agregar_usuarios(self,**kw):
        idsyroles    =    kw['idsyroles']
        idsyroles    =    idsyroles.split(";")

        f_id    =    idsyroles[0]
        idsyroles.remove(f_id)
        idsyroles.pop()
        
        cantidad    =    len(idsyroles)
        
        f_id    =    int(f_id)
        f=DBSession.query(Fase).filter_by(id=f_id).first()
        p=f.proyecto
        conn = config['pylons.app_globals'].sa_engine.connect()
        for idyrol in idsyroles:
            idyrol=idyrol.split(',')
            u_id = int(idyrol[0])
            rol = int(idyrol[1])
            ins=usuario_rol_fase_table.insert().values(usuario_id=u_id,rol_id=rol,fases_id=f_id)
            ins.compile().params
            log.debug('ins.params: %s' %ins.compile().params)
            log.debug('con: %s' %conn)
            conn.execute(ins)
            u=DBSession.query(Usuario).filter_by(id=u_id).first()
            p.usuarios.append(u)
            DBSession.flush()
        conn.close()
        
            
        msg    =    str(cantidad)    +    " usuarios agregados con exito!"
        type="succes"
        
        return dict(msg=msg,type=type)
예제 #6
0
파일: configurar.py 프로젝트: gosu86/saip
    def usuarios_asignados(self,fid=None, page='1', rp='25', sortname='id', sortorder='asc', qtype=None, query=None):
        try:
            offset = (int(page)-1) * int(rp)
            
            if (query):
                d = {qtype:query}
                usuarios = DBSession.query(Usuario).filter(Usuario.fases.any(id = fid)).filter_by(**d)

            else:
                d = {'id':int(fid)}
                usuarios = DBSession.query(Usuario).filter(Usuario.fases.any(id = fid))
                
            total = usuarios.count()
            
            column = getattr(Usuario, sortname)
            usuarios = usuarios.order_by(getattr(column,sortorder)()).offset(offset).limit(rp)
            rows = [{'id'  : u.id,
                    'cell': [u.id,
                            u.name,
                            self.get_rol(u.id,fid),
                            ]} for u in usuarios]
            log.debug('rows = %s' %rows) 
            result = dict(page=page, total=total, rows=rows)
        except:
            result = dict() 
        return result
예제 #7
0
파일: configurar.py 프로젝트: gosu86/saip
    def lista_de_proyectos(self, page='1', rp='25', sortname='id', sortorder='asc', qtype=None, query=None):
        try:
            if (sortname=='fases') or (sortname=='usuarios'):
                sortname='name'
            current_user=request.identity['user']
            offset = (int(page)-1) * int(rp)
            if (query):
                d={qtype:query,'lider_id':current_user.id}
                proyectos = DBSession.query(Proyecto).filter_by(**d)
            else:
                d={'lider_id':current_user.id}
                proyectos = DBSession.query(Proyecto).filter_by(**d)
            
            total = proyectos.count()
            column = getattr(Proyecto, sortname)
            proyectos = proyectos.order_by(getattr(column,sortorder)()).offset(offset).limit(rp)

            # botonIniciar = '<input type="submit" value="Iniciar" onClick=doCommandFases("Iniciar",$("#proyectosConfigurarFlexi"))>'
            # botonVerFases = '<input type="submit" class="clickclass" value="Ver Fases">'
            #-------------------------------- botones=botonIniciar+botonVerFases
            
            rows = [{'id'  : proyecto.id,
                    'cell': [proyecto.id,
                            proyecto.name,
                            proyecto.empresa,
                            proyecto.estado,
                            (self.tiene_fases(proyecto)),
                            (self.tiene_usuarios(proyecto))]} for proyecto in proyectos]
            result = dict(page=page, total=total, rows=rows)
        except:
            result = dict() 
        return result
예제 #8
0
파일: configurar.py 프로젝트: gosu86/saip
    def quitar_usuarios(self,**kw):
        ids    =    kw['ids']
        ids    =    ids.split(",")

        f_id    =    ids[0]
        ids.remove(f_id)
        ids.pop()
        
        c1    =    len(ids)
        c2=0
        f_id    =    int(f_id)
        f=DBSession.query(Fase).filter_by(id=f_id).first()
        p=f.proyecto
        for id in ids:
            u_id = int(id)
            u=DBSession.query(Usuario).filter_by(id=u_id).first()
            f.usuarios.remove(u)
            fases_del_usuario=DBSession.query(Fase).filter(Fase.usuarios.any(id = u_id))
            fases_del_proyecto=fases_del_usuario.filter_by(proyecto_id=p.id)
            if fases_del_proyecto.count()==0:
                c2=c2+1
                p.usuarios.remove(u)
            DBSession.flush()
        if c2>0:
            msg_proyectos=str(c2)+" usuarios ya no forman parte de este proyecto."
        else:
            msg_proyectos=''
        log.debug('msg_proyectos:= %s' %msg_proyectos)
        msg    =    str(c1)    +    " usuarios quitados de la fase con exito!"
        type="succes"
        
        return dict(msg=msg,type=type,msg_p=msg_proyectos)
예제 #9
0
파일: usuarios.py 프로젝트: gosu86/saip
    def fetch(self, page='1', rp='25', sortname='id', sortorder='asc', qtype=None, query=None):
        try:
            offset = (int(page)-1) * int(rp)
            if (query):
                d = {qtype:query}
                usuarios = DBSession.query(Usuario).filter_by(**d)
            else:
                usuarios = DBSession.query(Usuario)
 
                total = usuarios.count() 
                column = getattr(Usuario, sortname)
                usuarios = usuarios.order_by(getattr(column,sortorder)()).offset(offset).limit(rp)

                    
            rows = [{'id'  : usuario.id,
                    'cell': [usuario.id,
                             usuario.name,
                             usuario.apellido,                             
                             usuario.email,
                             usuario.estado]} for usuario in usuarios
                    ]
            result = dict(page=page, total=total, rows=rows)
        except:
            result = dict() 
        return result
예제 #10
0
파일: configurar.py 프로젝트: gosu86/saip
 def fases_asignadas(self,pid=None, page='1', rp='25', sortname='id', sortorder='asc', qtype=None, query=None):
     try:
         offset = (int(page)-1) * int(rp)
         
         if (query):
             d = {qtype:query,'proyecto_id':int(pid)}
             fases = DBSession.query(Fase).filter_by(**d)
         else:
             d = {'proyecto_id':int(pid)}
             fases = DBSession.query(Fase).filter_by(**d)
             
         total = fases.count()
         
         column = getattr(Fase, sortname)
         fases = fases.order_by(getattr(column,sortorder)()).offset(offset).limit(rp)
         
         rows = [{'id'  : fase.id,
                 'cell': [fase.id,
                         fase.name,
                         fase.descripcion,
                         fase.estado,
                         fase.orden]} for fase in fases]
         result = dict(page=page, total=total, rows=rows)
     except:
         result = dict() 
     return result
예제 #11
0
파일: permisos.py 프로젝트: gosu86/saip
	def post_delete(self,**kw):
		id = kw['id']
		log.debug("Inside post_fetch: id == %s" % (id))
		if (id != None):
			d = {'id':id}
			permiso = DBSession.query(Permiso).filter_by(**d).first()
			nombre=permiso.permiso_name
			DBSession.delete(permiso)
			DBSession.flush()
			msg="El permiso se ha eliminado."
		return dict(msg=msg,nombre=nombre)
예제 #12
0
파일: tiposDeItem.py 프로젝트: gosu86/saip
 def post_delete(self,**kw):
     id = kw['id']
     log.debug("Inside post_fetch: id == %s" % (id))
     if (id != None):
         d = {'id':id}
         tipoitem = DBSession.query(TipoItem).filter_by(**d).first()            
         nombre=tipoitem.name
         DBSession.delete(tipoitem)
         DBSession.flush()    
         #===================================================================
     return dict(msg=nombre)
예제 #13
0
파일: usuarios.py 프로젝트: gosu86/saip
 def post_delete(self,**kw):
     id = kw['id']
     log.debug("Inside post_fetch: id == %s" % (id))
     if (id != None):
         d = {'id':id}
         u = DBSession.query(Usuario).filter_by(**d).first()
         nombre=u.name
         DBSession.delete(u)
         DBSession.flush()
         msg="El usuario se ha eliminado con exito!."
     return dict(msg=msg,nombre=nombre)
예제 #14
0
파일: roles.py 프로젝트: gosu86/saip
	def post_delete(self,**kw):
		id = kw['id']
		log.debug("Inside post_fetch: id == %s" % (id))
		if (id != None):
			d = {'id':id}
			rol = DBSession.query(Rol).filter_by(**d).first()
			nombre=rol.name
			DBSession.delete(rol)
			DBSession.flush()
			msg="El rol se ha eliminado."

		return dict(msg=msg,nombre=nombre)
예제 #15
0
파일: configurar.py 프로젝트: gosu86/saip
 def iniciar_proyecto(self,**kw):
     id = kw['id']
     if (id != None):
         d = {'id':id}
         proyecto = DBSession.query(Proyecto).filter_by(**d).first()
         nombre=proyecto.name
         if (proyecto.estado != 'Iniciado'):
             proyecto.estado = 'Iniciado'
             DBSession.flush()
             msg="El proyecto se ha Iniciado."
             type="succes"
         else:
             msg="El proyecto ya se encuentra Iniciado."
             type="notice"
     return dict(msg=msg,nombre=nombre,type=type)    
예제 #16
0
파일: tiposDeItem.py 프로젝트: gosu86/saip
 def post(self, *args, **kw):       
     ti=self.provider.create(self.model, params=kw)
     keys=kw.keys()
     for key_nombre in keys:
         if find(key_nombre,'nombre') >= 0:
             key_tipo=replace(key_nombre,'nombre','tipo')
             nombre=kw[key_nombre]
             tipo=kw[key_tipo]
             campoExtra=CampoExtra()
             campoExtra.name=nombre
             campoExtra.tipo=tipo
             campoExtra.tipo_item_id=ti.id
             DBSession.add(campoExtra)
             DBSession.flush()        
     raise redirect('./')
예제 #17
0
파일: fases.py 프로젝트: gosu86/saip
 def post_delete(self,**kw):
     id = kw['id']
     if (id != None):
         d = {'id':id}
         fase = DBSession.query(Fase).filter_by(**d).first()            
         nombre=fase.name
         if (fase.estado != 'activo'):
             DBSession.delete(fase)
             DBSession.flush()
             msg="la fase se ha eliminado con exito!."
             type="succes"
         else:
             msg="La fase NO se puede eliminar."
             type="error"
     return dict(msg=msg,nombre=nombre,type=type)
예제 #18
0
파일: proyectos.py 프로젝트: gosu86/saip
	def post_delete(self,**kw):
		id = kw['id']
		log.debug("Inside post_fetch: id == %s" % (id))
		if (id != None):
			d = {'id':id}
			proyecto = DBSession.query(Proyecto).filter_by(**d).first()
			nombre=proyecto.name
			if (proyecto.estado != 'Iniciado'):
				DBSession.delete(proyecto)
				DBSession.flush()
				msg="El proyecto se ha eliminado con exito!."
				type="succes"
			else:
				msg="El proyecto esta Iniciado! No se puede eliminar."
				type="error"
		return dict(msg=msg,nombre=nombre,type=type)			
예제 #19
0
파일: proyectos.py 프로젝트: gosu86/saip
	def put(self, *args, **kw):
		"""update"""
		id=kw['name']
		log.debug('id: %s' %id )
		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]
		d={'id':kw[pk]}
		p=DBSession.query(Proyecto).filter_by(**d).first()
		log.debug('proyecto.name: %s' %p.name )
		p.name=kw['name']
		p.empresa=kw['empresa']
		p.estado=kw['estado']
		p.descripcion=kw['descripcion']
		p.lider_id=int(kw['lider'])
		DBSession.flush()
		redirect('../' * len(pks))
예제 #20
0
파일: proyectos.py 프로젝트: gosu86/saip
	def usuarios(self):
		usuarios=DBSession.query(Usuario)
		names=''
		ids=''
		for u in usuarios:
			names=names+'"'+u.name+'"'+','
			ids=ids+str(u.id)+','
		names=names+'""'
		ids=ids+'""'
		return dict(names=names,ids=ids)
예제 #21
0
파일: roles.py 프로젝트: gosu86/saip
	def fetch(self, page='1', rp='25', sortname='id', sortorder='asc', qtype=None, query=None):
		offset = (int(page)-1) * int(rp)
		if (query):
			d = {qtype:query}
			roles = DBSession.query(Rol).filter_by(**d)
		else:
			roles = DBSession.query(Rol)
			
		total = roles.count()
		column = getattr(Rol, sortname)
		roles = roles.order_by(getattr(column,sortorder)()).offset(offset).limit(rp)
		rows = [{'id'  : rol.id,
				'cell': [rol.id,
						 rol.name,
						(', '.join([p.permiso_name for p in rol.permisos]))
						]} for rol in roles
				]
		result = dict(page=page, total=total, rows=rows)
		return result
예제 #22
0
파일: items.py 프로젝트: gosu86/saip
 def lista_de_Items(self, page='1', rp='25', sortname='id', sortorder='asc', qtype=None, query=None):
     try:
         #____________________________________________
         # hacer esto para cada dato del tipo numerico
         if (qtype=="id"):
             id=int(query)
         #_____________________________________________
         
         offset = (int(page)-1) * int(rp)
         if (query):
             d = {qtype:query}
             items = DBSession.query(Item).filter_by(**d)
         else:
             items = DBSession.query(Item)
         
         total = items.count()
         column = getattr(Item, sortname)
         items = items.order_by(getattr(column,sortorder)()).offset(offset).limit(rp)    
         rows = [{'id'  : item.id,
                 'cell': [item.id, item.name, item.descripcion]} for item in items]
         result = dict(page=page, total=total, rows=rows)
     except:
         result = dict() 
     return result
예제 #23
0
파일: __init__.py 프로젝트: gosu86/saip
 def setUp(self):
     """Prepare model test fixture."""
     try:
         new_attrs = {}
         new_attrs.update(self.attrs)
         new_attrs.update(self.do_get_dependencies())
         self.obj = self.klass(**new_attrs)
         DBSession.add(self.obj)
         DBSession.flush()
         return self.obj
     except:
         DBSession.rollback()
         raise
예제 #24
0
파일: auth.py 프로젝트: gosu86/saip
 def por_usuario_nombre(cls, username):
     """Return the user object whose user name is ``username``."""
     return DBSession.query(cls).filter_by(usuario_name=username).first()
예제 #25
0
파일: __init__.py 프로젝트: gosu86/saip
 def tearDown(self):
     """Finish model test fixture."""
     DBSession.rollback()
예제 #26
0
파일: __init__.py 프로젝트: gosu86/saip
 def test_query_obj(self):
     """Model objects can be queried"""
     obj = DBSession.query(self.klass).one()
     for key, value in self.attrs.iteritems():
         assert_equals(getattr(obj, key), value)
예제 #27
0
파일: auth.py 프로젝트: gosu86/saip
 def por_email(cls, email):
     """Return the user object whose email address is ``email``."""
     return DBSession.query(cls).filter_by(email=email).first()