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 | 42 | config.add_route('orgao', 'orgao/cadastro') |
43 | 43 | config.add_route('post_orgao', 'post_orgao') |
44 | 44 | config.add_route('put_orgao', 'put_orgao') |
45 | - config.add_route('editorgao', 'editar/{sigla}') | |
45 | + config.add_route('editorgao', 'editar/orgao/{sigla}') | |
46 | 46 | config.add_route('listorgao', 'orgao/list') |
47 | 47 | config.add_route('delete_orgao', 'delete/{sigla}') |
48 | 48 | # |
49 | 49 | |
50 | 50 | #Usuários |
51 | - config.add_route('users', 'users') | |
51 | + config.add_route('user', 'user/cadastro') | |
52 | 52 | config.add_route('post_user', 'post_user') |
53 | + config.add_route('edituser', 'editar/user/{matricula}') | |
53 | 54 | # |
54 | 55 | |
55 | 56 | config.add_route('list', 'list') | ... | ... |
wscacicneo/model/user.py
... | ... | @@ -208,13 +208,13 @@ class User(user_base.metaclass): |
208 | 208 | |
209 | 209 | return result |
210 | 210 | |
211 | - def search_user(self, matricula_user): | |
211 | + def search_user(self, matricula): | |
212 | 212 | """ |
213 | 213 | Busca registro completo do usuário pela matricula |
214 | 214 | :return: obj collection com os dados da base |
215 | 215 | """ |
216 | 216 | search = Search( |
217 | - literal="document->>'matricula' = '"+matricula_user+"'" | |
217 | + literal="document->>'matricula' = '"+matricula+"'" | |
218 | 218 | ) |
219 | 219 | results = self.documentrest.get_collection(search_obj=search) |
220 | 220 | ... | ... |
... | ... | @@ -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 | <li class="has_sub"> |
8 | 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 | 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 | 17 | </ul> |
12 | 18 | </li> |
13 | 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 @@ |
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 | 72 | def diagnostic(request): |
73 | 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 | 77 | return {'project': 'WSCacicNeo'} |
78 | 78 | |
79 | 79 | @view_config(route_name='cadastro', renderer='templates/cadastro.pt') |
... | ... | @@ -302,3 +302,28 @@ def post_user(request): |
302 | 302 | print(id_doc) |
303 | 303 | |
304 | 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 | 330 | \ No newline at end of file | ... | ... |