Skip to content

Conversation

@cristian-longhi
Copy link
Contributor

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):

image

Tipos de Mudanças

  • Bug fix (alteração que corrige uma issue e não altera funcionalidades já existentes)
  • Nova feature (alteração que adiciona uma funcionalidade e não altera funcionalidades já existentes)
  • Alteração disruptiva (Breaking change) (Correção ou funcionalidade que causa alteração nas funcionalidades existentes)

Checklist:

  • Eu li o documento de Contribuição (CONTRIBUTING).
  • Meu código segue o estilo de código deste projeto.
  • Minha alteração requer uma alteração na documentação.
  • Eu atualizei a documentação de acordo.
  • Eu adicionei testes para cobrir minhas mudanças.
  • Todos os testes novos e existentes passaram.

@JailsonT123
Copy link

Que interessante!
Considerando que não sou da Área de TI e tomei posse recentemente na casa em que exerço o cargo, o que devo fazer para promover esta solução, seja localmente?

Obrigado!

Copy link
Contributor

@edwardoliveira edwardoliveira left a 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.

Comment on lines 35 to 51
<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>
Copy link
Contributor

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.

Comment on lines 147 to 151
let checkboxes = document.getElementsByName('materia_id');
for (let i = 0; i < checkboxes.length; i++) {
if (checkboxes[i].type == 'checkbox')
checkboxes[i].checked = elem.checked;
}
Copy link
Contributor

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.

Suggested change
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);

Comment on lines 155 to 161
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);
}
}
Copy link
Contributor

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.

Suggested change
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);
});

@edwardoliveira
Copy link
Contributor

@cristian-longhi FYI, este PR também foi revisado.

@cristian-longhi
Copy link
Contributor Author

@edwardoliveira Eu vi, mas optei por tratar primeiro os ajustes solicitados do PR #3783 . Tratarei este assim que aquele estiver finalizado.

@cristian-longhi
Copy link
Contributor Author

@edwardoliveira , ajustes solicitados foram efetuados no PR #3793 . Assim que aprovado, fecho este PR.

@edwardoliveira
Copy link
Contributor

edwardoliveira commented Sep 3, 2025

@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.

@cristian-longhi
Copy link
Contributor Author

@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.

@edwardoliveira edwardoliveira force-pushed the 3.1.x branch 3 times, most recently from 44c7429 to bda00ac Compare September 16, 2025 23:08
Copy link
Contributor

@edwardoliveira edwardoliveira left a 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants