wagtail-enap-designsystem 1.2.1.137__py3-none-any.whl → 1.2.1.138__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.
@@ -132,6 +132,7 @@ from .html_blocks import SuapEventsBlock
132
132
  from .html_blocks import EventsCarouselBlock
133
133
  from .html_blocks import DropdownBlock
134
134
  from .html_blocks import ClientesBlock
135
+ from .html_blocks import VideoHeroBannerBlock
135
136
 
136
137
 
137
138
  from .html_blocks import ButtonBlock, ImageBlock, RichTextBlock, QuoteBlock
@@ -205,6 +206,7 @@ class BannerStreamBlock(StreamBlock):
205
206
  banner_image_cta = Banner_Image_cta(label="🖼️ Banner Imagem + CTA")
206
207
  hero = HeroBlockv3(label="⭐ Hero Moderno")
207
208
  hero_animada = HeroAnimadaBlock(label="🎬 Hero Animado")
209
+ video_hero_banner = VideoHeroBannerBlock(label="Banner com video")
208
210
 
209
211
  class Meta:
210
212
  label = "🎨 Banners e Heroes"
@@ -53,7 +53,7 @@ BRAND_COLOR_CHOICES = [
53
53
  ('#007D7A', 'Verde Link ENAP (#007D7A)'),
54
54
  ('#AD6BFC', 'Roxo Gnova (#AD6BFC)'),
55
55
  ('#B396FC', 'Roxo Claro Gnova (#B396FC)'),
56
- ('#FFFFFF', 'Branco (#FFFFFF)'),
56
+ ('#2F134F', 'Roxo Escuro LIIA (#2F134F)'),
57
57
  ]
58
58
 
