-
Notifications
You must be signed in to change notification settings - Fork 94
Seleciona tipo de votação para múltiplas matérias ao incluir na Ordem do Dia ou Expediente #3781
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: 3.1.x
Are you sure you want to change the base?
Seleciona tipo de votação para múltiplas matérias ao incluir na Ordem do Dia ou Expediente #3781
Conversation
… do Dia ou Expediente
|
Que interessante! Obrigado! |
edwardoliveira
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Duas mudanças básicas a fazer:
- Evitar a criação de formulários HTML manuais quando se pode criar o form e adicionar na view em Python.
- Utilizar jQuery ao invés de JS puro.
| <tr> | ||
| <td> | ||
| <label for="id_check_all"> | ||
| <input type="checkbox" id="id_check_all" onchange="checkAll(this)" /> Marcar/Desmarcar Todos | ||
| </label> | ||
| </td> | ||
| <td> | ||
| <input type="radio" name="tipo_votacao_check_all" id="tipo_votacao_simb" value="1" onchange="marcaTipoVotacao()" > <label>Simbólica</label> | ||
| </br> | ||
| <input type="radio" name="tipo_votacao_check_all" id="tipo_votacao_nom" value="2" onchange="marcaTipoVotacao()" > <label>Nominal</label> | ||
| </br> | ||
| <input type="radio" name="tipo_votacao_check_all" id="tipo_votacao_secr" value="3" onchange="marcaTipoVotacao()" > <label>Secreta</label> | ||
| </br> | ||
| <input type="radio" name="tipo_votacao_check_all" id="tipo_votacao_leit" value="4" onchange="marcaTipoVotacao()" > <label>Leitura</label> | ||
| </br> | ||
| </td> | ||
| </tr> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Evitar esses campos hard coded no template. Definir como campos em form que a view renderiza via crispy form, por exemplo.
| let checkboxes = document.getElementsByName('materia_id'); | ||
| for (let i = 0; i < checkboxes.length; i++) { | ||
| if (checkboxes[i].type == 'checkbox') | ||
| checkboxes[i].checked = elem.checked; | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Usar jQuery ao invés de JavaScript puro. O código fica mais conciso e legível.
| let checkboxes = document.getElementsByName('materia_id'); | |
| for (let i = 0; i < checkboxes.length; i++) { | |
| if (checkboxes[i].type == 'checkbox') | |
| checkboxes[i].checked = elem.checked; | |
| } | |
| $('input[name="materia_id"]:checkbox').prop('checked', elem.checked); |
| materias = document.getElementsByName('materia_id'); | ||
| for (var i=0; i<materias.length;i++){ | ||
| if ( materias[i].checked ){ | ||
| var id_materia = "#tipo_votacao_" + materias[i].value + "_" + document.querySelector('input[name="tipo_votacao_check_all"]:checked').value; | ||
| $(id_materia).prop('checked', true); | ||
| } | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Mesmo comentário acima, utilizar jQuery para deixar código mais conciso e legível.
| materias = document.getElementsByName('materia_id'); | |
| for (var i=0; i<materias.length;i++){ | |
| if ( materias[i].checked ){ | |
| var id_materia = "#tipo_votacao_" + materias[i].value + "_" + document.querySelector('input[name="tipo_votacao_check_all"]:checked').value; | |
| $(id_materia).prop('checked', true); | |
| } | |
| } | |
| $('input[name="materia_id"]:checked').each(function() { | |
| var tipoVotacao = $('input[name="tipo_votacao_check_all"]:checked').val(); | |
| var idMateria = "#tipo_votacao_" + $(this).val() + "_" + tipoVotacao; | |
| $(idMateria).prop('checked', true); | |
| }); |
|
@cristian-longhi FYI, este PR também foi revisado. |
|
@edwardoliveira Eu vi, mas optei por tratar primeiro os ajustes solicitados do PR #3783 . Tratarei este assim que aquele estiver finalizado. |
|
@edwardoliveira , ajustes solicitados foram efetuados no PR #3793 . Assim que aprovado, fecho este PR. |
|
@cristian-longhi Tem alguma coisa errada com esse merge que você fez... 140 arquivos modificados! Tenta revisar o rebase com o branch 3.1.x, pois ele pegou todas as modificações de um PR que fiz merge. |
|
@edwardoliveira , parece que fazer a revisão resolveu. Agora são apenas os 3 arquivos alterados... Eu estou tendo mesmo problemas com a sincronização do repositório, mas acho que agora o PR está OK. |
6a6f002 to
10691ac
Compare
44c7429 to
bda00ac
Compare
edwardoliveira
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
TODO: endereçar os comentários de revisão.
Alteração do nome do campo todos, conforme solicitação.
Ajuste no template por alteração do nome do campo "todos".
3c0638b to
5d2c50c
Compare
5d2c50c to
50666d0
Compare
50666d0 to
f92c461
Compare
f92c461 to
3faba84
Compare
Descrição
Na tabela do resultado da pesquisa das Matérias, a primeira linha passa a ter a opção de marcar / desmarcar todas as Matérias, e também, para todas as Matérias que estiverem selecionadas, marca ou altera o tipo de votação.
Issue Relacionada
#3780
Motivação e Contexto
Algumas Casas Legislativas tem um grande número de Requerimentos ou Indicações a serem cadastradas por Sessão Plenária, e para cada uma tem de ser informado o tipo de votação, que também é o mesmo para todas as Matérias daquele tipo na maioria das situações. Com a possibilidade de definir o tipo de votação para todas as selecionadas minimiza-se a possibilidade de erros ou esquecimento. Assim, independente da quantidade de Matérias que a pesquisa trará no resultado, é possível cadastrá-las com até três cliques.
Como Isso Foi Testado?
Localmente. Tal solução já vem sendo utilizada em produção em nossa Câmara.
As alterações efetuadas tratam-se de html e Javascript, não afetando outros templates ou acessos ao banco de dados.
Capturas de Tela (se apropriado):
Tipos de Mudanças
Checklist: