Skip to content
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

Open
wants to merge 5 commits into
base: main
Choose a base branch
from

Conversation

moonshinerd
Copy link
Contributor

@moonshinerd moonshinerd commented Oct 5, 2024

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 o DEBUG está configurado como True 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 o Ctrl.

Exemplos Visuais

  • Como era antes:
    image

  • Referência de como deveria ser:
    image

  • Como ficou:
    image

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.

@moonshinerd moonshinerd changed the title Melhoria da Usabilidade na Seleção de Grupos: Atualização da Interface para Seleção Intuitiva e Eficiente (Resolve a issue #4) Melhoria da Usabilidade na Seleção de Grupos: Atualização da Interface para Seleção Intuitiva e Eficiente (Resolve a issue #4 ) Oct 5, 2024
@moonshinerd moonshinerd changed the title Melhoria da Usabilidade na Seleção de Grupos: Atualização da Interface para Seleção Intuitiva e Eficiente (Resolve a issue #4 ) Melhoria da Usabilidade na Seleção de Grupos: Atualização da Interface para Seleção Intuitiva e Eficiente (Resolve a issue (#4[https://github.com/interlegis/djbs-theme/issues/4] ) Oct 5, 2024
@moonshinerd moonshinerd changed the title Melhoria da Usabilidade na Seleção de Grupos: Atualização da Interface para Seleção Intuitiva e Eficiente (Resolve a issue (#4[https://github.com/interlegis/djbs-theme/issues/4] ) Melhoria da Usabilidade na Seleção de Grupos: Atualização da Interface para Seleção Intuitiva e Eficiente (Resolve a issue (#4)[https://github.com/interlegis/djbs-theme/issues/4] ) Oct 5, 2024
@moonshinerd moonshinerd changed the title Melhoria da Usabilidade na Seleção de Grupos: Atualização da Interface para Seleção Intuitiva e Eficiente (Resolve a issue (#4)[https://github.com/interlegis/djbs-theme/issues/4] ) Melhoria da Usabilidade na Seleção de Grupos: Atualização da Interface para Seleção Intuitiva e Eficiente (Resolve a issue [#4](https://github.com/interlegis/djbs-theme/issues/4)) Oct 5, 2024
@moonshinerd moonshinerd changed the title Melhoria da Usabilidade na Seleção de Grupos: Atualização da Interface para Seleção Intuitiva e Eficiente (Resolve a issue [#4](https://github.com/interlegis/djbs-theme/issues/4)) Melhoria da Usabilidade na Seleção de Grupos: Atualização da Interface para Seleção Intuitiva e Eficiente Oct 5, 2024
Copy link
Member

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????

Copy link
Member

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????

Copy link
Member

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????

Copy link
Member

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????

Copy link
Member

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????

Copy link
Member

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">
Copy link
Member

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;">
Copy link
Member

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

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.

2 participants