59
59
  ENAP_GREEN_COLORS = [
@@ -69,6 +69,7 @@ ENAP_GREEN_COLORS = [
69
69
  ('#FFFFFF', 'Branco (#FFFFFF)'),
70
70
  ('#F8F9FA', 'Cinza Claro (#F8F9FA)'),
71
71
  ('#E9ECEF', 'Cinza Médio (#E9ECEF)'),
72
+ ('#525258', 'Cinza Escuro (#525258)'),
72
73
  ]
73
74
 
74
75
  BACKGROUND_COLOR_CHOICES = [
@@ -7912,19 +7913,12 @@ class NumerosBlock(blocks.StructBlock):
7912
7913
  default='#FFFFFF',
7913
7914
  help_text="Cor de fundo do quadrado de conteúdo"
7914
7915
  )
7915
-
7916
- # Grid de cards
7917
- tipo_grid_numeros = blocks.ChoiceBlock(
7918
- choices=[
7919
- ('numeros-grid-1', '1 card por linha'),
7920
- ('numeros-grid-2', 'Até 2 cards por linha'),
7921
- ('numeros-grid-3', 'Até 3 cards por linha'),
7922
- ('numeros-grid-4', 'Até 4 cards por linha'),
7923
- ('numeros-grid-5', 'Até 5 cards por linha'),
7924
- ],
7925
- default='numeros-grid-4',
7926
- help_text="Quantos cards por linha no desktop",
7927
- label="Layout do grid de números"
7916
+
7917
+ cor_line = blocks.ChoiceBlock(
7918
+ choices=BACKGROUND_COLOR_CHOICES,
7919
+ default='#FFF0D9',
7920
+ help_text="Cor do da linha debaixo",
7921
+ required=False
7928
7922
  )
7929
7923
 
7930
7924
  # Lista de cards de números
@@ -7966,4 +7960,34 @@ class NumerosBlock(blocks.StructBlock):
7966
7960
  template = 'enap_designsystem/blocks/numeros_block.html'
7967
7961
  icon = 'snippet'
7968
7962
  label = 'Grid de Números/Estatísticas'
7969
- help_text = 'Componente para exibir números e estatísticas importantes'
7963
+ help_text = 'Componente para exibir números e estatísticas importantes'
7964
+
7965
+ class VideoHeroBannerBlock(blocks.StructBlock):
7966
+
7967
+ background_image = ImageChooserBlock(required=False, help_text="Imagem de fundo para o banner.")
7968
+
7969
+ cor_fundo = blocks.ChoiceBlock(
7970
+ choices=BACKGROUND_COLOR_CHOICES,
7971
+ required=False,
7972
+ default='#F8F9FA', # Cinza claro ENAP
7973
+ help_text="Cor de fundo do componente"
7974
+ )
7975
+
7976
+ altura_banner = blocks.CharBlock(required=False, help_text="Altura do banner (ex: 600px, 80vh).")
7977
+
7978
+ video_file = DocumentChooserBlock(
7979
+ label="Arquivo de vídeo",
7980
+ required=False,
7981
+ help_text="Upload direto do arquivo de vídeo (MP4, WebM, etc.)"
7982
+ )
7983
+
7984
+ titulo = blocks.CharBlock(required=False, help_text="Título principal.")
7985
+
7986
+ subtitulo = blocks.RichTextBlock(required=False, help_text="Subtítulo com suporte a formatação.")
7987
+
7988
+ logo = ImageChooserBlock(required=False, help_text="Logo sobre o banner.")
7989
+
7990
+ class Meta:
7991
+ template = "enap_designsystem/blocks/video_hero_banner.html"
7992
+ icon = "media"
7993
+ label = "Video Hero Banner"
@@ -70,6 +70,10 @@ BRAND_TEXTS_CHOICES = [
70
70
  # Cores para backgrounds - removendo duplicatas
71
71
  BRAND_BG_CHOICES = [
72
72
  ('#FFFFFF', 'Branco (#FFFFFF)'),
73
+ ('transparent', 'Transparente'),
74
+ ('rgba(0,0,0,0)', 'Transparente (rgba)'),
75
+ ('rgba(255,255,255,0.5)', 'Branco Semi-transparente'),
76
+ ('rgba(0,0,0,0.5)', 'Preto Semi-transparente'),
73
77
  ('#F8F9FA', 'Cinza Claro (#F8F9FA)'),
74
78
  ('#000000', 'Preto (#000000)'),
75
79
  ('enap-green', 'Verde ENAP'),
@@ -16,8 +16,7 @@
16
16
  <!-- Quadrado de conteúdo -->
17
17
  <div class="apresentacao-conteudo-box rounded-lg mb-8 shadow-lg text-left"
18
18
  style="background-color: {{ value.cor_quadrado }};">
19
- <div class="apresentacao-texto leading-relaxed"
20
- style="color: {{ value.cor_titulo }};">
19
+ <div class="apresentacao-texto leading-relaxed">
21
20
  {{ value.conteudo|richtext }}
22
21
  </div>
23
22
  </div>
@@ -13,7 +13,7 @@
13
13
  <div class="secao-overlay">
14
14
 
15
15
  <!-- Container principal -->
16
- <div class="container mx-auto px-4 py-16 lg:py-24">
16
+ <div class="container titulo-cards mx-auto px-4 py-16 lg:py-24">
17
17
 
18
18
  <!-- Título centralizado -->
19
19
  {% if value.titulo %}
@@ -98,13 +98,13 @@
98
98
  <style>
99
99
  .secao-apresentacao-cards {
100
100
  position: relative;
101
- min-height: 600px;
101
+ min-height: 500px;
102
102
  }
103
103
 
104
104
  .secao-background {
105
105
  position: relative;
106
106
  width: 100%;
107
- min-height: 600px;
107
+ min-height: 500px;
108
108
  }
109
109
 
110
110
  .secao-overlay {
@@ -115,15 +115,36 @@
115
115
  bottom: 0;
116
116
  background: rgba(106, 27, 154, 0.15);
117
117
  backdrop-filter: blur(0.5px);
118
+ display: flex;
119
+ }
120
+
121
+ .card-item {
122
+ width: 300px;
123
+ flex: 0 0 268px;
124
+ display: flex;
125
+ flex-direction: column;
126
+ align-items: center;
127
+ justify-content: center;
128
+ text-align: center;
129
+ height: 230px;
130
+ background-color: rgba(106, 27, 154, 0.15);
131
+ box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0.16);
132
+ color: #1351b4;
133
+ font-weight: 500;
134
+ padding: 0px;
135
+ text-decoration: none;
136
+ border-radius: 20px;
118
137
  }
119
138
 
120
139
  .titulo-secao {
121
- font-size: 2.5rem;
122
- font-weight: 700;
123
140
  line-height: 1.2;
124
141
  text-align: center;
125
142
  margin-bottom: 0;
126
143
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
144
+ font-weight: 500;
145
+ font-style: Medium;
146
+ font-size: 48px;
147
+ letter-spacing: 0px;
127
148
  }
128
149
 
129
150
  .cards-container {
@@ -197,6 +218,7 @@
197
218
  flex: 1;
198
219
  display: flex;
199
220
  flex-direction: column;
221
+ align-items: flex-start;
200
222
  }
201
223
 
202
224
  .card-titulo {
@@ -205,6 +227,7 @@
205
227
  margin-bottom: 0.5rem;
206
228
  line-height: 1.4;
207
229
  color: #FFFFFF;
230
+ text-align: left;
208
231
  }
209
232
 
210
233
  .card-subtitulo {
@@ -305,5 +328,12 @@
305
328
  font-size: 1rem;
306
329
  }
307
330
  }
331
+
332
+ .titulo-cards{
333
+ display: flex;
334
+ flex-direction: column;
335
+ justify-content: center;
336
+ gap: 48px;
337
+ }
308
338
  </style></document_content>
309
339
  </invoke>
@@ -117,6 +117,13 @@
117
117
  align-items: center;
118
118
  }
119
119
 
120
+ .image-curso {
121
+ width: 100%;
122
+ border-radius: 12px;
123
+ overflow: hidden;
124
+ height: auto;
125
+ }
126
+
120
127
  .space-10px{
121
128
  display: flex;
122
129
  flex-direction: column;
@@ -21,7 +21,7 @@
21
21
  {% for logo_card in value.lista_logos %}
22
22
  <div class="logo-card {% if value.centralizar_logos %}text-center{% endif %}">
23
23
  <div class="logo-image-container">
24
- {% image logo_card.logo fill-200x200 class="logo-image" alt="Logo" %}
24
+ {% image logo_card.logo original class="logo-image" alt="Logo" %}
25
25
  </div>
26
26
  </div>
27
27
  {% endfor %}
@@ -1,195 +1,74 @@
1
- <!-- Template: enap_designsystem/blocks/apresentacao_simple_block.html -->
1
+ {% load wagtailcore_tags %}
2
2
 
3
- <section class="apresentacao-simple-block" style="background-color: {{ value.cor_fundo }};">
3
+ <div class="estatisticas-section" style="background-color: {{ value.cor_fundo_conteudo }}; border-bottom: 16px solid {{ value.cor_line }}; padding: 60px 0; width: 100%;">
4
4
  <div class="container">
5
- <div class="row">
6
- <!-- Coluna do título -->
7
- <div class="col-12 col-lg-4 mb-4 mb-lg-0">
8
- <h2 class="apresentacao-titulo" style="color: {{ value.cor_titulo }};">
9
- {{ value.titulo }}
10
- </h2>
11
- </div>
12
-
13
- <!-- Coluna do conteúdo -->
14
- <div class="col-12 col-lg-8">
15
- <div class="apresentacao-conteudo" style="background-color: {{ value.cor_fundo_conteudo }};">
16
- <div class="texto-descritivo" style="color: {{ value.cor_texto_descritivo }};">
17
- {{ value.texto_descritivo|richtext }}
5
+ <h2 class="secao-cabecalho text-center font-bold mb-8"
6
+ style="color: {{ value.cor_titulo }};">
7
+ {{ value.titulo }}
8
+ </h2>
9
+
10
+ <div class="estatisticas-container {{ value.tipo_grid_numeros|default:'numeros-grid-4' }}">
11
+ {% for lista_numeros in value.lista_numeros %}
12
+ <div class="estatistica-item text-center" style="flex: 1; min-width: 150px; margin: 8px; background-color:{{ lista_numeros.cor_card }};">
13
+ <div class="numero" style="color: {{ lista_numeros.cor_numero }}; font-size: 40px; font-weight: 500; line-height: 1.2;">
14
+ {{ lista_numeros.numero }}
18
15
  </div>
19
-
20
- <!-- Grid de logos -->
21
- <div class="logos-container {{ value.espacamento_logos }}">
22
- <div class="logos-grid {{ value.tipo_grid_logos }} {{ value.tamanho_logos }}">
23
- {% for logo_card in value.lista_logos %}
24
- <div class="logo-card {% if value.centralizar_logos %}text-center{% endif %}">
25
- {% if logo_card.link %}
26
- <a href="{{ logo_card.link }}"
27
- class="logo-link"
28
- {% if logo_card.link_externo %}target="_blank" rel="noopener noreferrer"{% endif %}>
29
- {% endif %}
30
-
31
- <div class="logo-image-container">
32
- {% image logo_card.logo fill-200x200 class="logo-image" alt=logo_card.titulo|default:"Logo" %}
33
- </div>
34
-
35
- {% if value.mostrar_titulos_logos and logo_card.titulo %}
36
- <div class="logo-titulo">
37
- {{ logo_card.titulo }}
38
- </div>
39
- {% endif %}
40
-
41
- {% if logo_card.link %}
42
- </a>
43
- {% endif %}
44
- </div>
45
- {% endfor %}
46
- </div>
16
+ <div class="descricao" style="color: {{ lista_numeros.cor_descricao }}; font-size: 16px; font-weight: 600; margin-top: 30px;">
17
+ {{ lista_numeros.descricao }}
47
18
  </div>
48
19
  </div>
49
- </div>
20
+ {% endfor %}
50
21
  </div>
51
22
  </div>
52
- </section>
23
+ </div>
53
24
 
25
+ <!-- Adicionar estilos específicos para responsividade -->
54
26
  <style>
55
- /* Estilos do componente ApresentacaoSimpleBlock */
56
- .apresentacao-simple-block {
57
- padding: 60px 0;
58
- min-height: 400px;
59
- }
60
-
61
- .apresentacao-titulo {
62
- font-size: 2.5rem;
63
- font-weight: 700;
64
- margin-bottom: 0;
65
- line-height: 1.2;
66
- }
67
-
68
- .apresentacao-conteudo {
69
- padding: 40px;
70
- border-radius: 8px;
71
- min-height: 300px;
72
- display: flex;
73
- flex-direction: column;
74
- }
75
-
76
- .texto-descritivo {
77
- margin-bottom: 40px;
78
- line-height: 1.6;
79
- }
80
-
81
- .texto-descritivo h3,
82
- .texto-descritivo h4 {
83
- margin-top: 0;
84
- }
85
-
86
- /* Grid de logos */
87
- .logos-container {
88
- margin-top: auto;
89
- }
90
-
91
- .logos-grid {
92
- display: grid;
93
- gap: 20px;
94
- align-items: center;
95
- }
96
-
97
- /* Layouts do grid */
98
- .logos-grid-1 { grid-template-columns: 1fr; }
99
- .logos-grid-2 { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
100
- .logos-grid-3 { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
101
- .logos-grid-4 { grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); }
102
- .logos-grid-5 { grid-template-columns: repeat(auto-fit, minmax(100px, 1fr)); }
103
- .logos-grid-6 { grid-template-columns: repeat(auto-fit, minmax(80px, 1fr)); }
104
-
105
- /* Espaçamentos */
106
- .spacing-sm .logos-grid { gap: 15px; }
107
- .spacing-md .logos-grid { gap: 20px; }
108
- .spacing-lg .logos-grid { gap: 30px; }
109
-
110
- /* Tamanhos das logos */
111
- .logo-sm .logo-image { max-height: 60px; }
112
- .logo-md .logo-image { max-height: 80px; }
113
- .logo-lg .logo-image { max-height: 120px; }
114
-
115
- /* Estilo do card de logo */
116
- .logo-card {
117
- padding: 15px;
118
- border-radius: 4px;
119
- transition: transform 0.2s ease, opacity 0.2s ease;
120
- }
121
-
122
- .logo-link {
123
- text-decoration: none;
124
- color: inherit;
125
- display: block;
126
- }
127
-
128
- .logo-link:hover .logo-card {
129
- transform: translateY(-2px);
130
- }
131
-
132
- .logo-link:hover .logo-image {
133
- opacity: 0.8;
134
- }
135
-
136
- .logo-image-container {
137
- display: flex;
138
- align-items: center;
139
- justify-content: center;
140
- height: 100%;
141
- min-height: 60px;
142
- }
143
-
144
- .logo-image {
145
- max-width: 100%;
146
- height: auto;
147
- object-fit: contain;
148
- transition: opacity 0.2s ease;
149
- }
150
-
151
- .logo-titulo {
152
- margin-top: 10px;
153
- font-size: 0.875rem;
154
- font-weight: 500;
155
- color: inherit;
156
- }
157
-
158
- /* Responsividade */
159
- @media (max-width: 768px) {
160
- .apresentacao-simple-block {
161
- padding: 40px 0;
27
+ .estatisticas-container {
28
+ display: flex;
29
+ flex-direction: row;
30
+ align-items: stretch;
31
+ margin-top: 70px;
162
32
  }
163
-
164
- .apresentacao-titulo {
165
- font-size: 2rem;
166
- margin-bottom: 30px;
167
- }
168
-
169
- .apresentacao-conteudo {
170
- padding: 30px;
33
+
34
+ @media (max-width: 768px) {
35
+ .estatisticas-container {
36
+ display: flex;
37
+ flex-direction: column;
38
+ align-items: center;
39
+ }
40
+
41
+ .estatistica-item {
42
+ margin: 30px 0;
43
+ }
44
+
45
+ .estatistica-divisor {
46
+ display: none !important;
47
+ }
48
+
49
+ .numero {
50
+ font-size: 3.5rem !important;
51
+ }
52
+
53
+ .descricao {
54
+ font-size: 1.25rem !important;
55
+ }
171
56
  }
172
57
 
173
- .logos-grid-2,
174
- .logos-grid-3,
175
- .logos-grid-4,
176
- .logos-grid-5,
177
- .logos-grid-6 {
178
- grid-template-columns: repeat(2, 1fr);
179
- }
180
- }
181
-
182
- @media (max-width: 480px) {
183
- .logos-grid-2,
184
- .logos-grid-3,
185
- .logos-grid-4,
186
- .logos-grid-5,
187
- .logos-grid-6 {
188
- grid-template-columns: 1fr;
58
+ @media (min-width: 769px) and (max-width: 992px) {
59
+ .estatistica-item {
60
+ min-width: 200px;
61
+ margin: 15px;
62
+ }
63
+
64
+ .numero {
65
+ font-size: 3rem !important;
66
+ }
189
67
  }
190
68
 
191
- .logos-conteudo {
192
- padding: 20px;
69
+ .estatistica-item {
70
+ position: relative;
71
+ border-radius: 16px;
72
+ padding: 56px 32px;
193
73
  }
194
- }
195
74
  </style>
@@ -1,7 +1,17 @@
1
1
  <!-- templates/components/video_hero_banner.html -->
2
2
  {% load wagtailcore_tags %}
3
+ {% load wagtailimages_tags %}
3
4
  <section class="video-hero-banner"
4
- style="background-image: url('{{ value.background_image.get_rendition.url }}'); height: {{ value.altura_banner }};">
5
+ style="
6
+ {% if value.background_image %}
7
+ {% image value.background_image original as background_img %}
8
+ background: url('{{ background_img.url }}');
9
+ background-size: cover;
10
+ {% else %}
11
+ background: {{ value.cor_fundo }};
12
+ {% endif %}
13
+ height: {{ value.altura_banner }};"
14
+ >
5
15
 
6
16
  <!-- Overlay para melhor legibilidade do texto -->
7
17
  <div class="video-hero-overlay"></div>
@@ -11,10 +21,7 @@
11
21
  {% if value.video_file %}
12
22
  <div class="video-hero-media">
13
23
  <div class="video-frame">
14
- <video class="video-player"
15
- autoplay
16
- muted
17
- controls>
24
+ <video class="video-player" autoplay muted loop>
18
25
  <source src="{{ value.video_file.url }}" type="video/mp4">
19
26
  <p>Seu navegador não suporta o elemento de vídeo.</p>
20
27
  </video>
@@ -37,9 +44,11 @@
37
44
 
38
45
  <!-- Logo -->
39
46
  {% if value.logo %}
40
- <div class="video-hero-logo">
41
- <img src="{{ value.logo.get_rendition.url }}"
42
- alt="Logo" class="logo-image">
47
+ <div class="card-imagem">
48
+ {% image value.logo width-400 as logo_img %}
49
+ <img src="{{ logo_img.url }}"
50
+ alt="Logos"
51
+ class="logo-image">
43
52
  </div>
44
53
  {% endif %}
45
54
 
@@ -146,7 +155,7 @@
146
155
  right: 0;
147
156
  bottom: 0;
148
157
  display: flex;
149
- align-items: flex-start;
158
+ align-items: flex-end;
150
159
  padding: 2rem;
151
160
  background: linear-gradient(
152
161
  45deg,
@@ -180,6 +189,11 @@
180
189
  min-height: 400px;
181
190
  }
182
191
 
192
+ .video-hero-title{
193
+ font-weight: 400;
194
+ margin: 0px;
195
+ }
196
+
183
197
  /* Responsividade */
184
198
  @media (max-width: 1024px) {
185
199
  .video-hero-title {
@@ -71,6 +71,24 @@
71
71
  --votacao-shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
72
72
  }
73
73
 
74
+ .sistema-btn-finalizar-modal {
75
+ flex: 1;
76
+ background: #007D7A;
77
+ color: white;
78
+ border: none;
79
+ padding: 1rem 1.5rem;
80
+ border-radius: 50px;
81
+ font-weight: 600;
82
+ cursor: pointer;
83
+ transition: all 0.3s ease;
84
+ font-size: 1rem;
85
+ }
86
+
87
+ .sistema-btn-finalizar-modal:hover {
88
+ background: #006969;
89
+ transform: translateY(-1px);
90
+ }
91
+
74
92
  .sistema-votacao-wrapper {
75
93
  background: #F5F7FA;
76
94
  color: var(--votacao-text-primary);
@@ -500,9 +518,9 @@
500
518
  .sistema-btn-finalizar {
501
519
  bottom: 2rem;
502
520
  right: 2rem;
503
- background: #007D7A;
504
- color: white;
505
- border: 1px solid var(--votacao-border-medium);
521
+ background: white;
522
+ color: #007D7A;
523
+ border: 1px solid #007D7A;
506
524
  padding: 0.875rem 1.25rem;
507
525
  border-radius: 50px;
508
526
  font-weight: 500;
@@ -1220,7 +1238,7 @@
1220
1238
  Votar na próxima categoria
1221
1239
  <i class="fas fa-arrow-right"></i>
1222
1240
  </button>
1223
- <button class="sistema-btn-finalizar" onclick="SistemaVotacao.finalizarVotacao()">
1241
+ <button class="sistema-btn-finalizar sistema-btn-finalizar-modal" onclick="SistemaVotacao.finalizarVotacao()">
1224
1242
  <i class="fas fa-check-circle"></i>
1225
1243
  <span>Finalizar Votação</span>
1226
1244
  </button>
@@ -1553,21 +1571,61 @@
1553
1571
  },
1554
1572
 
1555
1573
  // Mostrar modal pós-voto
1556
- mostrarModalPosVoto(categoriaAtualId) {
1557
- const indiceAtual = this.categoriasOrdem.findIndex(cat => cat.id === parseInt(categoriaAtualId));
1558
- const proximoIndice = indiceAtual + 1;
1559
-
1560
- if (proximoIndice < this.categoriasOrdem.length) {
1561
- this.proximaCategoriaData = this.categoriasOrdem[proximoIndice];
1562
- this.gerarPreviewProximaCategoria(this.proximaCategoriaData.id);
1563
-
1564
- if (this.elementos.modalPosVoto) {
1565
- this.elementos.modalPosVoto.classList.add('show');
1566
- }
1567
- } else {
1568
- this.mostrarModalConclusao();
1574
+ // Substitua a função mostrarModalPosVoto() existente por esta versão corrigida:
1575
+
1576
+ // Mostrar modal pós-voto
1577
+ mostrarModalPosVoto(categoriaAtualId) {
1578
+ const indiceAtual = this.categoriasOrdem.findIndex(cat => cat.id === parseInt(categoriaAtualId));
1579
+ const proximoIndice = indiceAtual + 1;
1580
+ const temProximaCategoria = proximoIndice < this.categoriasOrdem.length;
1581
+
1582
+ if (temProximaCategoria) {
1583
+ this.proximaCategoriaData = this.categoriasOrdem[proximoIndice];
1584
+ this.gerarPreviewProximaCategoria(this.proximaCategoriaData.id);
1585
+ } else {
1586
+ this.proximaCategoriaData = null;
1587
+ }
1588
+
1589
+ // Atualizar a visibilidade dos botões baseado se tem próxima categoria
1590
+ this.atualizarBotoesModal(temProximaCategoria);
1591
+
1592
+ if (this.elementos.modalPosVoto) {
1593
+ this.elementos.modalPosVoto.classList.add('show');
1594
+ }
1595
+ },
1596
+
1597
+ // Nova função para atualizar os botões do modal
1598
+ atualizarBotoesModal(temProximaCategoria) {
1599
+ const botaoContinuar = document.querySelector('.sistema-btn-continuar');
1600
+ const botaoFinalizar = document.querySelector('.sistema-modal-actions .sistema-btn-finalizar');
1601
+
1602
+ if (temProximaCategoria) {
1603
+ // Ainda há categorias - mostrar ambos os botões
1604
+ if (botaoContinuar) {
1605
+ botaoContinuar.style.display = 'block';
1606
+ botaoContinuar.innerHTML = `
1607
+ Votar na próxima categoria
1608
+ <i class="fas fa-arrow-right"></i>
1609
+ `;
1569
1610
  }
1570
- },
1611
+ if (botaoFinalizar) {
1612
+ botaoFinalizar.style.display = 'block';
1613
+ }
1614
+ } else {
1615
+ // Última categoria - esconder botão continuar, destacar finalizar
1616
+ if (botaoContinuar) {
1617
+ botaoContinuar.style.display = 'none';
1618
+ }
1619
+ if (botaoFinalizar) {
1620
+ botaoFinalizar.style.display = 'block';
1621
+ botaoFinalizar.style.width = '100%';
1622
+ botaoFinalizar.innerHTML = `
1623
+ <i class="fas fa-trophy"></i>
1624
+ <span>Finalizar Votação</span>
1625
+ `;
1626
+ }
1627
+ }
1628
+ },
1571
1629
 
1572
1630
  // Gerar preview da próxima categoria
1573
1631
  gerarPreviewProximaCategoria(proximaCategoriaId) {
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: wagtail-enap-designsystem
3
- Version: 1.2.1.137
3
+ Version: 1.2.1.138
4
4
  Summary: Módulo de componentes utilizado nos portais ENAP, desenvolvido com Wagtail + CodeRedCMS
5
5
  Author: Renan Campos
6
6
  Author-email: renan.oliveira@enap.gov.br
@@ -7,14 +7,14 @@ enap_designsystem/signals.py,sha256=oaHpZms4Dkc97ql-55Q0QxU7-45jwg2Y1XoRDOJ45tc,
7
7
  enap_designsystem/urls.py,sha256=EJ52w-55BysQU5pTZR4ltMtZM7aSKyjZdnQDGFipDXY,2219
8
8
  enap_designsystem/views.py,sha256=Au46gj48cauBIH8zZeYPPycVzoz6GH022zDJp-CFy_c,78332
9
9
  enap_designsystem/wagtail_hooks.py,sha256=6pVUEw28-F5s5ECxK5lIF0GgsPvoz47_jyfbcoDvISk,71677
10
- enap_designsystem/blocks/__init__.py,sha256=6JW1ybuSfTucg-xZnomIcuVJIIo_1wGWgsaBZ-7yF1U,38617
10
+ enap_designsystem/blocks/__init__.py,sha256=uqscsM_LrnSs_WEJqzwAThHQb4SSp2ncm__YGbOYRHk,38734
11
11
  enap_designsystem/blocks/base_blocks.py,sha256=ZuqVWn4PEAvD3pKM1ST7wjo4lwv98ooen_rs15rRJbg,10866
12
12
  enap_designsystem/blocks/chatbot_blocks.py,sha256=YeCznrXMbFa9MP9vjdTYl53ZhKsywkGOXvFK2bwcqW0,1133
13
13
  enap_designsystem/blocks/content_blocks.py,sha256=4oWDtY0zmvC6k7v_WduCTAyGapJuQTsfJ9ij_vJZXxY,16549
14
14
  enap_designsystem/blocks/form.py,sha256=PmbeQQ76IlaGdz-jngepy4ubC9sSaHKwDmPqoaHltWw,85744
15
- enap_designsystem/blocks/html_blocks.py,sha256=yFx6QkivBuGadBPPKFDWRZegDY_xHs38mK8_jNxEi3s,244509
15
+ enap_designsystem/blocks/html_blocks.py,sha256=5LE5TFRuQvEf2xcl60D0WJeVq8fnuLT0F2hMWzMDUTI,245293
16
16
  enap_designsystem/blocks/layout_blocks.py,sha256=WyVt3nwYxA4Eqr6-MqQY7W-xtjh07ZhstM8aiQaHmLw,23388
17
- enap_designsystem/blocks/semana_blocks.py,sha256=tJ8bFvW6lTSnLp2Wf1CARNSM4UoGl95lvYmxik5g0GA,70251
17
+ enap_designsystem/blocks/semana_blocks.py,sha256=j5JDdC1eKb91gU7y-hLvcx5feI1OvcbVh3Imbs5R6jM,70445
18
18
  enap_designsystem/blocks/semana_inovacao.py,sha256=ZKjXzvs_RbLzv3nxsnmVxcAWORlpFIr9C7_aMb8rZRs,47037
19
19
  enap_designsystem/middleware/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
20
20
  enap_designsystem/middleware/aluno_sso.py,sha256=baitPngI34eKwHKaku-5JIbDAnXpEHPvRFTs9AY1K6o,542
@@ -617,11 +617,11 @@ enap_designsystem/templates/admin/exportar_respostas.html,sha256=jF7hGJ6LkbKo536
617
617
  enap_designsystem/templates/admin/meta_tags_manager.html,sha256=jXNvT9etPN88TNT8Ou8ko-AHComioM9p8iU1lpW5m3k,11826
618
618
  enap_designsystem/templates/enap_designsystem/accordion_v2.html,sha256=SE-72OoHu-WucITL-CPR4XJzfLHrq78kmiytaSJB3Lc,4228
619
619
  enap_designsystem/templates/enap_designsystem/base.html,sha256=bBWBjIUwzIqbTf5wIqajFNgloN38XajTFakWfb0GfCM,12712
620
- enap_designsystem/templates/enap_designsystem/sistema_votacao_page.html,sha256=7vp8A8ZI2VMf2F39a5BQON4RnrI8CS8Oj6uTv3cKPn4,57699
620
+ enap_designsystem/templates/enap_designsystem/sistema_votacao_page.html,sha256=EN9QwgvRoeH0GJ1u7uIRVQaYMlsTjDR1fOQMqigjtmI,59696
621
621
  enap_designsystem/templates/enap_designsystem/blocks/accordions.html,sha256=WXBQrkO4U0R8SDbdbFRWBx742gdpiYiKEviiyQURZMk,2940
622
622
  enap_designsystem/templates/enap_designsystem/blocks/accordionsv2.html,sha256=-WXIV6zFjdbRAylWhF9mQkMxUr1Df4-d3OazVm1xT9s,5186
623
623
  enap_designsystem/templates/enap_designsystem/blocks/alerts.html,sha256=_lbwHiFS4eauJtlQB6j-xWR31sKH7lv1EKD9oI2cki4,2067
624
- enap_designsystem/templates/enap_designsystem/blocks/apresentacao_block.html,sha256=DhS7ENEu-t2Qg4HaF77eMrye4NEfKnSKLPCNrygrTk8,3444
624
+ enap_designsystem/templates/enap_designsystem/blocks/apresentacao_block.html,sha256=Epzl5o_oy0OMq0cHeu2veHqh_90UGUD5kyou7snbNGM,3384
625
625
  enap_designsystem/templates/enap_designsystem/blocks/apresentacao_simple_block.html,sha256=3646VVySjx8mwl6x7W2r-2Ycfzdo6XLFNHsNeUk7sI4,6063
626
626
  enap_designsystem/templates/enap_designsystem/blocks/article_grid_block.html,sha256=MkfZ86H3_0MjQlY42VH_KxxRkherRA9qWBR560Ya6Fs,5847
627
627
  enap_designsystem/templates/enap_designsystem/blocks/article_page.html,sha256=fgszv3Oa8c56euX0RM15RhJXFZPwGu3t3ZPJ26EsyrA,1406
@@ -645,7 +645,7 @@ enap_designsystem/templates/enap_designsystem/blocks/card_flex_block.html,sha256
645
645
  enap_designsystem/templates/enap_designsystem/blocks/card_item.html,sha256=i8P0HyYQNIYknIw7RQf81QxdnAaJgPoLi4y0Hr4mAdg,1628
646
646
  enap_designsystem/templates/enap_designsystem/blocks/cardgrid_block.html,sha256=nxD_ZgzSRtZIo3AtHPj1R6pWVgJY3AUHJTRYUcf5dTw,207
647
647
  enap_designsystem/templates/enap_designsystem/blocks/cards_section.html,sha256=nEN4HNbT8eb_Vs8XG0uB4IyxVFfd3uLPt2SWJzP30h0,3967
648
- enap_designsystem/templates/enap_designsystem/blocks/cards_titles.html,sha256=mmbA9a5cL8tB0UKTULSuuswAc7zScFwvoZjJCr5KBJY,8509
648
+ enap_designsystem/templates/enap_designsystem/blocks/cards_titles.html,sha256=drwdeXWQCUqfLZ_ekFOGr5dPcYHrj8pAtcCJDvwE3Xs,9156
649
649
  enap_designsystem/templates/enap_designsystem/blocks/carousel.html,sha256=WJq2NzkpANYkQwHizH7w85SKhmuVxx2goz_BHNTOKNo,16285
650
650
  enap_designsystem/templates/enap_designsystem/blocks/carousel_bggreen.html,sha256=fpwz8WrgGQ5bOsk66TktliBSA5HPz35OcqTlsXV0aLI,28030
651
651
  enap_designsystem/templates/enap_designsystem/blocks/carousel_images.html,sha256=G4nZTKCSPfhu4Qdq-1u-QzG6exw6iOPKd2QWAkaH3Vw,15142
@@ -699,18 +699,18 @@ enap_designsystem/templates/enap_designsystem/blocks/image_text_block.html,sha25
699
699
  enap_designsystem/templates/enap_designsystem/blocks/job-card-wrapper.html,sha256=3DZRt6YUbTcFayylkwm-aLvIhVzSJCi4lJaR-iP1RC4,5199
700
700
  enap_designsystem/templates/enap_designsystem/blocks/job_card.html,sha256=G4Oy9ev9DRGk0p9Yr0nx3OgA4R949f62ct2i1qEV1vo,967
701
701
  enap_designsystem/templates/enap_designsystem/blocks/job_vacancies_block.html,sha256=INfPoccr9Wlihk4uYRQF0gDjR7Y_1ms79fsZIgAGbzU,1867
702
- enap_designsystem/templates/enap_designsystem/blocks/job_vacancy_filtered_block.html,sha256=WXuo5pEVsI_o9IRg4pxXdrublgI8eNGXO48PAZLXwJY,8305
702
+ enap_designsystem/templates/enap_designsystem/blocks/job_vacancy_filtered_block.html,sha256=-lEnU-sLCUNZNv4NPoYuqscFpaUpJGGZlZIr1QM9jhQ,8405
703
703
  enap_designsystem/templates/enap_designsystem/blocks/job_vacancy_index_page.html,sha256=CvRwmHXCigancSjHkP2RxvHfcn48RxkcvKmvQy8CcbY,5435
704
704
  enap_designsystem/templates/enap_designsystem/blocks/job_vacancy_page.html,sha256=xqsIk6B4AdXxbPUzVD7osY41qx5OqcPcIx7YwtO3Ekk,5971
705
705
  enap_designsystem/templates/enap_designsystem/blocks/legislacao_block.html,sha256=aDS5G5kKnUEtSJ_m7b2MfPJSLX7gcIlEg8ScZs5ekNw,2596
706
706
  enap_designsystem/templates/enap_designsystem/blocks/localizacao_block.html,sha256=rjE222dPjub2sv50-akf9Ly0flqnwVgmDHVx2U2keB0,4639
707
707
  enap_designsystem/templates/enap_designsystem/blocks/logo_cliente.html,sha256=8oK8LucgGT06j4otClm8u3LL8FsnYFVpmCJjXqb582k,278
708
- enap_designsystem/templates/enap_designsystem/blocks/logos_simple_block.html,sha256=aDT9x8BNGRJp6HxxNBpyQ3mmhybIX5r1VgsBEyLYsHE,7244
708
+ enap_designsystem/templates/enap_designsystem/blocks/logos_simple_block.html,sha256=q6jJEE9FgLDqksgpOq25xrDR1Dc9tdEGM-1qTFCRsYU,7240
709
709
  enap_designsystem/templates/enap_designsystem/blocks/modal.html,sha256=twkTxgliWSeS4sFE_6ADH-tu8w2mxw9CPo-2KBGq6Io,3023
710
710
  enap_designsystem/templates/enap_designsystem/blocks/navbar_chooserpage.html,sha256=b7lntKUbNpi8yacC9xGh10_BSC4e9UiVnoWL5w4vJCs,9383
711
711
  enap_designsystem/templates/enap_designsystem/blocks/navbar_component.html,sha256=cfQV24ntBA27cxoXNiRadnytoCGcS59FIowTstti_vk,4831
712
712
  enap_designsystem/templates/enap_designsystem/blocks/navbarv3.html,sha256=nagcfcz0hB_V1NT2IOczFcmgjd1OvQ9fnpITWwXhSA8,5501
713
- enap_designsystem/templates/enap_designsystem/blocks/numeros_block.html,sha256=yBKikBB7HzYgoP8Y_J_cB9AwLRm1dtxUAbR7bAhzbeM,5520
713
+ enap_designsystem/templates/enap_designsystem/blocks/numeros_block.html,sha256=ISx_7pQFSfHYVi1dmJFQ5SUPwZRP7CankCPI_LarULs,2320
714
714
  enap_designsystem/templates/enap_designsystem/blocks/ouvidoria_block.html,sha256=ivehDQbJd1VAdyTHdHU1wkjkWMCQ2SnoOrZRWScfH9w,3634
715
715
  enap_designsystem/templates/enap_designsystem/blocks/pagination.html,sha256=ngRTn0fxMYuDOw0MD6VHAmu0VqQMx_A8oDUCdqBRanI,3308
716
716
  enap_designsystem/templates/enap_designsystem/blocks/preview_courses.html,sha256=TV6GH_CCEpQUmdEJMqCzVyKS2KSWpEP8mnosYoJsp4Y,13344
@@ -743,7 +743,7 @@ enap_designsystem/templates/enap_designsystem/blocks/timeline_container.html,sha
743
743
  enap_designsystem/templates/enap_designsystem/blocks/timeline_etapa.html,sha256=Rh_8C9R3xQlRRmU_bguUSYx3ie4g42ilw3dtJZ4-IpM,11855
744
744
  enap_designsystem/templates/enap_designsystem/blocks/topic_links_block.html,sha256=k3Mty-PiSAkeYBTSb4jiFACaC0m9txS-c9by5dnofmc,1083
745
745
  enap_designsystem/templates/enap_designsystem/blocks/video_block.html,sha256=MGxXXVx2LhziavRbua3HGEdMC8t41Y1HvTdKMJhdUpU,5247
746
- enap_designsystem/templates/enap_designsystem/blocks/video_hero_banner.html,sha256=2hyYTkqK2gDw2zjRU0qqQsk0bch1dmisLeWvUo-POiU,6325
746
+ enap_designsystem/templates/enap_designsystem/blocks/video_hero_banner.html,sha256=4j5zdPibgvT0MY6spsPcu8rcd7GHXZUJpLotbxSiXCA,6609
747
747
  enap_designsystem/templates/enap_designsystem/blocks/why_choose.html,sha256=g6AhjSOCmKSNnG77R_qqJ9GAn-cbfwnExGRQ6DSyALk,2002
748
748
  enap_designsystem/templates/enap_designsystem/blocks/wizard.html,sha256=9flhjtnYFeyuxKk0OKFU4fBtAt_pPHQuLkLSJHfjrqU,2498
749
749
  enap_designsystem/templates/enap_designsystem/blocks/footer/footer_social_block.html,sha256=xa112srdhgJk0_0T5VM9j9tYDkjBtB1Jn9QZKXD7kOY,1132
@@ -853,8 +853,8 @@ enap_designsystem/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG
853
853
  enap_designsystem/utils/decorators.py,sha256=aq6SbLn0LcH2rfE3ZFit8jkD7pSx9fLVBUUwVB747hg,335
854
854
  enap_designsystem/utils/services.py,sha256=6dG5jLSbwH49jpZV9ZNpWlaZqI49gTlwlr1vaerxdiU,5824
855
855
  enap_designsystem/utils/sso.py,sha256=vjAuoYgoLeQAa_dkkyQ6-LmHvKMaVCxizNFpe5y3iUA,1145
856
- wagtail_enap_designsystem-1.2.1.137.dist-info/licenses/LICENSE,sha256=Btzdu2kIoMbdSp6OyCLupB1aRgpTCJ_szMimgEnpkkE,1056
857
- wagtail_enap_designsystem-1.2.1.137.dist-info/METADATA,sha256=s6_kx0D2_MEk6xwmmLYwHgCWEsQRVKl4CRRE07DDn60,3651
858
- wagtail_enap_designsystem-1.2.1.137.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
859
- wagtail_enap_designsystem-1.2.1.137.dist-info/top_level.txt,sha256=RSFgMASxoA-hVftm5i4Qd0rArlX4Dq08lLv5G4sYD-g,18
860
- wagtail_enap_designsystem-1.2.1.137.dist-info/RECORD,,
856
+ wagtail_enap_designsystem-1.2.1.138.dist-info/licenses/LICENSE,sha256=Btzdu2kIoMbdSp6OyCLupB1aRgpTCJ_szMimgEnpkkE,1056
857
+ wagtail_enap_designsystem-1.2.1.138.dist-info/METADATA,sha256=yHsN_UlpqwUMwIpyJPM9RDvomYYWa2Jjk0QJxJxZOSs,3651
858
+ wagtail_enap_designsystem-1.2.1.138.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
859
+ wagtail_enap_designsystem-1.2.1.138.dist-info/top_level.txt,sha256=RSFgMASxoA-hVftm5i4Qd0rArlX4Dq08lLv5G4sYD-g,18
860
+ wagtail_enap_designsystem-1.2.1.138.dist-info/RECORD,,