wagtail-enap-designsystem 1.2.1.152__py3-none-any.whl → 1.2.1.153__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.
@@ -533,17 +533,13 @@ class NewsCarouselBlock(BaseBlock):
533
533
  indexer = value["indexed_by"].specific
534
534
  num_posts = value["num_posts"]
535
535
 
536
- # ========================================
537
- # NOVA LÓGICA COM DESTAQUE FIXO
538
- # ========================================
539
-
540
536
  # Import dinâmico para evitar imports circulares
541
537
  try:
542
538
  from django.apps import apps
543
539
  ENAPNoticia = apps.get_model('enap_designsystem', 'ENAPNoticia')
544
540
  except (ImportError, LookupError):
545
- # Se não encontrar a classe, usar lógica original
546
- pages = indexer.get_children().live().order_by("-first_published_at")[:50]
541
+ # Se não encontrar a classe, usar lógica original OTIMIZADA
542
+ pages = indexer.get_children().live().select_related('content_type').order_by("-first_published_at")[:50]
547
543
 
548
544
  def get_page_date(page):
549
545
  return getattr(page.specific, "date_display", None) or page.first_published_at.date()
@@ -552,31 +548,37 @@ class NewsCarouselBlock(BaseBlock):
552
548
  context["pages"] = pages_final
553
549
  return context
554
550
 
555
- # Pegar todas as páginas filhas que são notícias
556
- all_children = indexer.get_children().live()
551
+
552
+ all_children = indexer.get_children().live().select_related('content_type')[:20]
557
553
  enap_noticias = []
558
554
  outras_pages = []
555
+ noticias_ids = set() # Usar set para busca O(1)
559
556
 
560
557
  for page in all_children:
561
558
  if isinstance(page.specific, ENAPNoticia):
562
559
  enap_noticias.append(page.specific)
560
+ noticias_ids.add(page.specific.id)
563
561
  else:
564
562
  outras_pages.append(page)
565
563
 
566
- # Se temos notícias ENAP, usar o sistema de destaque
567
- if enap_noticias:
568
- # Filtrar apenas as notícias que são filhas da página indexadora
569
- noticias_ids = [noticia.id for noticia in enap_noticias]
570
-
564
+
565
+ if enap_noticias:
571
566
  # Ordenar TODAS as notícias por data primeiro
572
567
  def get_page_date(page):
573
568
  return getattr(page, "date_display", None) or page.first_published_at.date()
574
569
 
575
570
  todas_noticias_ordenadas = sorted(enap_noticias, key=get_page_date, reverse=True)
576
571
 
577
- # Pegar a notícia em destaque (se estiver entre as filhas)
578
- destaque = ENAPNoticia.get_noticia_destaque()
579
- if destaque and destaque.id in noticias_ids:
572
+ # Pegar a notícia em destaque (se estiver entre as filhas) COM PROTEÇÃO
573
+ destaque = None
574
+ try:
575
+ destaque_temp = ENAPNoticia.get_noticia_destaque()
576
+ if destaque_temp and destaque_temp.id in noticias_ids:
577
+ destaque = destaque_temp
578
+ except Exception:
579
+ destaque = None
580
+
581
+ if destaque:
580
582
  # Remove o destaque da lista ordenada
581
583
  noticias_sem_destaque = [n for n in todas_noticias_ordenadas if n.id != destaque.id]
582
584
 
@@ -587,8 +589,7 @@ class NewsCarouselBlock(BaseBlock):
587
589
  pages_final = todas_noticias_ordenadas[:num_posts]
588
590
 
589
591
  else:
590
- # Não são notícias ENAP, usar lógica original
591
- pages = indexer.get_children().live().order_by("-first_published_at")[:50]
592
+ pages = indexer.get_children().live().select_related('content_type').order_by("-first_published_at")[:50]
592
593
 
593
594
  def get_page_date(page):
594
595
  return getattr(page.specific, "date_display", None) or page.first_published_at.date()
@@ -1298,6 +1298,11 @@ class MenuNavigationBlock(blocks.StructBlock):
1298
1298
  help_text="Imagem de logo da esquerda"
1299
1299
  )
1300
1300
 
1301
+ logo_url = blocks.URLBlock(
1302
+ required=False,
1303
+ help_text="Link ao clicar na logo"
1304
+ )
1305
+
1301
1306
  cor_fundo = blocks.CharBlock(
1302
1307
  default='#132929',
1303
1308
  help_text="Cor de fundo do menu"
@@ -2212,7 +2212,7 @@ class EnapSearchElastic(Page):
2212
2212
  # Caso 3: nenhum dos dois — define None ou imagem default
2213
2213
  else:
2214
2214
  if tipo == "noticias":
2215
- item["imagem"] = "/static/enap_designsystem/icons/thumb-noticias.png"
2215
+ item["imagem"] = "/static/enap_designsystem/icons/thumb-noticias-novo.png"
2216
2216
  else:
2217
2217
  item["imagem"] = None # ou: "/static/enap_designsystem/icons/280-140-default.png"
2218
2218
 
@@ -2254,7 +2254,7 @@ class EnapSearchElastic(Page):
2254
2254
  "_url_filter": "url",
2255
2255
  "_data_atualizacao_filter": "data_atualizacao",
2256
2256
  "last_published_at_filter": "data_publicacao",
2257
- "enap_designsystem_enapnoticiaimportada__imagem_filter":"imagem"
2257
+ "_imagem_filter":"imagem"
2258
2258
  }
2259
2259
 
2260
2260
  # Inicializa o dicionário resultante
@@ -63,37 +63,37 @@
63
63
  </div>
64
64
  <div class="tab">
65
65
  <a class="tabbusca tab-btn {% if tipo == 'cursos' %}active{% endif %} tabcursos"
66
- href="?q={{ query }}&tipo=cursos{% if ordenacao %}&ordenacao={{ ordenacao }}{% else %}&ordenacao=recentes{% endif %}">
66
+ href="?q={{ query }}&tipo=cursos&ordenacao=relevantes">
67
67
  Cursos
68
68
  <span class="tab-count">{{ tabs_totais.cursos }}</span>
69
69
  </a>
70
70
 
71
71
  <a class="tabbusca tab-btn {% if tipo == 'servicos' %}active{% endif %} tabservicos"
72
- href="?q={{ query }}&tipo=servicos{% if ordenacao %}&ordenacao={{ ordenacao }}{% else %}&ordenacao=recentes{% endif %}">
72
+ href="?q={{ query }}&tipo=servicos&ordenacao=relevantes">
73
73
  Serviços
74
74
  <span class="tab-count">{{ tabs_totais.servicos }}</span>
75
75
  </a>
76
76
 
77
77
  <a class="tabbusca tab-btn {% if tipo == 'noticias' %}active{% endif %} tabnoticiais"
78
- href="?q={{ query }}&tipo=noticias{% if ordenacao %}&ordenacao={{ ordenacao }}{% else %}&ordenacao=recentes{% endif %}">
78
+ href="?q={{ query }}&tipo=noticias&ordenacao=recentes">
79
79
  Notícias
80
80
  <span class="tab-count">{{ tabs_totais.noticias }}</span>
81
81
  </a>
82
82
 
83
83
  <a class="tabbusca tab-btn {% if tipo == 'eventos' %}active{% endif %} tabeventos"
84
- href="?q={{ query }}&tipo=eventos{% if ordenacao %}&ordenacao={{ ordenacao }}{% else %}&ordenacao=recentes{% endif %}">
84
+ href="?q={{ query }}&tipo=eventos&ordenacao=recentes">
85
85
  Eventos e Oficinas
86
86
  <span class="tab-count">{{ tabs_totais.eventos }}</span>
87
87
  </a>
88
88
 
89
89
  <a class="tabbusca tab-btn {% if tipo == 'pesquisa_conhecimento' %}active{% endif %} tabpesquisa"
