wagtail-enap-designsystem 1.2.1.128__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 (32) 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/0394_sistemavotacaopage_background_image_fundo_and_more.py +52181 -0
  6. enap_designsystem/migrations/0395_formulariopage_enable_scoring_and_more.py +106 -0
  7. enap_designsystem/migrations/0396_alter_areaaluno_body_alter_enapcomponentes_body_and_more.py +51263 -0
  8. enap_designsystem/migrations/0397_alter_areaaluno_body_alter_enapcomponentes_body_and_more.py +51718 -0
  9. enap_designsystem/migrations/0398_alter_areaaluno_body_alter_enapcomponentes_body_and_more.py +51718 -0
  10. enap_designsystem/migrations/0399_alter_areaaluno_body_alter_enapcomponentes_body_and_more.py +51718 -0
  11. enap_designsystem/migrations/0400_alter_areaaluno_body_alter_enapcomponentes_body_and_more.py +51718 -0
  12. enap_designsystem/migrations/0401_alter_areaaluno_body_alter_cursoeadpage_curso_and_more.py +52692 -0
  13. enap_designsystem/migrations/0402_alter_areaaluno_body_alter_enapcomponentes_body_and_more.py +52082 -0
  14. enap_designsystem/migrations/0403_alter_areaaluno_body_alter_enapcomponentes_body_and_more.py +52802 -0
  15. enap_designsystem/migrations/0404_sistemavotacaopage_conteudo_pagina.py +253 -0
  16. enap_designsystem/models.py +26 -0
  17. enap_designsystem/templates/enap_designsystem/blocks/apresentacao_simple_block.html +1 -1
  18. enap_designsystem/templates/enap_designsystem/blocks/cards_titles.html +309 -0
  19. enap_designsystem/templates/enap_designsystem/blocks/clientes_block.html +1 -1
  20. enap_designsystem/templates/enap_designsystem/blocks/cpnu_dashboard_block.html +5 -0
  21. enap_designsystem/templates/enap_designsystem/blocks/logos_simple_block.html +329 -0
  22. enap_designsystem/templates/enap_designsystem/blocks/numeros_block.html +195 -0
  23. enap_designsystem/templates/enap_designsystem/blocks/page/pagenoticias_block.html +6 -0
  24. enap_designsystem/templates/enap_designsystem/blocks/recaptcha.html +0 -2
  25. enap_designsystem/templates/enap_designsystem/sistema_votacao_page.html +36 -9
  26. enap_designsystem/views.py +1 -1
  27. enap_designsystem/wagtail_hooks.py +390 -9
  28. {wagtail_enap_designsystem-1.2.1.128.dist-info → wagtail_enap_designsystem-1.2.1.130.dist-info}/METADATA +1 -1
  29. {wagtail_enap_designsystem-1.2.1.128.dist-info → wagtail_enap_designsystem-1.2.1.130.dist-info}/RECORD +32 -18
  30. {wagtail_enap_designsystem-1.2.1.128.dist-info → wagtail_enap_designsystem-1.2.1.130.dist-info}/WHEEL +0 -0
  31. {wagtail_enap_designsystem-1.2.1.128.dist-info → wagtail_enap_designsystem-1.2.1.130.dist-info}/licenses/LICENSE +0 -0
  32. {wagtail_enap_designsystem-1.2.1.128.dist-info → wagtail_enap_designsystem-1.2.1.130.dist-info}/top_level.txt +0 -0
@@ -21,14 +21,6 @@ from django.contrib.contenttypes.models import ContentType
21
21
 
22
22
 
23
23
 
24
- @hooks.register('insert_global_admin_css')
25
- def global_admin_css():
26
- return format_html(
27
- '<link rel="stylesheet" href="{}"><link rel="stylesheet" href="{}">',
28
- static('css/main_layout.css'),
29
- static('css/mid_layout.css')
30
- )
31
-
32
24
  @hooks.register('insert_global_admin_js')
33
25
  def global_admin_js():
