Skip to content

Resolve "Criar componente genérico para os filtros"

Descrição

Alterações para a criação do componente generico de filtros

Alterações Realizadas

Para gerar um menu de filtros o desenvolvedor deve fornecer os campos que ele deseja adicionar a partir da locals da partial.

Criando os filtros de propostas com o componente generico

<div class="proposals-filters">
    <%= render partial: "decidim/components/filter", locals: { 
          show_filters: false,
          search_field: {
            placeholder: t("decidim.proposals.proposals.filters.placeholder", 
            name: translated_attribute(current_component.singular_name).present? ? 
                  translated_attribute(current_component.singular_name).downcase : 
                  "proposta"
            ),
            status: true
          },
          radio_collection: [
            {
              attribute: :activity, 
              collection: activity_filter_values, 
              legend: t("decidim.proposals.proposals.filters.activity"),
              status: current_user
            }
          ],
          check_boxes: [
            {
              attribute: :with_any_state, 
              collection: filter_proposals_state_values, 
              legend: t("decidim.proposals.proposals.filters.state"),
              aria_controls: "proposals",
              status: (
                component_settings.proposal_answering_enabled && 
                current_settings.proposal_answering_enabled
              )
            },
            {
              attribute: :with_any_category, 
              collection: filter_categories_values, 
              legend: t("decidim.proposals.proposals.filters.category"),
              aria_controls: "proposals",
              status: (current_component.categories.any?)
            }
          ],
          hidden_tag: {
            status: true,
            order: order
          },
          hidden_field: {
            status: true,
            value: "state_withdraw"
          }
        }
    %>
</div>

Os campos de radio_collection e checkboxes são listas para permitir que o usuário adicione n filtros conforme a necessidade e as variáveis de cada componente, o status define se os filtros serão renderizados. O campo de show_filters é o que define o estado inicial dos filtros, o padrão é false pois o mesmo deve aparecer ao apertar o botão de mostrar filtros.

Critérios de Aceitação

  • O componente deve gerar os elementos básicos de um filtro
  • O componente deve possuir a estilização padronizada
  • O componente deve gerar os filtros a partir da entrada fornecida

#263 (closed)

Edited by Vitor Borges dos Santos

Merge request reports