90
- href="?q={{ query }}&tipo=pesquisa_conhecimento{% if ordenacao %}&ordenacao={{ ordenacao }}{% else %}&ordenacao=recentes{% endif %}">
90
+ href="?q={{ query }}&tipo=pesquisa_conhecimento&ordenacao=relevantes">
91
91
  Pesquisa e Conhecimento
92
92
  <span class="tab-count">{{ tabs_totais.pesquisa_conhecimento }}</span>
93
93
  </a>
94
94
 
95
95
  <a class="tabbusca tab-btn {% if tipo == 'todos' %}active{% endif %} tabtodos"
96
- href="?q={{ query }}&tipo=todos{% if ordenacao %}&ordenacao={{ ordenacao }}{% else %}&ordenacao=recentes{% endif %}">
96
+ href="?q={{ query }}&tipo=todos&ordenacao=relevantes">
97
97
  Todos
98
98
  <span class="tab-count">{{ tabs_totais.todos }}</span>
99
99
  </a>
@@ -15,7 +15,7 @@
15
15
  <div class="container-fluid_semana">
16
16
  <!-- Logo -->
17
17
  {% if value.logo %}
18
- <a class="navbar-brand" href="/">
18
+ <a class="navbar-brand" href="{{ value.logo_url}}">
19
19
  {% image value.logo original %}
20
20
  </a>
21
21
  {% endif %}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: wagtail-enap-designsystem
3
- Version: 1.2.1.152
3
+ Version: 1.2.1.153
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,7 +1,7 @@
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=ooXzfb2EnzczH4H2M-uz__97u8yKHc3LOJUu0LfxREE,1475
4
- enap_designsystem/models.py,sha256=DOAtJPp3DhWEX062jxSgxUvt-QBh8FxRWWcZCG9dj2o,183014
4
+ enap_designsystem/models.py,sha256=h_XLS4Er2nGxL8UvLOzoPd8oDsFX7xjfGAfwzMJ99xU,182980
5
5
  enap_designsystem/settings.py,sha256=gCkWCK4QZlD8i82G8v7aHhKz954KFkY6xdhKNw9CCpw,993
6
6
  enap_designsystem/signals.py,sha256=oaHpZms4Dkc97ql-55Q0QxU7-45jwg2Y1XoRDOJ45tc,1978
7
7
  enap_designsystem/urls.py,sha256=EJ52w-55BysQU5pTZR4ltMtZM7aSKyjZdnQDGFipDXY,2219
@@ -12,10 +12,10 @@ enap_designsystem/blocks/base_blocks.py,sha256=ZuqVWn4PEAvD3pKM1ST7wjo4lwv98ooen
12
12
  enap_designsystem/blocks/chatbot_blocks.py,sha256=YeCznrXMbFa9MP9vjdTYl53ZhKsywkGOXvFK2bwcqW0,1133
13
13
  enap_designsystem/blocks/content_blocks.py,sha256=HGUCTiQ12E__VDAz2L-OBFaX3PLf5zSx9x6cDEGtOss,16582
14
14
  enap_designsystem/blocks/form.py,sha256=oK0Lswd1nIH0bLTdBL_XF_1LbNPixEYr5FJWj8DAxHY,88782
15
- enap_designsystem/blocks/html_blocks.py,sha256=d-dPWPPdeejvs0rsuctWsc6l4ql1XNyTUcuFdqX7SYA,260769
15
+ enap_designsystem/blocks/html_blocks.py,sha256=byqtpSGFFFxUjlnRA52cSzn3LXOGZ98ie4zyWztMbAU,260741
16
16
  enap_designsystem/blocks/layout_blocks.py,sha256=gKmpWPAcw_cXFb4m3lgKB1drhIUnGAnS7m_gmQXxLG0,24248
17
17
  enap_designsystem/blocks/security.py,sha256=QA7lmQ_eQ6iopunatl_DrHkEegAwMZJGwXunRulbCjk,2099