34
26
  return format_html(
@@ -1472,4 +1464,393 @@ def register_urls():
1472
1464
  path('dashboard-votacao/', dashboard_votacao_view, name='dashboard_votacao'),
1473
1465
  path('exportar-votos/', exportar_votos, name='exportar_votos'),
1474
1466
  path('exportar-ranking/', exportar_ranking, name='exportar_ranking'),
1475
- ]
1467
+ ]
1468
+
1469
+
1470
+
1471
+
1472
+ # wagtail_hooks.py - Crie este arquivo na raiz do seu app
1473
+
1474
+ from django.urls import path, reverse
1475
+ from django.utils.html import format_html
1476
+ from django.shortcuts import render, get_object_or_404, redirect
1477
+ from django.contrib import messages
1478
+ from django.http import HttpResponse
1479
+ from django.template import Template, Context
1480
+ import json
1481
+
1482
+ from wagtail import hooks
1483
+ from wagtail.admin import widgets
1484
+ from wagtail.admin.menu import MenuItem
1485
+
1486
+ # Suas views movidas para hooks
1487
+ def formulario_scoring_view(request, page_id):
1488
+ """Configura pontuação dos campos"""
1489
+ from .models import FormularioPage, FormFieldScoring
1490
+
1491
+ page = get_object_or_404(FormularioPage, pk=page_id)
1492
+
1493
+ if not getattr(page, 'enable_scoring', False):
1494
+ messages.error(request, "Sistema de pontuação não está ativado.")
1495
+ return redirect('wagtailadmin_pages:edit', page_id)
1496
+
1497
+ if request.method == 'POST':
1498
+ try:
1499
+ scoring_data = json.loads(request.POST.get('scoring_data', '{}'))
1500
+
1501
+ for field_id, field_scoring in scoring_data.items():
1502
+ page.save_field_scoring(field_id, field_scoring)
1503
+
1504
+ messages.success(request, "Pontuações salvas com sucesso!")
1505
+ return redirect('formulario_scoring_admin', page_id)
1506
+
1507
+ except Exception as e:
1508
+ messages.error(request, f"Erro ao salvar: {str(e)}")
1509
+
1510
+ scorable_fields = page.extract_scorable_fields()
1511
+
1512
+ existing_scorings = {}
1513
+ for scoring in FormFieldScoring.objects.filter(formulario_page=page):
1514
+ existing_scorings[scoring.field_id] = scoring.scoring_data
1515
+
1516
+ # Template inline
1517
+ template_content = """
1518
+ {% extends "wagtailadmin/base.html" %}
1519
+ {% load wagtailadmin_tags %}
1520
+
1521
+ {% block titletag %}Configurar Pontuação - {{ page.title }}{% endblock %}
1522
+
1523
+ {% block content %}
1524
+ <div class="nice-padding">
1525
+ <header class="tab-merged">
1526
+ <h1>🏆 Configurar Pontuação: {{ page.title }}</h1>
1527
+ <p>Configure quantos pontos cada resposta vale. Os usuários não verão as pontuações.</p>
1528
+ </header>
1529
+
1530
+ {% if messages %}
1531
+ <ul class="messages">
1532
+ {% for message in messages %}
1533
+ <li class="message {{ message.tags }}">{{ message }}</li>
1534
+ {% endfor %}
1535
+ </ul>
1536
+ {% endif %}
1537
+
1538
+ <form method="post" id="scoring-form">
1539
+ {% csrf_token %}
1540
+ <input type="hidden" name="scoring_data" id="scoring-data-input">
1541
+
1542
+ {% for field in scorable_fields %}
1543
+ <div class="field-section" style="background: #f9f9f9; border: 1px solid #e1e5e9; padding: 20px; margin: 20px 0; border-radius: 6px;">
1544
+ <h3>📝 {{ field.field_label }}</h3>
1545
+ <div style="margin-bottom: 15px; font-size: 13px; color: #666;">
1546
+ <strong>Tipo:</strong> {{ field.field_type }} |
1547
+ <strong>Etapa:</strong> {{ field.step_number }}
1548
+ </div>
1549
+
1550
+ <div class="scoring-options">
1551
+ {% for option in field.options %}
1552
+ <div style="margin: 12px 0; display: flex; align-items: center; gap: 15px; background: white; padding: 10px; border-radius: 4px;">
1553
+ <label style="min-width: 250px; font-weight: normal;">"{{ option }}"</label>
1554
+ <input type="number"
1555
+ class="scoring-input"
1556
+ data-field="{{ field.field_id }}"
1557
+ data-option="{{ option }}"
1558
+ placeholder="0"
1559
+ step="0.1"
1560
+ style="width: 80px; text-align: center; padding: 5px; border: 1px solid #ccc; border-radius: 4px;">
1561
+ <span style="font-size: 12px; color: #666;">pontos</span>
1562
+ </div>
1563
+ {% endfor %}
1564
+
1565
+ {% if field.field_type == 'checkbox_multiple_field' %}
1566
+ <div style="margin-top: 20px; padding: 15px; background: #fff3cd; border-radius: 4px;">
1567
+ <label style="font-weight: bold;">
1568
+ ⚙️ Método de cálculo para múltiplas seleções:
1569
+ </label>
1570
+ <select class="calculation-method" data-field="{{ field.field_id }}" style="margin-left: 10px; padding: 4px;">
1571
+ <option value="sum">Somar todos os pontos</option>
1572
+ <option value="max">Usar apenas o maior valor</option>
1573
+ <option value="average">Calcular média dos valores</option>
1574
+ </select>
1575
+ </div>
1576
+ {% endif %}
1577
+ </div>
1578
+ </div>
1579
+ {% endfor %}
1580
+
1581
+ {% if not scorable_fields %}
1582
+ <div style="text-align: center; padding: 40px; color: #666;">
1583
+ <h3>📝 Nenhum campo encontrado</h3>
1584
+ <p>Adicione campos dropdown, rádio ou checkbox múltiplo ao formulário.</p>
1585
+ </div>
1586
+ {% endif %}
1587
+
1588
+ <div style="margin-top: 30px;">
1589
+ <button type="submit" class="button button-primary">Salvar Pontuações</button>
1590
+ <a href="{% url 'formulario_results_admin' page.pk %}" class="button">Ver Resultados</a>
1591
+ <a href="{% url 'wagtailadmin_pages:edit' page.pk %}" class="button">Voltar ao Formulário</a>
1592
+ </div>
1593
+ </form>
1594
+ </div>
1595
+
1596
+ <script>
1597
+ const existingScorings = {{ existing_scorings_json|safe }};
1598
+
1599
+ // Carregar valores existentes
1600
+ for (const [fieldId, scoring] of Object.entries(existingScorings)) {
1601
+ const optionScores = scoring.option_scores || {};
1602
+
1603
+ for (const [option, score] of Object.entries(optionScores)) {
1604
+ const input = document.querySelector(`input[data-field="${fieldId}"][data-option="${option}"]`);
1605
+ if (input) input.value = score;
1606
+ }
1607
+
1608
+ const methodSelect = document.querySelector(`select[data-field="${fieldId}"]`);
1609
+ if (methodSelect && scoring.calculation_method) {
1610
+ methodSelect.value = scoring.calculation_method;
1611
+ }
1612
+ }
1613
+
1614
+ // Envio do formulário
1615
+ document.getElementById('scoring-form').addEventListener('submit', function(e) {
1616
+ const scoringData = {};
1617
+
1618
+ document.querySelectorAll('.field-section').forEach(section => {
1619
+ const inputs = section.querySelectorAll('.scoring-input');
1620
+ if (inputs.length === 0) return;
1621
+
1622
+ const fieldId = inputs[0].dataset.field;
1623
+ const optionScores = {};
1624
+
1625
+ inputs.forEach(input => {
1626
+ const option = input.dataset.option;
1627
+ const score = parseFloat(input.value) || 0;
1628
+ optionScores[option] = score;
1629
+ });
1630
+
1631
+ scoringData[fieldId] = { option_scores: optionScores };
1632
+
1633
+ const methodSelect = section.querySelector('.calculation-method');
1634
+ if (methodSelect) {
1635
+ scoringData[fieldId].calculation_method = methodSelect.value;
1636
+ }
1637
+ });
1638
+
1639
+ document.getElementById('scoring-data-input').value = JSON.stringify(scoringData);
1640
+ });
1641
+ </script>
1642
+
1643
+ {% endblock %}
1644
+ """
1645
+
1646
+ template = Template(template_content)
1647
+ context = Context({
1648
+ 'page': page,
1649
+ 'scorable_fields': scorable_fields,
1650
+ 'existing_scorings': existing_scorings,
1651
+ 'existing_scorings_json': json.dumps(existing_scorings),
1652
+ 'messages': messages.get_messages(request),
1653
+ })
1654
+
1655
+ return HttpResponse(template.render(context))
1656
+
1657
+
1658
+ def formulario_results_view(request, page_id):
1659
+ """Mostra resultados com pontuação"""
1660
+ from .models import FormularioPage, FormularioSubmissionScored
1661
+
1662
+ page = get_object_or_404(FormularioPage, pk=page_id)
1663
+ submissions = page.formulariosubmission_set.all().order_by('-submit_time')
1664
+
1665
+ scored_submissions = []
1666
+ total_scores = []
1667
+
1668
+ for submission in submissions:
1669
+ score, details = page.calculate_submission_score(submission)
1670
+
1671
+ scored_sub, created = FormularioSubmissionScored.objects.get_or_create(
1672
+ original_submission=submission,
1673
+ defaults={'total_score': score, 'score_details': details}
1674
+ )
1675
+
1676
+ if not created and scored_sub.total_score != score:
1677
+ scored_sub.total_score = score
1678
+ scored_sub.score_details = details
1679
+ scored_sub.save()
1680
+
1681
+ scored_submissions.append({
1682
+ 'submission': submission,
1683
+ 'score': score,
1684
+ 'details': details
1685
+ })
1686
+
1687
+ if score > 0:
1688
+ total_scores.append(score)
1689
+
1690
+ stats = {
1691
+ 'total': len(submissions),
1692
+ 'average': sum(total_scores) / len(total_scores) if total_scores else 0,
1693
+ 'max_score': max(total_scores) if total_scores else 0,
1694
+ 'min_score': min(total_scores) if total_scores else 0,
1695
+ }
1696
+
1697
+ # Template inline para resultados
1698
+ template_content = """
1699
+ {% extends "wagtailadmin/base.html" %}
1700
+ {% load wagtailadmin_tags %}
1701
+
1702
+ {% block titletag %}Resultados com Pontuação - {{ page.title }}{% endblock %}
1703
+
1704
+ {% block content %}
1705
+ <div class="nice-padding">
1706
+ <header class="tab-merged">
1707
+ <h1>📊 Resultados: {{ page.title }}</h1>
1708
+ </header>
1709
+
1710
+ <div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 20px; margin: 20px 0;">
1711
+ <div style="background: #e8f4fd; padding: 20px; border-radius: 6px; text-align: center;">
1712
+ <div style="font-size: 24px; font-weight: bold; color: #0066cc;">{{ stats.total }}</div>
1713
+ <div style="color: #666;">Total de Submissões</div>
1714
+ </div>
1715
+ <div style="background: #e8f5e8; padding: 20px; border-radius: 6px; text-align: center;">
1716
+ <div style="font-size: 24px; font-weight: bold; color: #28a745;">{{ stats.average|floatformat:1 }}</div>
1717
+ <div style="color: #666;">Pontuação Média</div>
1718
+ </div>
1719
+ <div style="background: #fff3cd; padding: 20px; border-radius: 6px; text-align: center;">
1720
+ <div style="font-size: 24px; font-weight: bold; color: #856404;">{{ stats.max_score }}</div>
1721
+ <div style="color: #666;">Maior Pontuação</div>
1722
+ </div>
1723
+ <div style="background: #f8d7da; padding: 20px; border-radius: 6px; text-align: center;">
1724
+ <div style="font-size: 24px; font-weight: bold; color: #721c24;">{{ stats.min_score }}</div>
1725
+ <div style="color: #666;">Menor Pontuação</div>
1726
+ </div>
1727
+ </div>
1728
+
1729
+ <div style="margin: 20px 0;">
1730
+ <a href="{% url 'formulario_scoring_admin' page.pk %}" class="button button-primary">Configurar Pontuação</a>
1731
+ <a href="{% url 'wagtailadmin_pages:edit' page.pk %}" class="button">Editar Formulário</a>
1732
+ </div>
1733
+
1734
+ <table class="listing">
1735
+ <thead>
1736
+ <tr>
1737
+ <th>Data/Hora</th>
1738
+ <th>Pontuação</th>
1739
+ <th>IP</th>
1740
+ <th>Ações</th>
1741
+ </tr>
1742
+ </thead>
1743
+ <tbody>
1744
+ {% for item in scored_submissions %}
1745
+ <tr>
1746
+ <td>{{ item.submission.submit_time|date:"d/m/Y H:i" }}</td>
1747
+ <td><strong style="color: #0066cc;">{{ item.score|floatformat:1 }} pts</strong></td>
1748
+ <td>{{ item.submission.user_ip|default:"-" }}</td>
1749
+ <td>
1750
+ <button onclick="showDetails({{ item.submission.pk }}, {{ item.score }}, {{ item.details|safe }})"
1751
+ class="button button-small">
1752
+ Ver Detalhes
1753
+ </button>
1754
+ </td>
1755
+ </tr>
1756
+ {% empty %}
1757
+ <tr>
1758
+ <td colspan="4" style="text-align: center; padding: 40px; color: #666;">
1759
+ Nenhuma submissão encontrada
1760
+ </td>
1761
+ </tr>
1762
+ {% endfor %}
1763
+ </tbody>
1764
+ </table>
1765
+ </div>
1766
+
1767
+ <!-- Modal para detalhes -->
1768
+ <div id="detailsModal" style="display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.5); z-index: 1000;">
1769
+ <div style="position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); background: white; padding: 30px; border-radius: 8px; max-width: 600px; max-height: 80vh; overflow-y: auto;">
1770
+ <h3>Detalhes da Pontuação</h3>
1771
+ <div id="modalContent"></div>
1772
+ <button onclick="closeModal()" class="button">Fechar</button>
1773
+ </div>
1774
+ </div>
1775
+
1776
+ <script>
1777
+ function showDetails(submissionId, totalScore, details) {
1778
+ const modal = document.getElementById('detailsModal');
1779
+ const content = document.getElementById('modalContent');
1780
+
1781
+ let html = `<div style="margin-bottom: 20px;">
1782
+ <strong>Pontuação Total: ${totalScore.toFixed(1)} pontos</strong>
1783
+ </div>`;
1784
+
1785
+ if (details && details.length > 0) {
1786
+ html += '<h4>Detalhamento:</h4>';
1787
+ details.forEach(detail => {
1788
+ html += `
1789
+ <div style="border: 1px solid #eee; padding: 15px; margin: 10px 0; border-radius: 4px;">
1790
+ <strong>${detail.field_label}</strong><br>
1791
+ <span style="color: #666;">Resposta: "${detail.user_response}"</span><br>
1792
+ <span style="color: #0066cc; font-weight: bold;">Pontos: ${detail.field_score}</span>
1793
+ </div>
1794
+ `;
1795
+ });
1796
+ } else {
1797
+ html += '<p style="color: #666;">Nenhum detalhe disponível.</p>';
1798
+ }
1799
+
1800
+ content.innerHTML = html;
1801
+ modal.style.display = 'block';
1802
+ }
1803
+
1804
+ function closeModal() {
1805
+ document.getElementById('detailsModal').style.display = 'none';
1806
+ }
1807
+
1808
+ document.getElementById('detailsModal').addEventListener('click', function(e) {
1809
+ if (e.target === this) closeModal();
1810
+ });
1811
+ </script>
1812
+
1813
+ {% endblock %}
1814
+ """
1815
+
1816
+ template = Template(template_content)
1817
+ context = Context({
1818
+ 'page': page,
1819
+ 'scored_submissions': scored_submissions,
1820
+ 'stats': stats,
1821
+ })
1822
+
1823
+ return HttpResponse(template.render(context))
1824
+
1825
+
1826
+ # Hook para registrar URLs no admin
1827
+ @hooks.register('register_admin_urls')
1828
+ def register_scoring_urls():
1829
+ return [
1830
+ path('formulario/<int:page_id>/pontuacao/', formulario_scoring_view, name='formulario_scoring_admin'),
1831
+ path('formulario/<int:page_id>/resultados/', formulario_results_view, name='formulario_results_admin'),
1832
+ ]
1833
+
1834
+
1835
+ # Hook para adicionar botões na página de edição
1836
+ @hooks.register('register_page_action_menu_item')
1837
+ def add_scoring_menu_item(page):
1838
+ # Só mostrar para FormularioPage
1839
+ if hasattr(page, 'form_steps') and getattr(page, 'enable_scoring', False):
1840
+ return widgets.PageActionMenuItem(
1841
+ 'Configurar Pontuação',
1842
+ reverse('formulario_scoring_admin', args=[page.pk]),
1843
+ priority=10
1844
+ )
1845
+
1846
+
1847
+ @hooks.register('register_page_action_menu_item')
1848
+ def add_results_menu_item(page):
1849
+ # Só mostrar para FormularioPage
1850
+ if hasattr(page, 'form_steps') and getattr(page, 'enable_scoring', False):
1851
+ return widgets.PageActionMenuItem(
1852
+ 'Ver Resultados',
1853
+ reverse('formulario_results_admin', args=[page.pk]),
1854
+ priority=11
1855
+ )
1856
+
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: wagtail-enap-designsystem
3
- Version: 1.2.1.128
3
+ Version: 1.2.1.130
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
@@ -1,21 +1,21 @@
1
1
  enap_designsystem/__init__.py,sha256=_SM5n--8zkHIEZfCoc7wEfm6hQT8cuATZSRlLdrD7Rg,68
