wagtail-enap-designsystem 1.2.1.129__py3-none-any.whl → 1.2.1.130__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.
Files changed (30) hide show
  1. enap_designsystem/blocks/__init__.py +6 -0
  2. enap_designsystem/blocks/form.py +243 -2
  3. enap_designsystem/blocks/html_blocks.py +316 -6
  4. enap_designsystem/blocks/semana_inovacao.py +1 -0
  5. enap_designsystem/migrations/0395_formulariopage_enable_scoring_and_more.py +106 -0
  6. enap_designsystem/migrations/0396_alter_areaaluno_body_alter_enapcomponentes_body_and_more.py +51263 -0
  7. enap_designsystem/migrations/0397_alter_areaaluno_body_alter_enapcomponentes_body_and_more.py +51718 -0
  8. enap_designsystem/migrations/0398_alter_areaaluno_body_alter_enapcomponentes_body_and_more.py +51718 -0
  9. enap_designsystem/migrations/0399_alter_areaaluno_body_alter_enapcomponentes_body_and_more.py +51718 -0
  10. enap_designsystem/migrations/0400_alter_areaaluno_body_alter_enapcomponentes_body_and_more.py +51718 -0
  11. enap_designsystem/migrations/0401_alter_areaaluno_body_alter_cursoeadpage_curso_and_more.py +52692 -0
  12. enap_designsystem/migrations/0402_alter_areaaluno_body_alter_enapcomponentes_body_and_more.py +52082 -0
  13. enap_designsystem/migrations/0403_alter_areaaluno_body_alter_enapcomponentes_body_and_more.py +52802 -0
  14. enap_designsystem/migrations/0404_sistemavotacaopage_conteudo_pagina.py +253 -0
  15. enap_designsystem/models.py +13 -0
  16. enap_designsystem/templates/enap_designsystem/blocks/apresentacao_simple_block.html +1 -1
  17. enap_designsystem/templates/enap_designsystem/blocks/cards_titles.html +309 -0
  18. enap_designsystem/templates/enap_designsystem/blocks/clientes_block.html +1 -1
  19. enap_designsystem/templates/enap_designsystem/blocks/cpnu_dashboard_block.html +5 -0
  20. enap_designsystem/templates/enap_designsystem/blocks/logos_simple_block.html +329 -0
  21. enap_designsystem/templates/enap_designsystem/blocks/numeros_block.html +195 -0
  22. enap_designsystem/templates/enap_designsystem/blocks/page/pagenoticias_block.html +6 -0
  23. enap_designsystem/templates/enap_designsystem/sistema_votacao_page.html +10 -2
  24. enap_designsystem/views.py +1 -1
  25. enap_designsystem/wagtail_hooks.py +390 -9
  26. {wagtail_enap_designsystem-1.2.1.129.dist-info → wagtail_enap_designsystem-1.2.1.130.dist-info}/METADATA +1 -1
  27. {wagtail_enap_designsystem-1.2.1.129.dist-info → wagtail_enap_designsystem-1.2.1.130.dist-info}/RECORD +30 -17
  28. {wagtail_enap_designsystem-1.2.1.129.dist-info → wagtail_enap_designsystem-1.2.1.130.dist-info}/WHEEL +0 -0
  29. {wagtail_enap_designsystem-1.2.1.129.dist-info → wagtail_enap_designsystem-1.2.1.130.dist-info}/licenses/LICENSE +0 -0
  30. {wagtail_enap_designsystem-1.2.1.129.dist-info → wagtail_enap_designsystem-1.2.1.130.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,329 @@
1
+ {% load wagtailimages_tags %}
2
+
3
+ <!-- Template: enap_designsystem/blocks/logos_simple_block.html -->
4
+
5
+ <section class="logos-simple-block" style="background-color: {{ value.cor_fundo }};">
6
+ <div class="container">
7
+ <div class="">
8
+ <!-- Coluna do título -->
9
+ <div class=" align-items-center">
10
+ <h2 class="logos-titulo" style="color: {{ value.cor_titulo }};">
11
+ {{ value.titulo }}
12
+ </h2>
13
+ </div>
14
+
15
+ <!-- Coluna do grid de logos -->
16
+ <div class="container">
17
+ <div class="logos-conteudo" style="background-color: {{ value.cor_fundo_conteudo }};">
18
+ <!-- Grid de logos -->
19
+ <div class="logos-container {{ value.espacamento_logos }}">
20
+ <div class="logos-grid {{ value.tipo_grid_logos }} {{ value.tamanho_logos }}">
21
+ {% for logo_card in value.lista_logos %}
22
+ <div class="logo-card {% if value.centralizar_logos %}text-center{% endif %}">
23
+ <div class="logo-image-container">
24
+ {% image logo_card.logo fill-200x200 class="logo-image" alt="Logo" %}
25
+ </div>
26
+ </div>
27
+ {% endfor %}
28
+ </div>
29
+ </div>
30
+ </div>
31
+ </div>
32
+ </div>
33
+ </div>
34
+ </section>
35
+
36
+ <style>
37
+ /* Estilos do componente LogosSimpleBlock */
38
+ .logos-simple-block {
39
+ padding: 80px 0;
40
+ min-height: 500px;
41
+ }
42
+
43
+ .logos-titulo {
44
+ font-size: 3.5rem;
45
+ font-weight: 700;
46
+ margin-bottom: 0;
47
+ line-height: 1.1;
48
+ text-align: center;
49
+ word-break: break-word;
50
+ margin: auto;
51
+ margin-bottom: 40px;
52
+ max-width: 400px;
53
+
54
+ }
55
+
56
+ .logos-conteudo {
57
+ padding: 60px 40px;
58
+ border-radius: 16px;
59
+ min-height: 350px;
60
+ display: flex;
61
+ align-items: center;
62
+ justify-content: center;
63
+ box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12);
64
+ position: relative;
65
+ overflow: hidden;
66
+ }
67
+
68
+ /* Efeito sutil de gradiente nas bordas */
69
+ .logos-conteudo::before {
70
+ content: '';
71
+ position: absolute;
72
+ top: 0;
73
+ left: 0;
74
+ right: 0;
75
+ bottom: 0;
76
+ background: linear-gradient(135deg, rgba(255,255,255,0.1) 0%, transparent 50%);
77
+ pointer-events: none;
78
+ }
79
+
80
+ /* Grid de logos */
81
+ .logos-container {
82
+ width: 100%;
83
+ position: relative;
84
+ z-index: 1;
85
+ }
86
+
87
+ .logos-grid {
88
+ display: grid;
89
+ gap: 30px;
90
+ align-items: center;
91
+ justify-items: center;
92
+ width: 100%;
93
+ }
94
+
95
+ /* Layouts do grid */
96
+ .logos-grid-1 {
97
+ grid-template-columns: 1fr;
98
+ max-width: 300px;
99
+ margin: 0 auto;
100
+ }
101
+ .logos-grid-2 {
102
+ grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
103
+ max-width: 600px;
104
+ margin: 0 auto;
105
+ }
106
+ .logos-grid-3 {
107
+ grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
108
+ max-width: 700px;
109
+ margin: 0 auto;
110
+ }
111
+ .logos-grid-4 {
112
+ grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
113
+ max-width: 800px;
114
+ margin: 0 auto;
115
+ }
116
+ .logos-grid-5 {
117
+ grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
118
+ max-width: 900px;
119
+ margin: 0 auto;
120
+ }
121
+ .logos-grid-6 {
122
+ grid-template-columns: repeat(auto-fit, minmax(90px, 1fr));
123
+ max-width: 1000px;
124
+ margin: 0 auto;
125
+ }
126
+
127
+ /* Espaçamentos */
128
+ .spacing-sm .logos-grid { gap: 20px; }
129
+ .spacing-md .logos-grid { gap: 30px; }
130
+ .spacing-lg .logos-grid { gap: 40px; }
131
+
132
+ /* Tamanhos das logos */
133
+ .logo-sm .logo-image {
134
+ max-height: 50px;
135
+ max-width: 120px;
136
+ }
137
+ .logo-md .logo-image {
138
+ max-height: 70px;
139
+ max-width: 160px;
140
+ }
141
+ .logo-lg .logo-image {
142
+ max-height: 90px;
143
+ max-width: 200px;
144
+ }
145
+
146
+ /* Estilo do card de logo */
147
+ .logo-card {
148
+ padding: 20px;
149
+ border-radius: 12px;
150
+ transition: all 0.3s ease;
151
+ display: flex;
152
+ align-items: center;
153
+ justify-content: center;
154
+ background: rgba(255, 255, 255, 0.02);
155
+ cursor: pointer;
156
+ position: relative;
157
+ overflow: hidden;
158
+ }
159
+
160
+ .logo-card:hover {
161
+ transform: translateY(-3px) scale(1.02);
162
+ background: rgba(255, 255, 255, 0.08);
163
+ box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15);
164
+ }
165
+
166
+ .logo-image-container {
167
+ display: flex;
168
+ align-items: center;
169
+ justify-content: center;
170
+ height: 100%;
171
+ min-height: 60px;
172
+ position: relative;
173
+ z-index: 1;
174
+ }
175
+
176
+ .logo-image {
177
+ max-width: 100%;
178
+ height: auto;
179
+ object-fit: contain;
180
+ transition: all 0.3s ease;
181
+ filter: brightness(0.95) contrast(1.05);
182
+ }
183
+
184
+ .logo-card:hover .logo-image {
185
+ filter: brightness(1) contrast(1.1);
186
+ transform: scale(1.05);
187
+ }
188
+
189
+ /* Efeito shimmer sutil */
190
+ .logo-card::after {
191
+ content: '';
192
+ position: absolute;
193
+ top: 0;
194
+ left: -100%;
195
+ width: 100%;
196
+ height: 100%;
197
+ background: linear-gradient(
198
+ 90deg,
199
+ transparent,
200
+ rgba(255, 255, 255, 0.1),
201
+ transparent
202
+ );
203
+ transition: left 0.8s ease;
204
+ }
205
+
206
+ .logo-card:hover::after {
207
+ left: 100%;
208
+ }
209
+
210
+ /* Responsividade */
211
+ @media (max-width: 992px) {
212
+ .logos-titulo {
213
+ font-size: 2.8rem;
214
+ text-align: center;
215
+ margin-bottom: 30px;
216
+ }
217
+
218
+ .logos-simple-block {
219
+ padding: 60px 0;
220
+ }
221
+ }
222
+
223
+ @media (max-width: 768px) {
224
+ .logos-simple-block {
225
+ padding: 50px 0;
226
+ min-height: 400px;
227
+ }
228
+
229
+ .logos-titulo {
230
+ font-size: 2.2rem;
231
+ margin-bottom: 25px;
232
+ }
233
+
234
+ .logos-conteudo {
235
+ padding: 40px 25px;
236
+ min-height: 280px;
237
+ border-radius: 12px;
238
+ }
239
+
240
+ .logos-grid-2,
241
+ .logos-grid-3,
242
+ .logos-grid-4,
243
+ .logos-grid-5,
244
+ .logos-grid-6 {
245
+ grid-template-columns: repeat(3, 1fr);
246
+ max-width: 100%;
247
+ }
248
+
249
+ .spacing-sm .logos-grid { gap: 15px; }
250
+ .spacing-md .logos-grid { gap: 20px; }
251
+ .spacing-lg .logos-grid { gap: 25px; }
252
+ }
253
+
254
+ @media (max-width: 480px) {
255
+ .logos-titulo {
256
+ font-size: 1.8rem;
257
+ }
258
+
259
+ .logos-conteudo {
260
+ padding: 30px 20px;
261
+ min-height: 250px;
262
+ }
263
+
264
+ .logos-grid-2,
265
+ .logos-grid-3,
266
+ .logos-grid-4,
267
+ .logos-grid-5,
268
+ .logos-grid-6 {
269
+ grid-template-columns: repeat(2, 1fr);
270
+ }
271
+
272
+ .logo-card {
273
+ padding: 15px;
274
+ }
275
+
276
+ .logo-sm .logo-image { max-height: 40px; max-width: 100px; }
277
+ .logo-md .logo-image { max-height: 50px; max-width: 120px; }
278
+ .logo-lg .logo-image { max-height: 60px; max-width: 140px; }
279
+ }
280
+
281
+ @media (max-width: 360px) {
282
+ .logos-grid-2,
283
+ .logos-grid-3,
284
+ .logos-grid-4,
285
+ .logos-grid-5,
286
+ .logos-grid-6 {
287
+ grid-template-columns: 1fr;
288
+ }
289
+ }
290
+
291
+ /* Animações de entrada */
292
+ @keyframes fadeInUp {
293
+ from {
294
+ opacity: 0;
295
+ transform: translateY(30px);
296
+ }
297
+ to {
298
+ opacity: 1;
299
+ transform: translateY(0);
300
+ }
301
+ }
302
+
303
+ @keyframes fadeInScale {
304
+ from {
305
+ opacity: 0;
306
+ transform: scale(0.8);
307
+ }
308
+ to {
309
+ opacity: 1;
310
+ transform: scale(1);
311
+ }
312
+ }
313
+
314
+ .logos-titulo {
315
+ animation: fadeInUp 0.8s ease forwards;
316
+ }
317
+
318
+ .logos-conteudo {
319
+ animation: fadeInScale 0.8s ease forwards;
320
+ animation-delay: 0.2s;
321
+ opacity: 0;
322
+ }
323
+
324
+ .logo-card {
325
+ animation: fadeInUp 0.6s ease forwards;
326
+ opacity: 0;
327
+ }
328
+
329
+ </style>
@@ -0,0 +1,195 @@
1
+ <!-- Template: enap_designsystem/blocks/apresentacao_simple_block.html -->
2
+
3
+ <section class="apresentacao-simple-block" style="background-color: {{ value.cor_fundo }};">
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 }}
18
+ </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>
47
+ </div>
48
+ </div>
49
+ </div>
50
+ </div>
51
+ </div>
52
+ </section>
53
+
54
+ <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;
162
+ }
163
+
164
+ .apresentacao-titulo {
165
+ font-size: 2rem;
166
+ margin-bottom: 30px;
167
+ }
168
+
169
+ .apresentacao-conteudo {
170
+ padding: 30px;
171
+ }
172
+
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;
189
+ }
190
+
191
+ .logos-conteudo {
192
+ padding: 20px;
193
+ }
194
+ }
195
+ </style>
@@ -223,6 +223,12 @@
223
223
  border: 1px solid #006969;
