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, effective_principals
5 from sapproject.models.security import *
6 from sapproject.models.usuario import *
7 from sapproject.models.rol import *
8
9 @view_config(route_name='main_view', renderer='../templates/main.pt', permission='admin')
10 -def main_view(request):
11 """
12 Muestra el main
13 @param request: objeto que encapsula la peticion del servidor
14 """
15 return {}
16
17 @view_config(route_name='home_view', renderer='../templates/index.pt')
18 -def home_view(request):
19 """
20 Si la autenticacion es correcta le muestra la pantalla principal al usuario
21 sino vuelve a mostrarle el login
22 @param request: objeto que encapsula la peticion del servidor
23 """
24 if authenticated_userid(request):
25 return HTTPFound(location=request.route_url('main_view'))
26 return HTTPFound(location=request.route_url('login_view'))
27
28 @view_config(route_name='llenar_combo_proyecto_json', renderer='json')
29 -def llenar_combo_proyecto(request):
30 """
31 Llena el combo correspondiente a los proyectos que le pertenecen a ese usuario
32 mediante la relacion ProyectoUsuarioRoles
33 @param request: objeto que encapsula la peticion del servidor
34 @return: la cantidad de proyectos de ese Usuario y la lista de proyectos con su rol respectivo que tiene el usuario
35 """
36 userid = authenticated_userid(request)
37 usuario = DBSession.query(Usuario).filter_by(nick=userid).first()
38 lista = usuario.roles_x_proyecto
39 if len(lista) == 0:
40 return {'total':0, 'data':[]}
41 else:
42 data = []
43 for rp in lista:
44 item = {}
45 item['proyecto'] = rp.proyecto.nombre
46 item['rol'] = rp.rol.nombre
47 item['proyecto_rol'] = '{0} ({1})'.format(rp.proyecto.nombre,rp.rol.nombre)
48 data.append(item)
49 return {'total':len(data), 'data':data}
50