2
2
  enap_designsystem/apps.py,sha256=psX3YlGfqmPsaZZzRL4cpDTGvjwfNJT_0Vvizc_LIEg,226
3
3
  enap_designsystem/context_processors.py,sha256=IBYJGQpfan6gck4XcWMJMugAUKtnKpKX9XB5tZzmNbo,472
4
- enap_designsystem/models.py,sha256=Dh-m1gNFKfx1bSWeyVwuTNr6Vf_O5G2o_JsYDZo8vI8,140470
4
+ enap_designsystem/models.py,sha256=1jIknL3DEduIPiV2jlG2LG2IS2jl2yctZ9kAvfMJsi4,141227
5
5
  enap_designsystem/settings.py,sha256=9PXLYaJHaUr6Mc9qxNg34zdX7dtxDVlNXomJ-nS7-Vw,745
6
6
  enap_designsystem/signals.py,sha256=oaHpZms4Dkc97ql-55Q0QxU7-45jwg2Y1XoRDOJ45tc,1978
7
7
  enap_designsystem/urls.py,sha256=EJ52w-55BysQU5pTZR4ltMtZM7aSKyjZdnQDGFipDXY,2219
8
- enap_designsystem/views.py,sha256=KEDyB2DLxjEaMQ40zjeKdIVnbyCx9OEbF6QFZQEr6e8,78331
9
- enap_designsystem/wagtail_hooks.py,sha256=OZhdzNolcQ4OOa6JSc6uAYvizvuiCtevFP9bRu8p80k,55920
10
- enap_designsystem/blocks/__init__.py,sha256=gc-k00LRvaxXIINBCk1OgjeTcqn3GlCEjr8oi3x3MJo,38302
8
+ enap_designsystem/views.py,sha256=Au46gj48cauBIH8zZeYPPycVzoz6GH022zDJp-CFy_c,78332
9
+ enap_designsystem/wagtail_hooks.py,sha256=6pVUEw28-F5s5ECxK5lIF0GgsPvoz47_jyfbcoDvISk,71677
10
+ enap_designsystem/blocks/__init__.py,sha256=6JW1ybuSfTucg-xZnomIcuVJIIo_1wGWgsaBZ-7yF1U,38617
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
- enap_designsystem/blocks/form.py,sha256=N5O9CLYfNjAmRo0IGNcfl8Qdd7lxAKLLGFuV1e5rkZc,68564
15
- enap_designsystem/blocks/html_blocks.py,sha256=YM18TejM50E3t-zjoMXGfK9HIMj1Itf7GGymMQzOcrk,235841
14
+ enap_designsystem/blocks/form.py,sha256=M6PSKJDywJexe35qq9HlZmR4P0DKcT7n0H7wso-U6yk,77850
15
+ enap_designsystem/blocks/html_blocks.py,sha256=yFx6QkivBuGadBPPKFDWRZegDY_xHs38mK8_jNxEi3s,244509
16
16
  enap_designsystem/blocks/layout_blocks.py,sha256=WyVt3nwYxA4Eqr6-MqQY7W-xtjh07ZhstM8aiQaHmLw,23388