224
224
  }
225
225
 
226
+ .btn-todos:active{
227
+ color: #ffffff;
228
+ background-color: #025257;
229
+ border: 1px solid #025257;
230
+ }
231
+
226
232
  .sub-title {
227
233
  font-size: 20px;
228
234
  font-weight: 400;
@@ -986,12 +986,20 @@
986
986
  </div>
987
987
  {% endif %}
988
988
  </div>
989
- </div>
990
- <!-- Em vez do StreamField, use include direto -->
989
+ </div>
990
+
991
+
992
+ {% if page.conteudo_pagina %}
993
+ {% for block in page.conteudo_pagina %}
994
+ {% include_block block %}
995
+ {% endfor %}
996
+ {% endif %}
997
+
991
998
  <div class="recaptcha-votacao-container">
992
999
  {% include 'enap_designsystem/blocks/recaptcha.html' with value=recaptcha_config %}
993
1000
  </div>
994
1001
 
1002
+
995
1003
  <div class="sistema-votacao-container">
996
1004
  <!-- Header -->
997
1005
 
@@ -2239,4 +2239,4 @@ def ranking_projetos(request, categoria_id=None):
2239
2239
  return JsonResponse({
2240
2240
  'success': False,
2241
2241
  'message': 'Erro ao buscar ranking'
2242
- }, status=500)
2242
+ }, status=500)