wagtail-enap-designsystem 1.2.1.166__py3-none-any.whl → 1.2.1.167__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- enap_designsystem/blocks/content_blocks.py +0 -40
- enap_designsystem/blocks/html_blocks.py +10 -1
- enap_designsystem/blocks/layout_blocks.py +4 -35
- enap_designsystem/migrations/0439_alter_areaaluno_body_alter_cursoeadpage_curso_and_more.py +70272 -0
- enap_designsystem/models.py +2 -1
- enap_designsystem/static/enap_designsystem/blocks/cards.css +14 -0
- enap_designsystem/static/enap_designsystem/blocks/pages/page_search.css +11 -0
- enap_designsystem/static/enap_designsystem/blocks/suap/suap_courses_block.css +5 -0
- enap_designsystem/templates/enap_designsystem/blocks/suap/apisuap_courses_block.html +1 -1
- enap_designsystem/templates/enap_designsystem/blocks/suap/suap_courses_block.html +3 -1
- enap_designsystem/templates/enap_designsystem/pages/page_search.html +224 -118
- {wagtail_enap_designsystem-1.2.1.166.dist-info → wagtail_enap_designsystem-1.2.1.167.dist-info}/METADATA +1 -1
- {wagtail_enap_designsystem-1.2.1.166.dist-info → wagtail_enap_designsystem-1.2.1.167.dist-info}/RECORD +16 -15
- {wagtail_enap_designsystem-1.2.1.166.dist-info → wagtail_enap_designsystem-1.2.1.167.dist-info}/WHEEL +0 -0
- {wagtail_enap_designsystem-1.2.1.166.dist-info → wagtail_enap_designsystem-1.2.1.167.dist-info}/licenses/LICENSE +0 -0
- {wagtail_enap_designsystem-1.2.1.166.dist-info → wagtail_enap_designsystem-1.2.1.167.dist-info}/top_level.txt +0 -0
enap_designsystem/models.py
CHANGED
|
@@ -2197,6 +2197,7 @@ class AreaAluno(Page):
|
|
|
2197
2197
|
class Meta:
|
|
2198
2198
|
verbose_name = "Área do Aluno"
|
|
2199
2199
|
verbose_name_plural = "Área do Aluno"
|
|
2200
|
+
|
|
2200
2201
|
class EnapSearchElastic(Page):
|
|
2201
2202
|
template = "enap_designsystem/pages/page_search.html"
|
|
2202
2203
|
|
|
@@ -2213,7 +2214,7 @@ class EnapSearchElastic(Page):
|
|
|
2213
2214
|
if "tipo" not in request.GET:
|
|
2214
2215
|
query = request.GET.get("q", "")
|
|
2215
2216
|
ordenacao = request.GET.get("ordenacao", "relevantes")
|
|
2216
|
-
return redirect(f"{request.path}?q={query}&tipo=
|
|
2217
|
+
return redirect(f"{request.path}?q={query}&tipo=cursos&ordenacao={ordenacao}")
|
|
2217
2218
|
|
|
2218
2219
|
return super().serve(request, *args, **kwargs)
|
|
2219
2220
|
|
|
@@ -93,6 +93,7 @@
|
|
|
93
93
|
font-weight: 600;
|
|
94
94
|
margin: 0;
|
|
95
95
|
line-height: 120%;
|
|
96
|
+
color: #434A54;
|
|
96
97
|
}
|
|
97
98
|
|
|
98
99
|
.p-card{
|
|
@@ -100,6 +101,7 @@
|
|
|
100
101
|
margin: 0;
|
|
101
102
|
display: flex;
|
|
102
103
|
flex-direction: column;
|
|
104
|
+
color: #434A54;
|
|
103
105
|
}
|
|
104
106
|
|
|
105
107
|
.wrapper-button{
|
|
@@ -177,6 +179,18 @@
|
|
|
177
179
|
.card-secondary .wrapper-text-card{
|
|
178
180
|
align-items: center;
|
|
179
181
|
}
|
|
182
|
+
|
|
183
|
+
.card-secondary h2{
|
|
184
|
+
color: white;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
.card-secondary p{
|
|
188
|
+
text-align: center;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
.card-terciary h2{
|
|
192
|
+
color: white;
|
|
193
|
+
}
|
|
180
194
|
|
|
181
195
|
.card-terciary{
|
|
182
196
|
background-color: #024248;
|
|
@@ -527,6 +527,17 @@ z-index: 1;
|
|
|
527
527
|
font-weight: 400;
|
|
528
528
|
}
|
|
529
529
|
|
|
530
|
+
|
|
531
|
+
.card-text p{
|
|
532
|
+
font-size: 16px;
|
|
533
|
+
color: #434A54;
|
|
534
|
+
}
|
|
535
|
+
|
|
536
|
+
.srv-card-text-text p{
|
|
537
|
+
font-size: 16px;
|
|
538
|
+
color: #434A54;
|
|
539
|
+
}
|
|
540
|
+
|
|
530
541
|
.srv-card-meta {
|
|
531
542
|
font-size: 14px;
|
|
532
543
|
color: #75708B;
|
|
@@ -84,7 +84,7 @@
|
|
|
84
84
|
<h3 class="suap-courses-title">{{ curso.descricao }}</h3>
|
|
85
85
|
{% endif %}
|
|
86
86
|
{% if curso.breve_descricao %}
|
|
87
|
-
<p class="
|
|
87
|
+
<p class="card-text">{{ curso.breve_descricao|truncatewords:10 }}</p>
|
|
88
88
|
{% endif %}
|
|
89
89
|
|
|
90
90
|
<!-- Status de inscrições -->
|
|
@@ -41,8 +41,10 @@
|
|
|
41
41
|
overflow: hidden;
|
|
42
42
|
text-overflow: ellipsis;
|
|
43
43
|
">{{ curso.titulo }}</h3>
|
|
44
|
-
<p class="card-text" style="
|
|
44
|
+
<p class="card-text-text" style="
|
|
45
45
|
display: -webkit-box;
|
|
46
|
+
color: #434A54;
|
|
47
|
+
font-size: 16px;
|
|
46
48
|
-webkit-line-clamp: 3;
|
|
47
49
|
-webkit-box-orient: vertical;
|
|
48
50
|
overflow: hidden;
|
|
@@ -41,7 +41,6 @@
|
|
|
41
41
|
{% endif %}
|
|
42
42
|
{% endblock %}
|
|
43
43
|
|
|
44
|
-
|
|
45
44
|
{% block content %}
|
|
46
45
|
<section class="page-wrapper">
|
|
47
46
|
<div class="hearder-search">
|
|
@@ -101,7 +100,7 @@
|
|
|
101
100
|
</div>
|
|
102
101
|
</div>
|
|
103
102
|
</div>
|
|
104
|
-
|
|
103
|
+
<div class="cor-fundo-pesquisa">
|
|
105
104
|
{% if tipo == "cursos" %}
|
|
106
105
|
<div class="filter-container">
|
|
107
106
|
<div id="SrvTab01" class="srv-tabcontent" style="display: block;">
|
|
@@ -123,11 +122,6 @@
|
|
|
123
122
|
<button class="toggle-filtro-btn" onclick="toggleFiltros()">
|
|
124
123
|
<span class="material-icons">filter_list</span> Filtros
|
|
125
124
|
</button>
|
|
126
|
-
{% if request.GET.modalidade or request.GET.inscricoes or request.GET.temas or request.GET.categoria or request.GET.competencias %}
|
|
127
|
-
<a class="toggle-limpar-filtro-btn" href="?q={{ query }}&tipo={{ request.GET.tipo }}&ordenacao={{ ordenacao }}">
|
|
128
|
-
<span class="material-icons">filter_alt_off</span> Limpar Filtros
|
|
129
|
-
</a>
|
|
130
|
-
{% endif %}
|
|
131
125
|
</div>
|
|
132
126
|
<div class="result-info-wrapper">
|
|
133
127
|
{% with pagination.current_page|add:"-1" as page_offset %}
|
|
@@ -154,8 +148,11 @@
|
|
|
154
148
|
<div class="filtro-sidebar" id="filtroSidebar">
|
|
155
149
|
<div class="dropdown-filter">
|
|
156
150
|
<div class="dropdown-header" onclick="toggleDropdown('modalidade')">
|
|
157
|
-
<span>Modalidade</span>
|
|
158
|
-
<
|
|
151
|
+
<span id="modalidade-nome-filtro">Modalidade</span>
|
|
152
|
+
<div class="contador-e-seta">
|
|
153
|
+
<span id="modalidade-count" class="filter-count"></span>
|
|
154
|
+
<i class="dropdown-arrow fa-solid fa-caret-down"></i>
|
|
155
|
+
</div>
|
|
159
156
|
</div>
|
|
160
157
|
<div class="dropdown-checkbox-area" id="modalidade-dropdown">
|
|
161
158
|
<div class="checkbox-container">
|
|
@@ -165,7 +162,7 @@
|
|
|
165
162
|
name="modalidade"
|
|
166
163
|
id="modalidade_{{ item.id }}"
|
|
167
164
|
value="{{ item.id }}"
|
|
168
|
-
|
|
165
|
+
>
|
|
169
166
|
<label for="modalidade_{{ item.id }}">{{ item.nome }}</label>
|
|
170
167
|
</div>
|
|
171
168
|
{% endfor %}
|
|
@@ -175,8 +172,11 @@
|
|
|
175
172
|
|
|
176
173
|
<div class="dropdown-filter">
|
|
177
174
|
<div class="dropdown-header" onclick="toggleDropdown('inscricoes')">
|
|
178
|
-
<span>Inscrições</span>
|
|
179
|
-
<
|
|
175
|
+
<span id="inscricoes-nome-filtro">Inscrições</span>
|
|
176
|
+
<div class="contador-e-seta">
|
|
177
|
+
<span id="inscricoes-count" class="filter-count"></span>
|
|
178
|
+
<i class="dropdown-arrow fa-solid fa-caret-down"></i>
|
|
179
|
+
</div>
|
|
180
180
|
</div>
|
|
181
181
|
<div class="dropdown-checkbox-area" id="inscricoes-dropdown">
|
|
182
182
|
<div class="checkbox-container">
|
|
@@ -186,7 +186,6 @@
|
|
|
186
186
|
name="inscricoes"
|
|
187
187
|
id="inscricoes_{{ item.id }}"
|
|
188
188
|
value="{{ item.id }}"
|
|
189
|
-
{% if item.id|stringformat:"s" in request.GET.inscricoes %}checked{% endif %}
|
|
190
189
|
>
|
|
191
190
|
<label for="inscricoes_{{ item.id }}">{{ item.nome }}</label>
|
|
192
191
|
</div>
|
|
@@ -197,8 +196,11 @@
|
|
|
197
196
|
|
|
198
197
|
<div class="dropdown-filter">
|
|
199
198
|
<div class="dropdown-header" onclick="toggleDropdown('temas')">
|
|
200
|
-
<span>Temas</span>
|
|
201
|
-
<
|
|
199
|
+
<span id="temas-nome-filtro">Temas</span>
|
|
200
|
+
<div class="contador-e-seta">
|
|
201
|
+
<span id="temas-count" class="filter-count"></span>
|
|
202
|
+
<i class="dropdown-arrow fa-solid fa-caret-down"></i>
|
|
203
|
+
</div>
|
|
202
204
|
</div>
|
|
203
205
|
<div class="dropdown-checkbox-area" id="temas-dropdown">
|
|
204
206
|
<div class="checkbox-container">
|
|
@@ -206,9 +208,8 @@
|
|
|
206
208
|
<div class="checkbox-item">
|
|
207
209
|
<input type="checkbox"
|
|
208
210
|
name="temas"
|
|
209
|
-
id="temas_{{ item.
|
|
211
|
+
id="temas_{{ item.id }}"
|
|
210
212
|
value="{{ item.nome }}"
|
|
211
|
-
{% if item.id|stringformat:"s" in request.GET.getlist.temas %}checked{% endif %}
|
|
212
213
|
>
|
|
213
214
|
<label for="temas_{{ item.id }}">{{ item.nome }}</label>
|
|
214
215
|
</div>
|
|
@@ -219,8 +220,11 @@
|
|
|
219
220
|
|
|
220
221
|
<div class="dropdown-filter">
|
|
221
222
|
<div class="dropdown-header" onclick="toggleDropdown('categoria')">
|
|
222
|
-
<span>Categoria</span>
|
|
223
|
-
<
|
|
223
|
+
<span id="categoria-nome-filtro">Categoria</span>
|
|
224
|
+
<div class="contador-e-seta">
|
|
225
|
+
<span id="categoria-count" class="filter-count"></span>
|
|
226
|
+
<i class="dropdown-arrow fa-solid fa-caret-down"></i>
|
|
227
|
+
</div>
|
|
224
228
|
</div>
|
|
225
229
|
<div class="dropdown-checkbox-area" id="categoria-dropdown">
|
|
226
230
|
<div class="checkbox-container">
|
|
@@ -230,7 +234,6 @@
|
|
|
230
234
|
name="categoria"
|
|
231
235
|
id="categoria_{{ item.id }}"
|
|
232
236
|
value="{{ item.nome }}"
|
|
233
|
-
{% if item.nome in request.GET.getlist.categoria %}checked{% endif %}
|
|
234
237
|
>
|
|
235
238
|
<label for="categoria_{{ item.id }}">{{ item.nome }}</label>
|
|
236
239
|
</div>
|
|
@@ -242,18 +245,20 @@
|
|
|
242
245
|
<!-- Competências convertido para checkbox -->
|
|
243
246
|
<div class="dropdown-filter">
|
|
244
247
|
<div class="dropdown-header" onclick="toggleDropdown('competencias')">
|
|
245
|
-
<span>Competências</span>
|
|
246
|
-
<
|
|
248
|
+
<span id="competencias-nome-filtro">Competências</span>
|
|
249
|
+
<div class="contador-e-seta">
|
|
250
|
+
<span id="competencias-count" class="filter-count"></span>
|
|
251
|
+
<i class="dropdown-arrow fa-solid fa-caret-down"></i>
|
|
252
|
+
</div>
|
|
247
253
|
</div>
|
|
248
254
|
<div class="dropdown-checkbox-area" id="competencias-dropdown">
|
|
249
255
|
<div class="checkbox-container">
|
|
250
256
|
{% for item in filtros.competencias %}
|
|
251
257
|
<div class="checkbox-item">
|
|
252
258
|
<input type="checkbox"
|
|
253
|
-
name="competencias"
|
|
254
|
-
id="competencias_{{ item.
|
|
259
|
+
name="competencias"
|
|
260
|
+
id="competencias_{{ item.id }}"
|
|
255
261
|
value="{{ item.descricao }}"
|
|
256
|
-
{% if item.id|stringformat:"s" in request.GET.getlist.competencias %}checked{% endif %}
|
|
257
262
|
>
|
|
258
263
|
<label for="competencias_{{ item.id }}">{{ item.descricao }}</label>
|
|
259
264
|
</div>
|
|
@@ -263,19 +268,20 @@
|
|
|
263
268
|
</div>
|
|
264
269
|
|
|
265
270
|
<!-- Botões de ação no final da sidebar -->
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
<
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
271
|
+
<div style="margin-top: 20px; padding: 0 20px; display: flex; flex-direction: column; gap: 10px;">
|
|
272
|
+
<!-- Botão Aplicar -->
|
|
273
|
+
<button type="submit" class="filtro-aplicar" onclick="submitForm()">
|
|
274
|
+
<span style="vertical-align: middle;" class="material-icons">filter_alt</span>
|
|
275
|
+
Aplicar Filtros
|
|
276
|
+
<span id="contador-filtros"></span>
|
|
277
|
+
</button>
|
|
278
|
+
|
|
279
|
+
<!-- Botão Limpar -->
|
|
280
|
+
<button type="button" class="filtro-limpar" id="limpar-filtros" onclick="limparFiltros()" style="display: none;">
|
|
281
|
+
<span class="material-icons">filter_alt_off</span>
|
|
282
|
+
Limpar Filtros
|
|
283
|
+
</button>
|
|
284
|
+
</div>
|
|
279
285
|
</div>
|
|
280
286
|
|
|
281
287
|
<!-- Cards -->
|
|
@@ -285,7 +291,7 @@
|
|
|
285
291
|
<div class="card-primary_busca">
|
|
286
292
|
<div class="img-card_busca">
|
|
287
293
|
<img class="img_busca"
|
|
288
|
-
src="{% if item.imagem %}{{ item.imagem }}{% else %}{%
|
|
294
|
+
src="{% if item.imagem %}{{ item.imagem }}{% else %}{% static 'enap_designsystem/blocks/suap/default_1.png' %}{% endif %}"
|
|
289
295
|
alt="{{ item.titulo }}"
|
|
290
296
|
>
|
|
291
297
|
</div>
|
|
@@ -439,51 +445,51 @@
|
|
|
439
445
|
|
|
440
446
|
<div class="srv-card-wrapper">
|
|
441
447
|
{% for item in results %}
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
</div>
|
|
456
|
-
<div class="srv-card-content">
|
|
457
|
-
<h3 class="srv-card-title">{{ item.titulo }}</h3>
|
|
458
|
-
<p class="srv-card-text">{{ item.introducao|default:item.descricao|striptags|truncatewords:40 }}</p>
|
|
459
|
-
<div class="srv-card-meta">
|
|
460
|
-
{% if item.data_publicacao %}
|
|
461
|
-
<div class="srv-card-date">
|
|
462
|
-
<svg class="srv-card-date-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"
|
|
463
|
-
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
|
|
464
|
-
stroke-linejoin="round">
|
|
465
|
-
<rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect>
|
|
466
|
-
<line x1="16" y1="2" x2="16" y2="6"></line>
|
|
467
|
-
<line x1="8" y1="2" x2="8" y2="6"></line>
|
|
468
|
-
<line x1="3" y1="10" x2="21" y2="10"></line>
|
|
469
|
-
</svg>
|
|
470
|
-
Publicado em: {{ item.data_publicacao|date:"d/m/Y" }}
|
|
448
|
+
<a class="link-card-search" href="{{ item.url }}" target="_blank" rel="noopener noreferrer">
|
|
449
|
+
<div class="srv-card-horizontal">
|
|
450
|
+
<div class="srv-card-image-container">
|
|
451
|
+
{% comment %}Verifica se existe featured_image na página{% endcomment %}
|
|
452
|
+
{% if item.imagem %}
|
|
453
|
+
<img class="srv-card-image" src="{{ item.imagem }}" alt="{{ item.titulo }}">
|
|
454
|
+
{% comment %}Usando apenas a primeira imagem encontrada{% endcomment %}
|
|
455
|
+
{% else %}
|
|
456
|
+
<!-- Imagem padrão da ENAP -->
|
|
457
|
+
<img class="srv-card-image default-search-image"
|
|
458
|
+
src="{% static 'enap_designsystem/blocks/suap/default_1.png' %}"
|
|
459
|
+
alt="ENAP - {{ item.titulo }}">
|
|
460
|
+
{% endif %}
|
|
471
461
|
</div>
|
|
472
|
-
|
|
462
|
+
<div class="srv-card-content">
|
|
463
|
+
<h3 class="srv-card-title">{{ item.titulo }}</h3>
|
|
464
|
+
<p class="srv-card-text">{{ item.introducao|default:item.descricao|striptags|truncatewords:40 }}</p>
|
|
465
|
+
<div class="srv-card-meta">
|
|
466
|
+
{% if item.data_publicacao %}
|
|
467
|
+
<div class="srv-card-date">
|
|
468
|
+
<svg class="srv-card-date-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"
|
|
469
|
+
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
|
|
470
|
+
stroke-linejoin="round">
|
|
471
|
+
<rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect>
|
|
472
|
+
<line x1="16" y1="2" x2="16" y2="6"></line>
|
|
473
|
+
<line x1="8" y1="2" x2="8" y2="6"></line>
|
|
474
|
+
<line x1="3" y1="10" x2="21" y2="10"></line>
|
|
475
|
+
</svg>
|
|
476
|
+
Publicado em: {{ item.data_publicacao|date:"d/m/Y" }}
|
|
477
|
+
</div>
|
|
478
|
+
{% endif %}
|
|
479
|
+
</div>
|
|
480
|
+
</div>
|
|
481
|
+
</div>
|
|
482
|
+
</a>
|
|
483
|
+
{% empty %}
|
|
484
|
+
<div class="no-results-message">
|
|
485
|
+
<div class="no-results-content">
|
|
486
|
+
<img src="{% static 'enap_designsystem/blocks/suap/default_1.png' %}"
|
|
487
|
+
alt="ENAP"
|
|
488
|
+
class="no-results-image">
|
|
489
|
+
<p>Nenhuma notícia encontrada.</p>
|
|
490
|
+
</div>
|
|
473
491
|
</div>
|
|
474
|
-
|
|
475
|
-
</div>
|
|
476
|
-
</a>
|
|
477
|
-
{% empty %}
|
|
478
|
-
<div class="no-results-message">
|
|
479
|
-
<div class="no-results-content">
|
|
480
|
-
<img src="{% static 'enap_designsystem/blocks/suap/default_1.png' %}"
|
|
481
|
-
alt="ENAP"
|
|
482
|
-
class="no-results-image">
|
|
483
|
-
<p>Nenhuma notícia encontrada.</p>
|
|
484
|
-
</div>
|
|
485
|
-
</div>
|
|
486
|
-
{% endfor %}
|
|
492
|
+
{% endfor %}
|
|
487
493
|
</div>
|
|
488
494
|
|
|
489
495
|
<div class="paginacao-wrapper">
|
|
@@ -775,9 +781,54 @@
|
|
|
775
781
|
</div>
|
|
776
782
|
</div>
|
|
777
783
|
{% endif %}
|
|
778
|
-
|
|
784
|
+
</div>
|
|
779
785
|
</section>
|
|
780
|
-
|
|
786
|
+
<style>
|
|
787
|
+
.cor-fundo-pesquisa{
|
|
788
|
+
background: linear-gradient(180deg, #ffffff 40px, #F5F7FA 40px);
|
|
789
|
+
}
|
|
790
|
+
|
|
791
|
+
.filter-count{
|
|
792
|
+
background: #025257;
|
|
793
|
+
color: white;
|
|
794
|
+
padding: 0px 6px 0px 6px;
|
|
795
|
+
border-radius: 100%;
|
|
796
|
+
font-weight: 400;
|
|
797
|
+
font-size: 12px;
|
|
798
|
+
}
|
|
799
|
+
|
|
800
|
+
|
|
801
|
+
.contador-e-seta{
|
|
802
|
+
display: flex;
|
|
803
|
+
gap: 8px;
|
|
804
|
+
align-items: center;
|
|
805
|
+
}
|
|
806
|
+
|
|
807
|
+
@media only screen and (max-width: 768px) {
|
|
808
|
+
.cor-fundo-pesquisa{
|
|
809
|
+
background: linear-gradient(180deg, #ffffff 0.7%, #F5F7FA 0%);
|
|
810
|
+
}
|
|
811
|
+
}
|
|
812
|
+
|
|
813
|
+
@media only screen and (min-width: 768px) {
|
|
814
|
+
/* .filtro-sidebar{
|
|
815
|
+
width: 268px;
|
|
816
|
+
margin-right: 20px;
|
|
817
|
+
opacity: 1;
|
|
818
|
+
height: auto;
|
|
819
|
+
padding: 30px 0;
|
|
820
|
+
}
|
|
821
|
+
.toggle-filtro-btn{
|
|
822
|
+
display: none;
|
|
823
|
+
}
|
|
824
|
+
.cards-grid-search {
|
|
825
|
+
grid-template-columns: repeat(3, 1fr);
|
|
826
|
+
} */
|
|
827
|
+
.filtro-aplicar{
|
|
828
|
+
display: none;
|
|
829
|
+
}
|
|
830
|
+
}
|
|
831
|
+
</style>
|
|
781
832
|
{% endblock %}
|
|
782
833
|
|
|
783
834
|
|
|
@@ -797,21 +848,20 @@
|
|
|
797
848
|
btn.classList.toggle('ativo');
|
|
798
849
|
}
|
|
799
850
|
|
|
800
|
-
|
|
801
851
|
function toggleDropdown(dropdownId) {
|
|
802
852
|
const dropdown = document.getElementById(dropdownId + '-dropdown');
|
|
803
853
|
const header = dropdown.previousElementSibling;
|
|
804
854
|
|
|
805
855
|
// Fechar outros dropdowns
|
|
806
|
-
const allDropdowns = document.querySelectorAll('.dropdown-checkbox-area');
|
|
856
|
+
const allDropdowns = document.querySelectorAll('.dropdown-checkbox-area');
|
|
807
857
|
const allHeaders = document.querySelectorAll('.dropdown-header');
|
|
808
858
|
|
|
809
|
-
allDropdowns.forEach((dd, index) => {
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
});
|
|
859
|
+
// allDropdowns.forEach((dd, index) => {
|
|
860
|
+
// if (dd !== dropdown) {
|
|
861
|
+
// dd.classList.remove('open');
|
|
862
|
+
// allHeaders[index].classList.remove('active');
|
|
863
|
+
// }
|
|
864
|
+
// });
|
|
815
865
|
|
|
816
866
|
// Toggle do dropdown atual
|
|
817
867
|
dropdown.classList.toggle('open');
|
|
@@ -819,25 +869,25 @@
|
|
|
819
869
|
}
|
|
820
870
|
|
|
821
871
|
// Fechar dropdown ao clicar fora
|
|
822
|
-
document.addEventListener('click', function(event) {
|
|
823
|
-
|
|
824
|
-
|
|
872
|
+
// document.addEventListener('click', function(event) {
|
|
873
|
+
// const dropdowns = document.querySelectorAll('.dropdown-filter');
|
|
874
|
+
// let clickedInside = false;
|
|
825
875
|
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
876
|
+
// dropdowns.forEach(dropdown => {
|
|
877
|
+
// if (dropdown.contains(event.target)) {
|
|
878
|
+
// clickedInside = true;
|
|
879
|
+
// }
|
|
880
|
+
// });
|
|
831
881
|
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
});
|
|
882
|
+
// if (!clickedInside) {
|
|
883
|
+
// document.querySelectorAll('.dropdown-checkbox-area').forEach(dd => {
|
|
884
|
+
// dd.classList.remove('open');
|
|
885
|
+
// });
|
|
886
|
+
// document.querySelectorAll('.dropdown-header').forEach(header => {
|
|
887
|
+
// header.classList.remove('active');
|
|
888
|
+
// });
|
|
889
|
+
// }
|
|
890
|
+
// });
|
|
841
891
|
|
|
842
892
|
|
|
843
893
|
function updateFilterCounter() {
|
|
@@ -845,24 +895,64 @@
|
|
|
845
895
|
const counter = document.getElementById('contador-filtros');
|
|
846
896
|
const limparBtn = document.getElementById('limpar-filtros');
|
|
847
897
|
const aplicarBtn = document.querySelector('.filtro-aplicar');
|
|
848
|
-
|
|
898
|
+
|
|
849
899
|
const count = checkboxes.length;
|
|
850
|
-
|
|
900
|
+
|
|
901
|
+
// Atualizar contador global
|
|
851
902
|
if (counter) {
|
|
852
903
|
counter.textContent = count > 0 ? `(${count})` : '';
|
|
853
904
|
}
|
|
854
|
-
|
|
905
|
+
|
|
855
906
|
// Mostrar/ocultar botão limpar
|
|
856
907
|
if (limparBtn) {
|
|
857
908
|
limparBtn.style.display = count > 0 ? 'flex' : 'none';
|
|
858
909
|
}
|
|
859
|
-
|
|
910
|
+
|
|
860
911
|
// Mudar cor do botão aplicar
|
|
861
|
-
if (aplicarBtn
|
|
862
|
-
aplicarBtn.style.backgroundColor = '#025257';
|
|
863
|
-
} else if (aplicarBtn) {
|
|
864
|
-
aplicarBtn.style.backgroundColor = '#007D7A';
|
|
912
|
+
if (aplicarBtn) {
|
|
913
|
+
aplicarBtn.style.backgroundColor = count > 0 ? '#025257' : '#007D7A';
|
|
865
914
|
}
|
|
915
|
+
|
|
916
|
+
// 🔁 Contar por grupo (ex: modalidade, categoria, etc.)
|
|
917
|
+
const filterGroups = ['modalidade', 'inscricoes', 'temas', 'categoria', 'competencias']; // Adicione aqui os nomes dos seus filtros
|
|
918
|
+
|
|
919
|
+
filterGroups.forEach(group => {
|
|
920
|
+
const groupCheckboxes = document.querySelectorAll(`#filtroForm input[name="${group}"]:checked`);
|
|
921
|
+
const groupCount = groupCheckboxes.length;
|
|
922
|
+
const groupCountElement = document.getElementById(`${group}-count`);
|
|
923
|
+
const filterNameElement = document.getElementById(`${group}-nome-filtro`);
|
|
924
|
+
|
|
925
|
+
if (groupCountElement) {
|
|
926
|
+
groupCountElement.textContent = groupCount > 0 ? `${groupCount}` : '';
|
|
927
|
+
}
|
|
928
|
+
|
|
929
|
+
if (filterNameElement) {
|
|
930
|
+
if (groupCount > 0) {
|
|
931
|
+
filterNameElement.style.fontWeight = '700';
|
|
932
|
+
} else {
|
|
933
|
+
filterNameElement.style.fontWeight = '500';
|
|
934
|
+
}
|
|
935
|
+
}
|
|
936
|
+
});
|
|
937
|
+
}
|
|
938
|
+
|
|
939
|
+
function keepFilterCheck() {
|
|
940
|
+
const filterGroups = ['modalidade', 'inscricoes', 'temas', 'categoria', 'competencias'];
|
|
941
|
+
|
|
942
|
+
filterGroups.forEach(group => {
|
|
943
|
+
const allGroupCheckboxes = document.querySelectorAll(`#filtroForm input[name="${group}"]`);
|
|
944
|
+
const urlParams = new URLSearchParams(window.location.search);
|
|
945
|
+
const paramValue = urlParams.getAll(`${group}`);
|
|
946
|
+
|
|
947
|
+
allGroupCheckboxes.forEach(checkbox => {
|
|
948
|
+
if (paramValue.includes(checkbox.value)) {
|
|
949
|
+
checkbox.checked = true;
|
|
950
|
+
}
|
|
951
|
+
});
|
|
952
|
+
|
|
953
|
+
});
|
|
954
|
+
|
|
955
|
+
|
|
866
956
|
}
|
|
867
957
|
|
|
868
958
|
function limparFiltros() {
|
|
@@ -880,10 +970,26 @@
|
|
|
880
970
|
|
|
881
971
|
// Inicializar
|
|
882
972
|
document.addEventListener('DOMContentLoaded', function() {
|
|
883
|
-
document.querySelectorAll('#filtroForm input[type="checkbox"]')
|
|
973
|
+
const checkboxes = document.querySelectorAll('#filtroForm input[type="checkbox"]');
|
|
974
|
+
|
|
975
|
+
keepFilterCheck();
|
|
976
|
+
|
|
977
|
+
checkboxes.forEach(checkbox => {
|
|
884
978
|
checkbox.addEventListener('change', updateFilterCounter);
|
|
885
979
|
});
|
|
980
|
+
|
|
886
981
|
updateFilterCounter();
|
|
982
|
+
|
|
983
|
+
if (window.innerWidth > 768) { // Detecta se é desktop (pode ajustar o valor conforme a sua necessidade)
|
|
984
|
+
checkboxes.forEach(checkbox => {
|
|
985
|
+
checkbox.addEventListener('change', function() {
|
|
986
|
+
|
|
987
|
+
timeoutSubmit = setTimeout(function() {
|
|
988
|
+
submitForm();
|
|
989
|
+
}, 1500);
|
|
990
|
+
});
|
|
991
|
+
});
|
|
992
|
+
}
|
|
887
993
|
});
|
|
888
994
|
</script>
|
|
889
995
|
{% endblock %}
|