17
17
  enap_designsystem/blocks/semana_blocks.py,sha256=tJ8bFvW6lTSnLp2Wf1CARNSM4UoGl95lvYmxik5g0GA,70251
18
- enap_designsystem/blocks/semana_inovacao.py,sha256=u2GivQWRvRbry21fPTgy1BPrmWGfrXDAaiG8bpqcDSY,46989
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
21
21
  enap_designsystem/middleware/wagtail_userbar_safe.py,sha256=5A_bmUqL7DtVb2LNs9yyo9BZ4lasQTVVY8fOYnwU8ZI,633
@@ -429,6 +429,17 @@ enap_designsystem/migrations/0390_alter_areaaluno_body_alter_cursoeadpage_curso_
429
429
  enap_designsystem/migrations/0391_alter_formulariopage_form_steps.py,sha256=dNqwUdHXOYS40cLdHvtXIeJqUSB4fzI3elL7I3HMH4Y,52217
430
430
  enap_designsystem/migrations/0392_alter_formulariopage_form_steps.py,sha256=JWTZXTRnYz7mHnHVNw2T14jBUCrh1ixudA7CPtdEN-s,52159
431
431
  enap_designsystem/migrations/0393_alter_formulariopage_form_steps.py,sha256=u0TvJrs6lNyKHPR8ktkRDu6uNUQnQVzk4i9QvEyy0sM,53282
