diff --git a/config/menu.py b/config/menu.py
index 80d992c..04b4fda 100644
--- a/config/menu.py
+++ b/config/menu.py
@@ -1,7 +1,7 @@
WAGTAIL_MENU_APPS_ORDER = [
+ "sps_package_validation",
"markup_doc",
- "xml_manager",
- "reference",
+ "scielo",
"tracker",
"model_ai",
"django_celery_beat",
diff --git a/core/wagtail_hooks.py b/core/wagtail_hooks.py
index 385612f..df63ea1 100644
--- a/core/wagtail_hooks.py
+++ b/core/wagtail_hooks.py
@@ -1,6 +1,10 @@
import os
from django.db.models.signals import pre_save
+from django.urls import reverse
+from django.utils.translation import gettext_lazy as _
+from wagtail import hooks
+from wagtail.admin.menu import Menu, MenuItem, SubmenuMenuItem
from wagtail.images import get_image_model
@@ -14,3 +18,70 @@ def ensure_image_title(sender, instance, **kwargs):
pre_save.connect(ensure_image_title, sender=get_image_model())
+
+
+@hooks.register("construct_main_menu")
+def group_wagtail_cms_menu_items(request, menu_items):
+ cms_item_names = {"explorer", "images", "documents", "xml_sps"}
+ menu_items[:] = [item for item in menu_items if item.name not in cms_item_names]
+ cms_menu = Menu(
+ items=[
+ MenuItem(
+ _("Páginas"),
+ reverse("wagtailadmin_explore_root"),
+ name="cms_pages",
+ icon_name="doc-empty-inverse",
+ order=100,
+ ),
+ MenuItem(
+ _("Imagens"),
+ reverse("wagtailimages:index"),
+ name="cms_images",
+ icon_name="image",
+ order=200,
+ ),
+ MenuItem(
+ _("Documentos"),
+ reverse("wagtaildocs:index"),
+ name="cms_documents",
+ icon_name="doc-full-inverse",
+ order=300,
+ ),
+ ]
+ )
+ menu_items.append(
+ SubmenuMenuItem(
+ _("Wagtail CMS"),
+ cms_menu,
+ icon_name="folder-open-inverse",
+ name="wagtail_cms",
+ order=800,
+ )
+ )
+ settings_index = next(
+ (index for index, item in enumerate(menu_items) if item.name == "settings"),
+ None,
+ )
+ report_index = next(
+ (index for index, item in enumerate(menu_items) if item.name == "reports"),
+ None,
+ )
+ if settings_index is not None and report_index is not None:
+ reports_item = menu_items.pop(report_index)
+ if report_index < settings_index:
+ settings_index -= 1
+ menu_items.insert(settings_index + 1, reports_item)
+
+
+@hooks.register("construct_help_menu")
+def replace_help_menu_items(request, help_menu_items):
+ help_menu_items[:] = [
+ MenuItem(
+ _("Wiki do projeto"),
+ "https://github.com/scieloorg/markapi/wiki",
+ name="project_wiki",
+ icon_name="link-external",
+ attrs={"target": "_blank", "rel": "noopener noreferrer"},
+ order=100,
+ )
+ ]
diff --git a/core_settings/static/core_settings/css/admin_logo.css b/core_settings/static/core_settings/css/admin_logo.css
index ed825d5..3b39249 100644
--- a/core_settings/static/core_settings/css/admin_logo.css
+++ b/core_settings/static/core_settings/css/admin_logo.css
@@ -1,12 +1,12 @@
.custom-admin-logo {
display: block;
- max-height: 2.5rem;
+ max-height: 4rem;
max-width: 100%;
width: auto;
height: auto;
}
.custom-admin-logo--login {
- max-height: 4rem;
+ max-height: 5rem;
margin: 0 auto;
}
diff --git a/core_settings/static/core_settings/img/favicon.ico b/core_settings/static/core_settings/img/favicon.ico
new file mode 100644
index 0000000..409a122
Binary files /dev/null and b/core_settings/static/core_settings/img/favicon.ico differ
diff --git a/core_settings/wagtail_hooks.py b/core_settings/wagtail_hooks.py
index 04b82de..4afa96c 100644
--- a/core_settings/wagtail_hooks.py
+++ b/core_settings/wagtail_hooks.py
@@ -6,6 +6,7 @@
@hooks.register("insert_global_admin_css")
def admin_logo_css():
return format_html(
- '',
+ '',
static("core_settings/css/admin_logo.css"),
+ static("core_settings/img/favicon.ico"),
)
diff --git a/django_celery_beat/wagtail_hooks.py b/django_celery_beat/wagtail_hooks.py
index 429a804..6fa0c62 100644
--- a/django_celery_beat/wagtail_hooks.py
+++ b/django_celery_beat/wagtail_hooks.py
@@ -190,6 +190,8 @@ class TasksModelsAdminGroup(ModelAdminGroup):
menu_label = _("Tarefas agendadas")
menu_icon = "time"
menu_order = get_menu_order("django_celery_beat")
+ add_to_admin_menu = False
+ add_to_settings_menu = True
items = (
PeriodicTaskAdmin,
CrontabScheduleAdmin,
diff --git a/markup_doc/wagtail_hooks.py b/markup_doc/wagtail_hooks.py
index 6ecb304..4eb729b 100644
--- a/markup_doc/wagtail_hooks.py
+++ b/markup_doc/wagtail_hooks.py
@@ -7,7 +7,6 @@
from django.utils.translation import gettext_lazy as _
from wagtail import hooks
from wagtail.admin import messages
-from wagtail_modeladmin.options import ModelAdmin
from wagtail.snippets.models import register_snippet
from wagtail.snippets.views.snippets import (
CreateView,
@@ -15,6 +14,7 @@
SnippetViewSet,
SnippetViewSetGroup,
)
+from wagtail_modeladmin.options import ModelAdmin
from config.menu import get_menu_order
from markup_doc import views
@@ -25,10 +25,13 @@
ProcessStatus,
UploadDocx,
)
-
-from markup_doc import views
from markup_doc.sync_api import sync_collection_from_api
from markup_doc.tasks import get_labels, task_sync_journals_from_api, update_xml
+from reference.wagtail_hooks import ReferenceModelViewSet
+from xml_manager.wagtail_hooks import (
+ XMLDocumentHTMLSnippetViewSet,
+ XMLDocumentPDFSnippetViewSet,
+)
@hooks.register("register_admin_urls")
@@ -181,17 +184,39 @@ def index_view(self, request):
return response
+class XMLSPSSnippetViewSetGroup(SnippetViewSetGroup):
+ menu_name = "xml_sps"
+ menu_label = _("XML SPS")
+ menu_icon = "code"
+ items = (
+ MarkupXMLViewSet,
+ XMLDocumentPDFSnippetViewSet,
+ XMLDocumentHTMLSnippetViewSet,
+ ReferenceModelViewSet,
+ )
+
+
+class ScieloSnippetViewSetGroup(SnippetViewSetGroup):
+ menu_name = "scielo"
+ menu_label = _("SciELO")
+ menu_icon = "folder-open-inverse"
+ menu_order = get_menu_order("scielo")
+ items = (
+ CollectionModelViewSet,
+ JournalModelViewSet,
+ )
+
+
class MarkupSnippetViewSetGroup(SnippetViewSetGroup):
menu_name = "markup_doc"
- menu_label = _("Marcação editorial")
+ menu_label = _("Marcação")
menu_icon = "edit"
menu_order = get_menu_order("markup_doc")
items = (
- CollectionModelViewSet,
- JournalModelViewSet,
UploadDocxViewSet,
- MarkupXMLViewSet,
+ XMLSPSSnippetViewSetGroup,
)
+register_snippet(ScieloSnippetViewSetGroup)
register_snippet(MarkupSnippetViewSetGroup)
diff --git a/model_ai/wagtail_hooks.py b/model_ai/wagtail_hooks.py
index f0476c3..0200ccf 100644
--- a/model_ai/wagtail_hooks.py
+++ b/model_ai/wagtail_hooks.py
@@ -92,7 +92,8 @@ class LlamaModelViewSet(SnippetViewSet):
menu_icon = "cog"
menu_order = get_menu_order("model_ai")
exclude_from_explorer = False
- add_to_admin_menu = True
+ add_to_admin_menu = False
+ add_to_settings_menu = True
list_per_page = 20
list_display = ("display_name_model", "get_download_status_display")
diff --git a/reference/wagtail_hooks.py b/reference/wagtail_hooks.py
index 1f770fb..872c34f 100644
--- a/reference/wagtail_hooks.py
+++ b/reference/wagtail_hooks.py
@@ -1,7 +1,6 @@
# Third-party imports
from django.http import HttpResponseRedirect
from django.utils.translation import gettext_lazy as _
-from wagtail.snippets.models import register_snippet
from wagtail.snippets.views.snippets import CreateView, SnippetViewSet
# Local application imports
@@ -41,7 +40,4 @@ class ReferenceModelViewSet(SnippetViewSet):
menu_order = get_menu_order("reference")
exclude_from_explorer = False
list_per_page = 20
- add_to_admin_menu = True
-
-
-register_snippet(ReferenceModelViewSet)
+ add_to_admin_menu = False
diff --git a/tracker/wagtail_hooks.py b/tracker/wagtail_hooks.py
index fbca31e..0e366e8 100644
--- a/tracker/wagtail_hooks.py
+++ b/tracker/wagtail_hooks.py
@@ -78,6 +78,8 @@ class EventModelAdminGroup(ModelAdminGroup):
menu_icon = "history"
menu_label = _("Rastreio de eventos")
menu_order = get_menu_order("tracker")
+ add_to_admin_menu = False
+ add_to_settings_menu = True
items = (GeneralEventModelAdmin, XMLDocumentEventModelAdmin)
diff --git a/xml_manager/wagtail_hooks.py b/xml_manager/wagtail_hooks.py
index 9406bca..cc484f0 100644
--- a/xml_manager/wagtail_hooks.py
+++ b/xml_manager/wagtail_hooks.py
@@ -10,12 +10,7 @@
from wagtail.admin.ui.tables import Column
from wagtail.admin.widgets.button import Button
from wagtail.snippets.models import register_snippet
-from wagtail.snippets.views.snippets import (
- CreateView,
- EditView,
- SnippetViewSet,
- SnippetViewSetGroup,
-)
+from wagtail.snippets.views.snippets import CreateView, EditView, SnippetViewSet
from config.menu import get_menu_order
@@ -161,7 +156,7 @@ class XMLDocumentPDFSnippetViewSet(SnippetViewSet):
verbose_name_plural = _("XML Document PDFs")
icon = "doc-full"
menu_name = "xml_manager"
- menu_label = _("PDF derivados")
+ menu_label = _("PDFs derivados")
menu_icon = "doc-full"
add_to_admin_menu = False
@@ -182,7 +177,7 @@ class XMLDocumentHTMLSnippetViewSet(SnippetViewSet):
verbose_name_plural = _("XML Document HTMLs")
icon = "doc-full"
menu_name = "xml_manager"
- menu_label = _("HTML derivados")
+ menu_label = _("HTMLs derivados")
menu_icon = "doc-full-inverse"
add_to_admin_menu = False
@@ -202,12 +197,13 @@ class SPSPackageValidationSnippetViewSet(SnippetViewSet):
edit_view_class = SPSPackageValidationEditView
copy_view_enabled = False
verbose_name = _("SPS package validation")
- verbose_name_plural = _("Validar pacote SPS")
+ verbose_name_plural = _("Validar SPS")
icon = "sps-package-validation"
menu_name = "sps_package_validation"
- menu_label = _("Validar pacote SPS")
+ menu_label = _("Validar SPS")
menu_icon = "sps-package-validation"
- add_to_admin_menu = False
+ add_to_admin_menu = True
+ menu_order = get_menu_order("sps_package_validation")
list_display = (
"__str__",
@@ -224,20 +220,7 @@ class SPSPackageValidationSnippetViewSet(SnippetViewSet):
search_fields = ("package_document__title",)
-class XMLDocumentSnippetViewSetGroup(SnippetViewSetGroup):
- menu_name = "xml_manager"
- menu_label = _("Gestão de XML")
- menu_icon = "code"
- menu_order = get_menu_order("xml_manager")
- items = (
- XMLDocumentSnippetViewSet,
- XMLDocumentPDFSnippetViewSet,
- XMLDocumentHTMLSnippetViewSet,
- SPSPackageValidationSnippetViewSet,
- )
-
-
-register_snippet(XMLDocumentSnippetViewSetGroup)
+register_snippet(SPSPackageValidationSnippetViewSet)
@hooks.register("register_icons")