Package sapproject :: Package views :: Module usuario
[hide private]
[frames] | no frames]

Source Code for Module sapproject.views.usuario

  1  import re 
  2  from pyramid.httpexceptions import HTTPFound, HTTPNotFound 
  3  from pyramid.view import view_config, forbidden_view_config 
  4  from pyramid.security import remember, forget, authenticated_userid 
  5  from sapproject.models.usuario import * 
  6  from sapproject.models.proyecto import * 
  7  from sapproject.models.proyectousuario import * 
8 9 @view_config(route_name='crear_usuario_json', renderer='json') 10 -def crear_usuario_json(request):
11 """ 12 Nos permite traer los parametros que fueron cargados por el usuario 13 y guardarlos en la base de datos. 14 @param request: objeto que encapsula la peticion del servidor 15 @return : True si la accion se realizo correctamente 16 """ 17 ci = request.params['ci'] 18 nombres = request.params['nombres'] 19 apellidos = request.params['apellidos'] 20 fechanac = request.params['fechanac'] 21 sexo = request.params['sexo'] 22 nick = request.params['nick'] 23 password = request.params['password'] 24 email = request.params['email'] 25 telefono = request.params['telefono'] 26 direccion = request.params['direccion'] 27 observaciones = request.params['observaciones'] 28 # se agrega a la BD 29 model = Usuario(ci, nombres, apellidos, nick, password, email, telefono, direccion, observaciones, sexo, fechanac) 30 DBSession.add(model) 31 return {'success' : True}
32
33 @view_config(route_name='modificar_usuario_json', renderer='json') 34 -def modificar_usuario_json(request):
35 """ 36 Nos permite traer los parametros que fueron modificados por el usuario 37 y guardar los cambios en la base de datos. 38 @param request: objeto que encapsula la peticion del servidor 39 @return : True si la accion se realizo correctamente 40 """ 41 id = request.params['id'] 42 ci = request.params['ci'] 43 nombres = request.params['nombres'] 44 apellidos = request.params['apellidos'] 45 fechanac = request.params['fechanac'] 46 sexo = request.params['sexo'] 47 nick = request.params['nick'] 48 password = request.params['password'] 49 email = request.params['email'] 50 telefono = request.params['telefono'] 51 direccion = request.params['direccion'] 52 observaciones = request.params['observaciones'] 53 # se modifica en la BD 54 model = Usuario(ci, nombres, apellidos, nick, password, email, telefono, direccion, observaciones, sexo, fechanac) 55 model.id = id 56 DBSession.merge(model) 57 return {'success' : True}
58
59 60 @view_config(route_name='consultar_usuario_json', renderer='json') 61 -def consultar_usuario_json(request):
62 """ 63 Nos permite traer los parametros de consulta(el filtro y el valor) y mostrar 64 los usuarios que cumplen con la condicion del filtro. 65 @param request: objeto que encapsula la peticion del servidor 66 @return : si la accion se realizo correctamente 67 """ 68 usuarios = None 69 if 'filtro' in request.params: 70 filtro = request.params['filtro'] 71 valor = request.params['valor'] 72 sentencia = 'SELECT * from Usuario WHERE {0}=\'{1}\''.format(filtro,valor) 73 usuarios = DBSession.query(Usuario).from_statement(sentencia).all() 74 else: 75 usuarios = DBSession.query(Usuario).all() 76 77 data = [] 78 for usuario in usuarios: 79 item = {} 80 item['id'] = usuario.id 81 item['ci'] = usuario.ci 82 item['nick'] = usuario.nick 83 item['nombres'] = usuario.nombres 84 item['apellidos'] = usuario.apellidos 85 item['direccion'] = usuario.direccion 86 item['email'] = usuario.email 87 data.append(item) 88 return {'success':True, 'data':data, 'total':len(data)}
89
90 @view_config(route_name='consultar_usuario_completo_json', renderer='json') 91 -def consultar_usuario_completo_json(request):
92 """ 93 Nos permite traer los parametros de consulta(el filtro y el valor) y mostrar los campos 94 completos de los usuarios que cumplen con la condicion del filtro. 95 @param request: objeto que encapsula la peticion del servidor 96 @return : si la accion se realizo correctamente 97 """ 98 usuarios = None 99 if 'filtro' in request.params: 100 filtro = request.params['filtro'] 101 valor = request.params['valor'] 102 sentencia = 'SELECT * from Usuario WHERE {0}=\'{1}\''.format(filtro,valor) 103 usuarios = DBSession.query(Usuario).from_statement(sentencia).all() 104 else: 105 usuarios = DBSession.query(Usuario).all() 106 107 data = [] 108 for usuario in usuarios: 109 item = {} 110 item['id'] = usuario.id 111 item['ci'] = usuario.ci 112 item['nombres'] = usuario.nombres 113 item['apellidos'] = usuario.apellidos 114 item['email'] = usuario.email 115 item['telefono'] = usuario.telefono 116 item['direccion'] = usuario.direccion 117 item['observaciones'] = usuario.observaciones 118 item['nick'] = usuario.nick 119 item['password'] = usuario.password 120 item['sexo'] = usuario.sexo 121 item['fechanac'] = str(usuario.fechanac) 122 data.append(item) 123 return {'success':True, 'data':data, 'total':len(data)}
124
125 @view_config(route_name='eliminar_usuario_json', renderer='json') 126 -def eliminar_usuario_json(request):
127 """ 128 Nos permite traer el id del usuario a eliminar, eliminar las dependendcias 129 del mismo con respecto a otras tablas y eliminar el registro de la base de datos. 130 @param request: objeto que encapsula la peticion del servidor 131 @return : True si la accion se realizo correctamente y False en caso contrario 132 """ 133 id = request.params['id'] 134 usuario = DBSession.query(Usuario).filter_by(id=id).first() 135 if usuario is None: 136 return {'success':False} 137 138 # ANTIGUA ELIMINACION EN CASCADA 139 # usuario.eliminar_dependencias() 140 # DBSession.refresh(usuario) 141 # DBSession.delete(usuario) 142 143 try: 144 DBSession.delete(usuario) 145 return {'success' : True} 146 except AssertionError: 147 return {'success' : False}
148
149 @view_config(route_name='consulta_asignar_usuarios_json', renderer='json') 150 -def consulta_asignar_usuarios_json(request):
151 """ 152 Nos permite traer todos los usuarios asignados y asignables a un proyecto 153 @param request: objeto que encapsula la peticion del servidor 154 @return: True si la accion se realizo correctamente, la lista de permisos asignados al rol y la lista de permisos asignables al proyecto 155 """ 156 def process_usuario_list(list): 157 """ 158 Serializa una lista de con los datos de los usuarios para enviarla al cliente 159 @param list: lista de objectos Usuario obtenidas desde la BD 160 @return: result lista procesada de usuarios 161 """ 162 result = [] 163 for usuario in list: 164 item = [None,None,None,None] 165 item[0] = usuario.id 166 item[1] = usuario.nick 167 item[2] = usuario.nombres 168 item[3] = usuario.apellidos 169 result.append(item) 170 return result
171 172 id_proyecto = request.params['id'] 173 # Obtenemos la lista de usuarios que fueron asignados al proyecto 174 # Usuarios es de tipo ProyectoUsuario[] por tanto es necesario extraer el 'usuario' de la relacion 175 usuarios_asignados = [x.usuario for x in DBSession.query(Proyecto).filter_by(id=id_proyecto).first().usuarios] 176 # Obtenemos la lista de usuarios que no fueron asignados al proyecto 177 usuarios_asignables = DBSession.query(Usuario).from_statement('select * from Usuario where id not in (select idusuario from ProyectoUsuario where idproyecto=\'{0}\')'.format(id_proyecto)).all() 178 179 asignados = process_usuario_list(usuarios_asignados) 180 asignables = process_usuario_list(usuarios_asignables) 181 182 return {'success':True, 'asignados':asignados, 'asignables':asignables} 183