432
+ enap_designsystem/migrations/0394_sistemavotacaopage_background_image_fundo_and_more.py,sha256=aJaQ1G_u1QfuuqWPWgHVlQcb7Apd71d9qTTobhdsUbA,2341043
433
+ enap_designsystem/migrations/0395_formulariopage_enable_scoring_and_more.py,sha256=Om88OEm5C43DEBL-pRubsl62dHAM1yg1l4U115x7wTw,3650
434
+ enap_designsystem/migrations/0396_alter_areaaluno_body_alter_enapcomponentes_body_and_more.py,sha256=-fexIhDZnkYpLsC_-4m3lbM_7fd33mZSYQNHlImQYtw,2297469
435
+ enap_designsystem/migrations/0397_alter_areaaluno_body_alter_enapcomponentes_body_and_more.py,sha256=LsHM-e108r5bfsNw_zJHm4AUndZCJJTusdN37yV0nYo,2320646
436
+ enap_designsystem/migrations/0398_alter_areaaluno_body_alter_enapcomponentes_body_and_more.py,sha256=Us9CThTWvhbpySkm0TCm8Vj6pnD_4N3np7SShFv-Od8,2320646
437
+ enap_designsystem/migrations/0399_alter_areaaluno_body_alter_enapcomponentes_body_and_more.py,sha256=UQbrWsfkXZteJNq2Q-o0M7htmotPdpFAhJOEpt1U-cM,2320622
438
+ enap_designsystem/migrations/0400_alter_areaaluno_body_alter_enapcomponentes_body_and_more.py,sha256=Kwtq_J78fOm1mXbwqtTcWRO2HC_EcLrJXqhOpWxn9Mk,2320742
439
+ enap_designsystem/migrations/0401_alter_areaaluno_body_alter_cursoeadpage_curso_and_more.py,sha256=4j4Gvf5s7bOaYEXn6TuNvNeTr3cOjZOmuJ8or84KPC4,2362717
440
+ enap_designsystem/migrations/0402_alter_areaaluno_body_alter_enapcomponentes_body_and_more.py,sha256=pv8v8hddJoQ2BKozgaDv3F7qtbehOcH0c2IYJuAhCiw,2337328
441
+ enap_designsystem/migrations/0403_alter_areaaluno_body_alter_enapcomponentes_body_and_more.py,sha256=2NbUuYbN9bWNUQxFg412sWdVcBNftK-xTvI1E7V9BHo,2371706
442
+ enap_designsystem/migrations/0404_sistemavotacaopage_conteudo_pagina.py,sha256=aJ5k6TvGifHJ6n91XOXXJHRv0Rn4KH7QTof8o20d63g,11760
432
443
  enap_designsystem/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
