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
29 model = Usuario(ci, nombres, apellidos, nick, password, email, telefono, direccion, observaciones, sexo, fechanac)
30 DBSession.add(model)
31 return {'success' : True}
32
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
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
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
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
139
140
141
142
143 try:
144 DBSession.delete(usuario)
145 return {'success' : True}
146 except AssertionError:
147 return {'success' : False}
148
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
174
175 usuarios_asignados = [x.usuario for x in DBSession.query(Proyecto).filter_by(id=id_proyecto).first().usuarios]
176
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