18
- enap_designsystem/blocks/semana_blocks.py,sha256=FyqtZuLf2hPNqryUe4CAcjmGUY-5812dFWxVQ1ohhiw,70836
18
+ enap_designsystem/blocks/semana_blocks.py,sha256=A-IJwtu0aeEnefcJO31pn7xxXjBiOgVQjl97Iw6mAnE,70946
19
19
  enap_designsystem/blocks/semana_inovacao.py,sha256=ZKjXzvs_RbLzv3nxsnmVxcAWORlpFIr9C7_aMb8rZRs,47037
20
20
  enap_designsystem/middleware/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
21
21
  enap_designsystem/middleware/aluno_sso.py,sha256=baitPngI34eKwHKaku-5JIbDAnXpEHPvRFTs9AY1K6o,542
@@ -592,6 +592,7 @@ enap_designsystem/static/enap_designsystem/icons/logobranca.svg,sha256=U5Y_APE0b
592
592
  enap_designsystem/static/enap_designsystem/icons/png-transparent-wagtail-full-logo-tech-companies.png,sha256=Cfl8NFNdZKFZ9nCBwL4qjYW-rGpiEPXfeKgGSGXzGd4,9697
593
593
  enap_designsystem/static/enap_designsystem/icons/sss.png,sha256=lbhcvOkzcZw78OjIkiOagA1vzaPiLVgiwL_Nq-0Lm_A,1430556
594
594
  enap_designsystem/static/enap_designsystem/icons/ssssss.png,sha256=NE1ZqkHnPw9kYswlP1Dlt_xM5GEJmRahzoENwa1dNHQ,2847992
595
+ enap_designsystem/static/enap_designsystem/icons/thumb-noticias-novo.png,sha256=UvxSbSAH4-UParJRo6efIH2y3R6tW0fCjhSsnvSRl-Y,328474
595
596
  enap_designsystem/static/enap_designsystem/icons/thumb-noticias.png,sha256=JHZqMZzvnG0v5HcVRhNUl771vFbX4vG6QDd8F0GBu44,3315
596
597
  enap_designsystem/static/enap_designsystem/icons/twitter.svg,sha256=9DjgekC0UbONjHczq9TAUIFrEnUxAc9IlzA2nXm1NB0,934
597
598
  enap_designsystem/static/enap_designsystem/icons/youtube.svg,sha256=-hM5o3lfTqEvQeIKIoB_Yl0aCJ732riAUJH4ucAgrAw,790
@@ -804,7 +805,7 @@ enap_designsystem/templates/enap_designsystem/pages/durante_evento.html,sha256=c
804
805
  enap_designsystem/templates/enap_designsystem/pages/enap_layout.html,sha256=JqS4oXQrNLQaPc4HMYRmZu8LlevuRUl_Hyf2d8XMugM,1961
805
806
  enap_designsystem/templates/enap_designsystem/pages/enap_layout_semana.html,sha256=nZV71dI5MiM2CC6vbcKAX2H0fuqBsz2jvSOwtODEluU,1969
806
807
  enap_designsystem/templates/enap_designsystem/pages/mba_especializacao.html,sha256=GwurtlZ6OsvRAz_LcBQ0zr9ez20tplyiDPTCtuMLGuM,6331
807
- enap_designsystem/templates/enap_designsystem/pages/page_search.html,sha256=vWK4j-8uZtacfk9YMk01Mylkpgao3H6JYf8C6FsjDow,50850
808
+ enap_designsystem/templates/enap_designsystem/pages/page_search.html,sha256=i4trtyJGdxPPiWy0FzpQqv1Eo_Cs6BSxU4MMFOLS6rg,50468
808
809
  enap_designsystem/templates/enap_designsystem/pages/pagepreview_block.html,sha256=RBqtL0rphuSh5Bi4XPPtXlGUf_zyWFPZY3xwJb8hhZM,235
809
810
  enap_designsystem/templates/enap_designsystem/pages/pos_evento.html,sha256=BWRdoOJuTPWetwQeTfkygvpMVSMQqBG8QK_AbHKBqKw,3273
810
811
  enap_designsystem/templates/enap_designsystem/pages/pre_evento.html,sha256=aLLqMoW4cnu7NFZ57D5Lq3B_cwbHAPmp3p1f7blYiOs,3806