433
444
  enap_designsystem/search_backends/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
434
445
  enap_designsystem/search_backends/custom_elasticsearch.py,sha256=LeQT0_dJmNMTY7l3jOJ_7mJ9-2X0oXVqvxRiXEA0qGY,988
@@ -599,12 +610,12 @@ enap_designsystem/templates/admin/exportar_respostas.html,sha256=jF7hGJ6LkbKo536
599
610
  enap_designsystem/templates/admin/meta_tags_manager.html,sha256=jXNvT9etPN88TNT8Ou8ko-AHComioM9p8iU1lpW5m3k,11826
600
611
  enap_designsystem/templates/enap_designsystem/accordion_v2.html,sha256=SE-72OoHu-WucITL-CPR4XJzfLHrq78kmiytaSJB3Lc,4228
601
612
  enap_designsystem/templates/enap_designsystem/base.html,sha256=bBWBjIUwzIqbTf5wIqajFNgloN38XajTFakWfb0GfCM,12712
602
- enap_designsystem/templates/enap_designsystem/sistema_votacao_page.html,sha256=9K_FvkuG1hq48CvxP88V1uDCCtXBzYs3zZ_-WbtUpFc,53138
613
+ enap_designsystem/templates/enap_designsystem/sistema_votacao_page.html,sha256=w2Ob3oL-DFRfLiFnWBR_-irzdEbogsBBWWNJieGaPzs,53954
603
614
  enap_designsystem/templates/enap_designsystem/blocks/accordions.html,sha256=WXBQrkO4U0R8SDbdbFRWBx742gdpiYiKEviiyQURZMk,2940
604
615
  enap_designsystem/templates/enap_designsystem/blocks/accordionsv2.html,sha256=-WXIV6zFjdbRAylWhF9mQkMxUr1Df4-d3OazVm1xT9s,5186
605
616
  enap_designsystem/templates/enap_designsystem/blocks/alerts.html,sha256=_lbwHiFS4eauJtlQB6j-xWR31sKH7lv1EKD9oI2cki4,2067
606
617
  enap_designsystem/templates/enap_designsystem/blocks/apresentacao_block.html,sha256=DhS7ENEu-t2Qg4HaF77eMrye4NEfKnSKLPCNrygrTk8,3444
607
- enap_designsystem/templates/enap_designsystem/blocks/apresentacao_simple_block.html,sha256=AgXl02G029uWa5Ce-LNGt98iW6wjRrl_RkAwnwyUgDA,6050
618
+ enap_designsystem/templates/enap_designsystem/blocks/apresentacao_simple_block.html,sha256=3646VVySjx8mwl6x7W2r-2Ycfzdo6XLFNHsNeUk7sI4,6063
608
619
  enap_designsystem/templates/enap_designsystem/blocks/article_grid_block.html,sha256=MkfZ86H3_0MjQlY42VH_KxxRkherRA9qWBR560Ya6Fs,5847
609
620
  enap_designsystem/templates/enap_designsystem/blocks/article_page.html,sha256=fgszv3Oa8c56euX0RM15RhJXFZPwGu3t3ZPJ26EsyrA,1406
610
621
  enap_designsystem/templates/enap_designsystem/blocks/auto_breadcrumb_block.html,sha256=mhswvCGpN_c5N9pvGl1Ce19iCaippnfKKEAQzgI873s,1028
@@ -627,6 +638,7 @@ enap_designsystem/templates/enap_designsystem/blocks/card_flex_block.html,sha256
627
638
  enap_designsystem/templates/enap_designsystem/blocks/card_item.html,sha256=i8P0HyYQNIYknIw7RQf81QxdnAaJgPoLi4y0Hr4mAdg,1628
628
639
  enap_designsystem/templates/enap_designsystem/blocks/cardgrid_block.html,sha256=nxD_ZgzSRtZIo3AtHPj1R6pWVgJY3AUHJTRYUcf5dTw,207
629
640
  enap_designsystem/templates/enap_designsystem/blocks/cards_section.html,sha256=nEN4HNbT8eb_Vs8XG0uB4IyxVFfd3uLPt2SWJzP30h0,3967
641
+ enap_designsystem/templates/enap_designsystem/blocks/cards_titles.html,sha256=mmbA9a5cL8tB0UKTULSuuswAc7zScFwvoZjJCr5KBJY,8509
630
642
  enap_designsystem/templates/enap_designsystem/blocks/carousel.html,sha256=WJq2NzkpANYkQwHizH7w85SKhmuVxx2goz_BHNTOKNo,16285
631
643
  enap_designsystem/templates/enap_designsystem/blocks/carousel_bggreen.html,sha256=fpwz8WrgGQ5bOsk66TktliBSA5HPz35OcqTlsXV0aLI,28030
632
644
  enap_designsystem/templates/enap_designsystem/blocks/carousel_images.html,sha256=G4nZTKCSPfhu4Qdq-1u-QzG6exw6iOPKd2QWAkaH3Vw,15142
@@ -637,14 +649,14 @@ enap_designsystem/templates/enap_designsystem/blocks/carrossel_cursos_block.html
637
649
  enap_designsystem/templates/enap_designsystem/blocks/cartao_destacado.html,sha256=OYyEfrI6COWazqMQMsa5p3Xewy1pRpyPIUEeEoyqc40,2971
