Commit 13086b70659f328c64eec8b699a8532092d287bc
1 parent
9d287325
Exists in
master
criação do editar orgão
Showing
8 changed files
with
267 additions
and
27 deletions
Show diff stats
wscacicneo/__init__.py
@@ -42,14 +42,15 @@ def main(global_config, **settings): | @@ -42,14 +42,15 @@ def main(global_config, **settings): | ||
42 | config.add_route('orgao', 'orgao/cadastro') | 42 | config.add_route('orgao', 'orgao/cadastro') |
43 | config.add_route('post_orgao', 'post_orgao') | 43 | config.add_route('post_orgao', 'post_orgao') |
44 | config.add_route('put_orgao', 'put_orgao') | 44 | config.add_route('put_orgao', 'put_orgao') |
45 | - config.add_route('editorgao', 'editar/{sigla}') | 45 | + config.add_route('editorgao', 'editar/orgao/{sigla}') |
46 | config.add_route('listorgao', 'orgao/list') | 46 | config.add_route('listorgao', 'orgao/list') |
47 | config.add_route('delete_orgao', 'delete/{sigla}') | 47 | config.add_route('delete_orgao', 'delete/{sigla}') |
48 | # | 48 | # |
49 | 49 | ||
50 | #Usuários | 50 | #Usuários |
51 | - config.add_route('users', 'users') | 51 | + config.add_route('user', 'user/cadastro') |
52 | config.add_route('post_user', 'post_user') | 52 | config.add_route('post_user', 'post_user') |
53 | + config.add_route('edituser', 'editar/user/{matricula}') | ||
53 | # | 54 | # |
54 | 55 | ||
55 | config.add_route('list', 'list') | 56 | config.add_route('list', 'list') |
wscacicneo/model/user.py
@@ -208,13 +208,13 @@ class User(user_base.metaclass): | @@ -208,13 +208,13 @@ class User(user_base.metaclass): | ||
208 | 208 | ||
209 | return result | 209 | return result |
210 | 210 | ||
211 | - def search_user(self, matricula_user): | 211 | + def search_user(self, matricula): |
212 | """ | 212 | """ |
213 | Busca registro completo do usuário pela matricula | 213 | Busca registro completo do usuário pela matricula |
214 | :return: obj collection com os dados da base | 214 | :return: obj collection com os dados da base |
215 | """ | 215 | """ |
216 | search = Search( | 216 | search = Search( |
217 | - literal="document->>'matricula' = '"+matricula_user+"'" | 217 | + literal="document->>'matricula' = '"+matricula+"'" |
218 | ) | 218 | ) |
219 | results = self.documentrest.get_collection(search_obj=search) | 219 | results = self.documentrest.get_collection(search_obj=search) |
220 | 220 |
@@ -0,0 +1,104 @@ | @@ -0,0 +1,104 @@ | ||
1 | +<metal:main use-macro="load: master.pt"> | ||
2 | + <metal:content fill-slot="conteudo"> | ||
3 | + <div class="padd"> | ||
4 | + <br /> | ||
5 | + <!-- Form starts. --> | ||
6 | + <form class="form-horizontal" role="form"> | ||
7 | + <div class="form-group"> | ||
8 | + <label class="col-lg-2 control-label">Nome</label> | ||
9 | + <div class="col-lg-5"> | ||
10 | + <input type="text" id="nome" value="${nome}" class="form-control" placeholder="Nome do Usuário"> | ||
11 | + </div> | ||
12 | + </div> | ||
13 | + <div class="form-group"> | ||
14 | + <label class="col-lg-2 control-label">Matricula</label> | ||
15 | + <div class="col-lg-5"> | ||
16 | + <input type="text" id="matricula" value="${matricula}" class="form-control" placeholder="Matricula"> | ||
17 | + </div> | ||
18 | + </div> | ||
19 | + <div class="form-group"> | ||
20 | + <label class="col-lg-2 control-label">E-Mail</label> | ||
21 | + <div class="col-lg-5"> | ||
22 | + <input type="text" id="email" value="${email}" class="form-control" placeholder="E-Mail"> | ||
23 | + </div> | ||
24 | + </div> | ||
25 | + <div class="form-group"> | ||
26 | + <label class="col-lg-2 control-label">Telefone</label> | ||
27 | + <div class="col-lg-5"> | ||
28 | + <input type="text" id="telefone" value="${telefone}" class="form-control" placeholder="Telefone"> | ||
29 | + </div> | ||
30 | + </div> | ||
31 | + <div class="form-group"> | ||
32 | + <label class="col-lg-2 control-label">Orgão</label> | ||
33 | + <div class="col-lg-5"> | ||
34 | + <input type="text" id="orgao" value="${orgao}" class="form-control" placeholder="Orgão"> | ||
35 | + </div> | ||
36 | + </div> | ||
37 | + <div class="form-group"> | ||
38 | + <label class="col-lg-2 control-label">Cargo</label> | ||
39 | + <div class="col-lg-5"> | ||
40 | + <input type="text" id="cargo" value="${cargo}" class="form-control" placeholder="Cargo"> | ||
41 | + </div> | ||
42 | + </div> | ||
43 | + <div class="form-group"> | ||
44 | + <label class="col-lg-2 control-label">Setor</label> | ||
45 | + <div class="col-lg-5"> | ||
46 | + <input type="text" id="setor" value="${setor}" class="form-control" placeholder="Setor"> | ||
47 | + </div> | ||
48 | + </div> | ||
49 | + <div class="form-group"> | ||
50 | + <label class="col-lg-2 control-label">Permissão</label> | ||
51 | + <div class="col-lg-2"> | ||
52 | + <select id="permissao" class="form-control"> | ||
53 | + <option selected>${permissao}</option> | ||
54 | + <option>Administrador</option> | ||
55 | + <option>Gestor</option> | ||
56 | + </select> | ||
57 | + </div> | ||
58 | + </div> | ||
59 | + <div class="form-group"> | ||
60 | + <div class="col-lg-offset-2 col-lg-6"> | ||
61 | + <button type="button" id="enviar" class="btn btn-sm" style="margin-left: 315px;" >Enviar</button> | ||
62 | + <button type="button" id="limpar" class="btn btn-sm">Limpar</button> | ||
63 | + </div> | ||
64 | + </div> | ||
65 | + </form> | ||
66 | + </div> | ||
67 | + </metal:content> | ||
68 | + <metal:content fill-slot="javascript"> | ||
69 | + <script type="text/javascript"> | ||
70 | + $('#limpar').click(function(){ | ||
71 | + $('#nome').val('') | ||
72 | + $('#matricula').val('') | ||
73 | + $('#email').val('') | ||
74 | + $('#telefone').val('') | ||
75 | + $('#orgao').val('') | ||
76 | + $('#cargo').val('') | ||
77 | + $('#setor').val('') | ||
78 | + $('#permissao').val('Permissões') | ||
79 | + }); | ||
80 | + $('#enviar').click(function(){ | ||
81 | + var data = { | ||
82 | + 'nome' : $('#nome').val(), | ||
83 | + 'matricula' : $('#matricula').val(), | ||
84 | + 'email' : $('#email').val(), | ||
85 | + 'telefone' : $('#telefone').val(), | ||
86 | + 'orgao' : $('#orgao').val(), | ||
87 | + 'cargo' : $('#cargo').val(), | ||
88 | + 'setor' : $('#setor').val(), | ||
89 | + 'permissao' : $('#permissao').val(), | ||
90 | + } | ||
91 | + if (data.email.indexOf("gov.br") > -1 == false){ | ||
92 | + alert('Somente é permitido cadastro de e-mails institucionais'); | ||
93 | + }else{ | ||
94 | + $.ajax({ | ||
95 | + type: "PUT", | ||
96 | + url: "${request.route_url('root')}post_user", | ||
97 | + data: data, | ||
98 | + success: function(){ alert('sucesso') }, | ||
99 | + error: function(){ alert('erro') }, | ||
100 | + });} | ||
101 | + }); | ||
102 | + </script> | ||
103 | + </metal:content> | ||
104 | +</metal:main> |
wscacicneo/templates/menu.pt
@@ -7,7 +7,13 @@ | @@ -7,7 +7,13 @@ | ||
7 | <li class="has_sub"> | 7 | <li class="has_sub"> |
8 | <a href="#"><i class="fa fa-file-o"></i> Orgão <span class="pull-right"><i class="fa fa-chevron-right"></i></span></a> | 8 | <a href="#"><i class="fa fa-file-o"></i> Orgão <span class="pull-right"><i class="fa fa-chevron-right"></i></span></a> |
9 | <ul> | 9 | <ul> |
10 | - <li><a href="${request.route_url('root')}orgao">Cadastrar Orgao</a></li> | 10 | + <li><a href="${request.route_url('root')}orgao/cadastro">Cadastrar Orgao</a></li> |
11 | + <li><a href="${request.route_url('root')}orgao/list">Listar Orgao</a></li> | ||
12 | + </ul> | ||
13 | + <li class="has_sub"> | ||
14 | + <a href="#"><i class="fa fa-file-o"></i> Usuário <span class="pull-right"><i class="fa fa-chevron-right"></i></span></a> | ||
15 | + <ul> | ||
16 | + <li><a href="${request.route_url('root')}user/cadastro">Cadastrar Usuário</a></li> | ||
11 | </ul> | 17 | </ul> |
12 | </li> | 18 | </li> |
13 | </ul> | 19 | </ul> |
wscacicneo/templates/user.pt
1 | -<html> | ||
2 | - <head> | ||
3 | - <title>Login</title> | ||
4 | - <style type="text/css"> | ||
5 | - body { | ||
6 | - margin : 0px; | ||
7 | - padding : 0px; | ||
8 | - } | ||
9 | - .login { | ||
10 | - background-color : #032a65; | ||
11 | - width : 1366px; | ||
12 | - height : 75px; | ||
13 | - } | ||
14 | - </style> | ||
15 | - </head> | ||
16 | - <body> | ||
17 | - <div class="login"></div> | ||
18 | - </body> | ||
19 | -</html> | 1 | +<metal:main use-macro="load: master.pt"> |
2 | + <metal:content fill-slot="conteudo"> | ||
3 | + <div class="padd"> | ||
4 | + <br /> | ||
5 | + <!-- Form starts. --> | ||
6 | + <form class="form-horizontal" role="form"> | ||
7 | + <div class="form-group"> | ||
8 | + <label class="col-lg-2 control-label">Nome</label> | ||
9 | + <div class="col-lg-5"> | ||
10 | + <input type="text" id="nome" class="form-control" placeholder="Nome do Usuário"> | ||
11 | + </div> | ||
12 | + </div> | ||
13 | + <div class="form-group"> | ||
14 | + <label class="col-lg-2 control-label">Matricula</label> | ||
15 | + <div class="col-lg-5"> | ||
16 | + <input type="text" id="matricula" class="form-control" placeholder="Matricula"> | ||
17 | + </div> | ||
18 | + </div> | ||
19 | + <div class="form-group"> | ||
20 | + <label class="col-lg-2 control-label">E-Mail</label> | ||
21 | + <div class="col-lg-5"> | ||
22 | + <input type="text" id="email" class="form-control" placeholder="E-Mail"> | ||
23 | + </div> | ||
24 | + </div> | ||
25 | + <div class="form-group"> | ||
26 | + <label class="col-lg-2 control-label">Telefone</label> | ||
27 | + <div class="col-lg-5"> | ||
28 | + <input type="text" id="telefone" class="form-control" placeholder="Telefone"> | ||
29 | + </div> | ||
30 | + </div> | ||
31 | + <div class="form-group"> | ||
32 | + <label class="col-lg-2 control-label">Orgão</label> | ||
33 | + <div class="col-lg-5"> | ||
34 | + <input type="text" id="orgao" class="form-control" placeholder="Orgão"> | ||
35 | + </div> | ||
36 | + </div> | ||
37 | + <div class="form-group"> | ||
38 | + <label class="col-lg-2 control-label">Cargo</label> | ||
39 | + <div class="col-lg-5"> | ||
40 | + <input type="text" id="cargo" class="form-control" placeholder="Cargo"> | ||
41 | + </div> | ||
42 | + </div> | ||
43 | + <div class="form-group"> | ||
44 | + <label class="col-lg-2 control-label">Setor</label> | ||
45 | + <div class="col-lg-5"> | ||
46 | + <input type="text" id="setor" class="form-control" placeholder="Setor"> | ||
47 | + </div> | ||
48 | + </div> | ||
49 | + <div class="form-group"> | ||
50 | + <label class="col-lg-2 control-label">Permissão</label> | ||
51 | + <div class="col-lg-2"> | ||
52 | + <select id="permissao" class="form-control"> | ||
53 | + <option selected disabled>Permissões</option> | ||
54 | + <option>Administrador</option> | ||
55 | + <option>Gestor</option> | ||
56 | + </select> | ||
57 | + </div> | ||
58 | + </div> | ||
59 | + <div class="form-group"> | ||
60 | + <div class="col-lg-offset-2 col-lg-6"> | ||
61 | + <button type="button" id="enviar" class="btn btn-sm" style="margin-left: 315px;" >Enviar</button> | ||
62 | + <button type="button" id="limpar" class="btn btn-sm">Limpar</button> | ||
63 | + </div> | ||
64 | + </div> | ||
65 | + </form> | ||
66 | + </div> | ||
67 | + </metal:content> | ||
68 | + <metal:content fill-slot="javascript"> | ||
69 | + <script type="text/javascript"> | ||
70 | + $('#limpar').click(function(){ | ||
71 | + $('#nome').val('') | ||
72 | + $('#matricula').val('') | ||
73 | + $('#email').val('') | ||
74 | + $('#telefone').val('') | ||
75 | + $('#orgao').val('') | ||
76 | + $('#cargo').val('') | ||
77 | + $('#setor').val('') | ||
78 | + $('#permissao').val('Permissões') | ||
79 | + }); | ||
80 | + $('#enviar').click(function(){ | ||
81 | + var data = { | ||
82 | + 'nome' : $('#nome').val(), | ||
83 | + 'matricula' : $('#matricula').val(), | ||
84 | + 'email' : $('#email').val(), | ||
85 | + 'telefone' : $('#telefone').val(), | ||
86 | + 'orgao' : $('#orgao').val(), | ||
87 | + 'cargo' : $('#cargo').val(), | ||
88 | + 'setor' : $('#setor').val(), | ||
89 | + 'permissao' : $('#permissao').val(), | ||
90 | + } | ||
91 | + if (data.email.indexOf("gov.br") > -1 == false){ | ||
92 | + alert('Somente é permitido cadastro de e-mails institucionais'); | ||
93 | + }else{ | ||
94 | + $.ajax({ | ||
95 | + type: "POST", | ||
96 | + url: "${request.route_url('root')}post_user", | ||
97 | + data: data, | ||
98 | + success: function(){ alert('sucesso') }, | ||
99 | + error: function(){ alert('erro') }, | ||
100 | + });} | ||
101 | + }); | ||
102 | + </script> | ||
103 | + </metal:content> | ||
104 | +</metal:main> |
@@ -0,0 +1,19 @@ | @@ -0,0 +1,19 @@ | ||
1 | +<html> | ||
2 | + <head> | ||
3 | + <title>Login</title> | ||
4 | + <style type="text/css"> | ||
5 | + body { | ||
6 | + margin : 0px; | ||
7 | + padding : 0px; | ||
8 | + } | ||
9 | + .login { | ||
10 | + background-color : #032a65; | ||
11 | + width : 1366px; | ||
12 | + height : 75px; | ||
13 | + } | ||
14 | + </style> | ||
15 | + </head> | ||
16 | + <body> | ||
17 | + <div class="login"></div> | ||
18 | + </body> | ||
19 | +</html> |
wscacicneo/test/results.txt
wscacicneo/views.py
@@ -72,8 +72,8 @@ def admin(request): | @@ -72,8 +72,8 @@ def admin(request): | ||
72 | def diagnostic(request): | 72 | def diagnostic(request): |
73 | return {'project': 'WSCacicNeo'} | 73 | return {'project': 'WSCacicNeo'} |
74 | 74 | ||
75 | -@view_config(route_name='users', renderer='templates/users.pt') | ||
76 | -def users(request): | 75 | +@view_config(route_name='user', renderer='templates/user.pt') |
76 | +def user(request): | ||
77 | return {'project': 'WSCacicNeo'} | 77 | return {'project': 'WSCacicNeo'} |
78 | 78 | ||
79 | @view_config(route_name='cadastro', renderer='templates/cadastro.pt') | 79 | @view_config(route_name='cadastro', renderer='templates/cadastro.pt') |
@@ -302,3 +302,28 @@ def post_user(request): | @@ -302,3 +302,28 @@ def post_user(request): | ||
302 | print(id_doc) | 302 | print(id_doc) |
303 | 303 | ||
304 | return Response(str(id_doc)) | 304 | return Response(str(id_doc)) |
305 | + | ||
306 | +@view_config(route_name='edituser', renderer='templates/editaruser.pt') | ||
307 | +def edituser(request): | ||
308 | + matricula = request.matchdict['matricula'] | ||
309 | + user_obj = User( | ||
310 | + nome = 'base', | ||
311 | + matricula = matricula, | ||
312 | + email = 'base@gov.br', | ||
313 | + orgao = 'orgao', | ||
314 | + telefone = 'telefone', | ||
315 | + cargo = 'cargo', | ||
316 | + setor = 'setor', | ||
317 | + permissao = 'Gestor' | ||
318 | + ) | ||
319 | + search = user_obj.search_user(matricula) | ||
320 | + return { | ||
321 | + 'nome' : search.results[0].nome, | ||
322 | + 'matricula' : search.results[0].matricula, | ||
323 | + 'email' : search.results[0].email, | ||
324 | + 'orgao' : search.results[0].orgao, | ||
325 | + 'telefone' : search.results[0].telefone, | ||
326 | + 'cargo' : search.results[0].cargo, | ||
327 | + 'setor' : search.results[0].setor, | ||
328 | + 'permissao' : search.results[0].permissao | ||
329 | + } | ||
305 | \ No newline at end of file | 330 | \ No newline at end of file |