-
Notifications
You must be signed in to change notification settings - Fork 1
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
Melhoria da Usabilidade na Seleção de Grupos: Atualização da Interface para Seleção Intuitiva e Eficiente #5
base: main
Are you sure you want to change the base?
Conversation
…o outro que haviam bugado por estarem datados com o passado
…amente dentro dos itens selecionados
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.
O que esse template tem a ver com o DualListBox????
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.
O que esse template tem a ver com o DualListBox????
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.
O que esse template tem a ver com o DualListBox????
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.
O que esse template tem a ver com o DualListBox????
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.
O que esse template tem a ver com o DualListBox????
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.
Onde isso é usado?
</div> | ||
|
||
<!-- Duallistbox Visível --> | ||
<select multiple="multiple" name="duallistbox_demo1[]" id="duallistbox_demo1" class="duallistbox"> |
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.
Tá certo isso? O name e id do select estão hardcoded. Se num form tiver dois ou mais campos com esse widget, todos terão o mesmo id/nome, que certamente trará problemas.
<link rel="stylesheet" href="{% static 'css/related_widget_wrapper.css' %}"> | ||
<div class="related-widget-wrapper" style="height: 100%;" {% if not model_has_limit_choices_to %}data-model-ref="{{ model_name }}"{% endif %}> | ||
<!-- Renderiza o widget original, mas oculto --> | ||
<div id="original-widget" style="display: none;"> |
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.
id hardcoded é errado. Cada elemento no HTML final tem que ter um id único
Descrição do Pull Request
Este PR resolver a issue #4
Neste Pull Request, foram realizadas duas principais modificações. Primeiro, instalei a Django Debug Toolbar para facilitar o processo de depuração durante a configuração dos templates. A ferramenta foi adicionada no
INSTALLED_APPS
, e verifiquei que oDEBUG
está configurado comoTrue
no ambiente de desenvolvimento.Em segundo lugar, realizei uma customização nos widgets de seleção de grupos na interface do usuário. Anteriormente, a seleção de múltiplos grupos exigia o uso da tecla
Ctrl
, o que não era uma abordagem intuitiva para os usuários. Para resolver isso, modifiquei a interface para permitir a seleção de múltiplos grupos de forma mais amigável, semelhante ao comportamento de "drag-and-drop" ou seleção em massa, sem a necessidade de pressionar oCtrl
.Exemplos Visuais
Como era antes:
Referência de como deveria ser:
Como ficou:
Essas mudanças visam melhorar a usabilidade do sistema, permitindo que os usuários selecionem diversos grupos de maneira mais intuitiva e eficiente.
Além disso, justifico a inclusão do script diretamente no arquivo
related_widget_wrapper.html
neste Pull Request para garantir que o comportamento do DualListBox esteja sempre sincronizado com o estado do widget original. Essa abordagem elimina a necessidade de múltiplas chamadas JavaScript externas e centraliza a lógica de manipulação do DOM (Document Object Model) dentro do próprio widget. Como resultado, melhoramos a eficiência e a manutenção do código, assegurando que as alterações nos elementos do DOM sejam refletidas em tempo real, e reduzimos a chance de erros relacionados à sincronização.