638
650
  enap_designsystem/templates/enap_designsystem/blocks/chatbot_block.html,sha256=E3nKD8bd9j3kCfSQoN86EG0i2V7o5SaFRYPyfnm5i7k,14301
639
651
  enap_designsystem/templates/enap_designsystem/blocks/citizen_server_block.html,sha256=pG_7T5zb47j2pgrenaPQBo49nWWCjr0AnplI4ojTuNs,1201
640
- enap_designsystem/templates/enap_designsystem/blocks/clientes_block.html,sha256=dr8-_l-CjHjp6dTFFPJyfRnY2pyRhRAAzbcuV6L2BTY,4150
652
+ enap_designsystem/templates/enap_designsystem/blocks/clientes_block.html,sha256=chRei6RwwOdlm98-2Ys9noCgiXRpIS1gKL__McEnEOw,4190
641
653
  enap_designsystem/templates/enap_designsystem/blocks/container_info_block.html,sha256=dNKp21ssEAbEWsgGlJCDyPCatlx1PZlbXFGCJQZNEI4,3330
642
654
  enap_designsystem/templates/enap_designsystem/blocks/contato_block.html,sha256=skfnDb2iSXzdo_wbknQTtRmfJ6D6cpjFwNev6gLPAEs,4565
643
655
  enap_designsystem/templates/enap_designsystem/blocks/contato_page.html,sha256=vae6hP4Z7n5atoEL4OtLrCXSslYABIT2sm53V78VsIs,1136
644
656
  enap_designsystem/templates/enap_designsystem/blocks/content_box.html,sha256=O_RtaVfEOk9Jz_gpA1QBF1DfSGDmtbYGYVsmsB_Nz98,5973
645
657
  enap_designsystem/templates/enap_designsystem/blocks/content_flex_block.html,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
646
658
  enap_designsystem/templates/enap_designsystem/blocks/course_intro_topics.html,sha256=jc-tjDBsSM-xJu9x-gmnATSSw_ER0ZLSiiJrb9PwiCw,1855
647
- enap_designsystem/templates/enap_designsystem/blocks/cpnu_dashboard_block.html,sha256=GvcQNgO-H4S-9_Ssosllh_rDZI1slx4hG5FhSr0vW3E,29102
659
+ enap_designsystem/templates/enap_designsystem/blocks/cpnu_dashboard_block.html,sha256=eFQejo2ncdfSZ-brt99pJXgBZzoG4elQZgXshKoEwag,29211
648
660
  enap_designsystem/templates/enap_designsystem/blocks/cta2.html,sha256=5SHLlgZT572JZoxxVNbVVc7mybO-v52ZygMEZo7hUxs,866
649
661
  enap_designsystem/templates/enap_designsystem/blocks/cta_destaque_formacao_block.html,sha256=f--GMwbyrVk0LC0AOrW8lVNY-R-295ndE1W5RjPW0JM,1280
650
662
  enap_designsystem/templates/enap_designsystem/blocks/cta_imagem_block.html,sha256=_fCNOxx3bSVVVvS_8eL68KhB8iHVtbSM86P7aQg2GLQ,2057
@@ -686,10 +698,12 @@ enap_designsystem/templates/enap_designsystem/blocks/job_vacancy_page.html,sha25
686
698
  enap_designsystem/templates/enap_designsystem/blocks/legislacao_block.html,sha256=aDS5G5kKnUEtSJ_m7b2MfPJSLX7gcIlEg8ScZs5ekNw,2596
687
699
  enap_designsystem/templates/enap_designsystem/blocks/localizacao_block.html,sha256=rjE222dPjub2sv50-akf9Ly0flqnwVgmDHVx2U2keB0,4639
688
700
  enap_designsystem/templates/enap_designsystem/blocks/logo_cliente.html,sha256=8oK8LucgGT06j4otClm8u3LL8FsnYFVpmCJjXqb582k,278
701
+ enap_designsystem/templates/enap_designsystem/blocks/logos_simple_block.html,sha256=aDT9x8BNGRJp6HxxNBpyQ3mmhybIX5r1VgsBEyLYsHE,7244
689
702
  enap_designsystem/templates/enap_designsystem/blocks/modal.html,sha256=twkTxgliWSeS4sFE_6ADH-tu8w2mxw9CPo-2KBGq6Io,3023
690
703
  enap_designsystem/templates/enap_designsystem/blocks/navbar_chooserpage.html,sha256=b7lntKUbNpi8yacC9xGh10_BSC4e9UiVnoWL5w4vJCs,9383
691
704
  enap_designsystem/templates/enap_designsystem/blocks/navbar_component.html,sha256=cfQV24ntBA27cxoXNiRadnytoCGcS59FIowTstti_vk,4831
692
705
  enap_designsystem/templates/enap_designsystem/blocks/navbarv3.html,sha256=nagcfcz0hB_V1NT2IOczFcmgjd1OvQ9fnpITWwXhSA8,5501
706
+ enap_designsystem/templates/enap_designsystem/blocks/numeros_block.html,sha256=yBKikBB7HzYgoP8Y_J_cB9AwLRm1dtxUAbR7bAhzbeM,5520
693
707
  enap_designsystem/templates/enap_designsystem/blocks/ouvidoria_block.html,sha256=ivehDQbJd1VAdyTHdHU1wkjkWMCQ2SnoOrZRWScfH9w,3634
694
708
  enap_designsystem/templates/enap_designsystem/blocks/pagination.html,sha256=ngRTn0fxMYuDOw0MD6VHAmu0VqQMx_A8oDUCdqBRanI,3308
695
709
  enap_designsystem/templates/enap_designsystem/blocks/preview_courses.html,sha256=TV6GH_CCEpQUmdEJMqCzVyKS2KSWpEP8mnosYoJsp4Y,13344