@@ -841,7 +842,7 @@ enap_designsystem/templates/enap_designsystem/semana_inovacao/block_secao_contat
841
842
  enap_designsystem/templates/enap_designsystem/semana_inovacao/block_secao_faq.html,sha256=HCa77ye5LISBQG1A_qFCBfsVFeFvdScLEzOUIf1DNuU,2534
842
843
  enap_designsystem/templates/enap_designsystem/semana_inovacao/block_secao_premios.html,sha256=OM6PCL5Ub0OKFPo1gsoUZARE1_9LdQFYFIBgXKIjfM8,4863
843
844
  enap_designsystem/templates/enap_designsystem/semana_inovacao/block_testemunhos.html,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
844
- enap_designsystem/templates/enap_designsystem/semana_inovacao/blocks_menu_navigation.html,sha256=CyULm95CqmtwXUEg3GeWL3uL3jeoDbEOK_sJ-f9C-wY,4645
845
+ enap_designsystem/templates/enap_designsystem/semana_inovacao/blocks_menu_navigation.html,sha256=Wkh72siDu2OB2860mFeCKWLCKGe5KQ4yBBTxp3HS37Q,4663
845
846
  enap_designsystem/templates/enap_designsystem/semana_inovacao/certificado_block.html,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
846
847
  enap_designsystem/templates/enap_designsystem/semana_inovacao/certificado_imagem_block.html,sha256=unIel1koGOyCjyYOqf-bBFD1f-i0_i01892ueBX1T98,211
847
848
  enap_designsystem/templates/enap_designsystem/semana_inovacao/concurso_inovacao.html,sha256=bR1N3HizUgG9JS0yyH_IBDFfk2QEKjCjRJ2NUxAy-Fw,3235
@@ -881,8 +882,8 @@ enap_designsystem/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG
881
882
  enap_designsystem/utils/decorators.py,sha256=aq6SbLn0LcH2rfE3ZFit8jkD7pSx9fLVBUUwVB747hg,335
882
883
  enap_designsystem/utils/services.py,sha256=6dG5jLSbwH49jpZV9ZNpWlaZqI49gTlwlr1vaerxdiU,5824
883
884
  enap_designsystem/utils/sso.py,sha256=vjAuoYgoLeQAa_dkkyQ6-LmHvKMaVCxizNFpe5y3iUA,1145
884
- wagtail_enap_designsystem-1.2.1.152.dist-info/licenses/LICENSE,sha256=Btzdu2kIoMbdSp6OyCLupB1aRgpTCJ_szMimgEnpkkE,1056
885
- wagtail_enap_designsystem-1.2.1.152.dist-info/METADATA,sha256=tWvUGS7cVn1MMOpIW_5PhwfpgnIICOoRVUieEVPOtrw,3651
886
- wagtail_enap_designsystem-1.2.1.152.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
887
- wagtail_enap_designsystem-1.2.1.152.dist-info/top_level.txt,sha256=RSFgMASxoA-hVftm5i4Qd0rArlX4Dq08lLv5G4sYD-g,18
888
- wagtail_enap_designsystem-1.2.1.152.dist-info/RECORD,,
885
+ wagtail_enap_designsystem-1.2.1.153.dist-info/licenses/LICENSE,sha256=Btzdu2kIoMbdSp6OyCLupB1aRgpTCJ_szMimgEnpkkE,1056
886
+ wagtail_enap_designsystem-1.2.1.153.dist-info/METADATA,sha256=radoIAIQaml8OosFYNAKajURD1s0G8fBTkwivcxEhow,3651
887
+ wagtail_enap_designsystem-1.2.1.153.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
888
+ wagtail_enap_designsystem-1.2.1.153.dist-info/top_level.txt,sha256=RSFgMASxoA-hVftm5i4Qd0rArlX4Dq08lLv5G4sYD-g,18
889
+ wagtail_enap_designsystem-1.2.1.153.dist-info/RECORD,,