@@ -697,7 +711,7 @@ enap_designsystem/templates/enap_designsystem/blocks/programa_card.html,sha256=n
697
711
  enap_designsystem/templates/enap_designsystem/blocks/programa_cards.html,sha256=pWiTQuE6H4Zewdi72aMHq48Uz0-KDURQKbv4pEt1k7w,9543
698
712
  enap_designsystem/templates/enap_designsystem/blocks/quote_block.html,sha256=x_hWs1npc987dSAx_lP30oJNaMRqTixy7M74_F6XMpg,347
699
713
  enap_designsystem/templates/enap_designsystem/blocks/quote_modern.html,sha256=AQNhVuMFezBvpOKPLkgDN2Vnpl8llDTzFGf3wrraIgg,873
700
- enap_designsystem/templates/enap_designsystem/blocks/recaptcha.html,sha256=FxHBZ4YgeKHpmk6tXAoR7zdj76ukhRMZsL8bLrqc0Ck,10810
714
+ enap_designsystem/templates/enap_designsystem/blocks/recaptcha.html,sha256=pyPikDM5fAYBa8DzSk61ZJBMiA6DPCio00lNRTA4y5U,10754
701
715
  enap_designsystem/templates/enap_designsystem/blocks/richtext_block.html,sha256=_2-KY2KOIzGFfM4wTy5-9VIKPzMDgPdthO3DR_CBVIE,2373
702
716
  enap_designsystem/templates/enap_designsystem/blocks/section_block.html,sha256=X9xF7a0hg368FnQxzSGz7heEpiMAvmwaBB4NDFgQVKE,3598
703
717
  enap_designsystem/templates/enap_designsystem/blocks/section_card_title_center.html,sha256=LuS4dqVRHf5t3j1sQoWN8elKztLjy1TozM9DJDiGZoA,5025
@@ -730,7 +744,7 @@ enap_designsystem/templates/enap_designsystem/blocks/footer/footer_social_grid_b
730
744
  enap_designsystem/templates/enap_designsystem/blocks/navbar/navbar_block.html,sha256=ODb6r0pAV1LS_byt0Kqmf4TocAPDdBEkSVleQFxjnY4,40169
731
745
  enap_designsystem/templates/enap_designsystem/blocks/page/lia.html,sha256=54swuKsR3U0AIbTNSNQlQ-HncYT0sGhW82wk9rITg78,27450
732
746
  enap_designsystem/templates/enap_designsystem/blocks/page/pagelist_block.html,sha256=4zJgraGrAPBRTg3malKolNxvIrot67rpfFNn0uwlbSI,27785
733
- enap_designsystem/templates/enap_designsystem/blocks/page/pagenoticias_block.html,sha256=VCTj5k7s7ND9W7tpRCILWo8cBN1kQt_d4hKjCY16E6M,25664
747
+ enap_designsystem/templates/enap_designsystem/blocks/page/pagenoticias_block.html,sha256=FhhnDRTvex8hBSPKiKu0Xg3vTdprrKo_CFq83NWuMiY,25788
734
748
  enap_designsystem/templates/enap_designsystem/blocks/rps/apirps_busca_block.html,sha256=V2mkc_duQuljxG-ASzDuesgy6BuHcYifIqFpiBtYkUU,7075
735
749
  enap_designsystem/templates/enap_designsystem/blocks/rps/apirps_ultima_block.html,sha256=kfdhbe9-nxf8my4K2qKNX195d3Sumzm3Hrc3XaSRm_4,2960
736
750
  enap_designsystem/templates/enap_designsystem/blocks/suap/apisuap_courses_block.html,sha256=bgDEbZKv-szE7k2rN6k9kFC8XMgJd7XfKfynEznRscI,23231
@@ -832,8 +846,8 @@ enap_designsystem/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG
832
846
  enap_designsystem/utils/decorators.py,sha256=aq6SbLn0LcH2rfE3ZFit8jkD7pSx9fLVBUUwVB747hg,335
833
847
  enap_designsystem/utils/services.py,sha256=6dG5jLSbwH49jpZV9ZNpWlaZqI49gTlwlr1vaerxdiU,5824
834
848
  enap_designsystem/utils/sso.py,sha256=vjAuoYgoLeQAa_dkkyQ6-LmHvKMaVCxizNFpe5y3iUA,1145
835
- wagtail_enap_designsystem-1.2.1.128.dist-info/licenses/LICENSE,sha256=Btzdu2kIoMbdSp6OyCLupB1aRgpTCJ_szMimgEnpkkE,1056
836
- wagtail_enap_designsystem-1.2.1.128.dist-info/METADATA,sha256=wf60PBtUwXxUBvdyhglNU3pDovcCBjY7c-87Gbs5e0Y,3651
837
- wagtail_enap_designsystem-1.2.1.128.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
838
- wagtail_enap_designsystem-1.2.1.128.dist-info/top_level.txt,sha256=RSFgMASxoA-hVftm5i4Qd0rArlX4Dq08lLv5G4sYD-g,18
839
- wagtail_enap_designsystem-1.2.1.128.dist-info/RECORD,,
849
+ wagtail_enap_designsystem-1.2.1.130.dist-info/licenses/LICENSE,sha256=Btzdu2kIoMbdSp6OyCLupB1aRgpTCJ_szMimgEnpkkE,1056
850
+ wagtail_enap_designsystem-1.2.1.130.dist-info/METADATA,sha256=jctJFrgHFdHLG-kZPpTCUGVrX0Ooy2rpJqSalqYzQIk,3651
851
+ wagtail_enap_designsystem-1.2.1.130.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
852
+ wagtail_enap_designsystem-1.2.1.130.dist-info/top_level.txt,sha256=RSFgMASxoA-hVftm5i4Qd0rArlX4Dq08lLv5G4sYD-g,18
853
+ wagtail_enap_designsystem-1.2.1.130.dist-info/RECORD,,