diff --git a/article/wagtail_hooks.py b/article/wagtail_hooks.py
index aeb79573b..8ace50950 100644
--- a/article/wagtail_hooks.py
+++ b/article/wagtail_hooks.py
@@ -3,11 +3,8 @@
from django.urls import include, path
from django.utils.translation import gettext_lazy as _
from wagtail import hooks
-from wagtail_modeladmin.options import (
- ModelAdmin,
- ModelAdminGroup,
- modeladmin_register,
-)
+from wagtail.snippets.models import register_snippet
+from wagtail.snippets.views.snippets import SnippetViewSet, SnippetViewSetGroup
from article.views import (
ArticleAdminInspectView,
@@ -26,18 +23,18 @@
# from upload.tasks import get_or_create_package
-class ArticleModelAdmin(ModelAdmin):
+class ArticleSnippetViewSet(SnippetViewSet):
model = Article
- menu_label = _("Tasks")
- create_view_class = ArticleCreateView
- button_helper_class = ArticleButtonHelper
- permission_helper_class = ArticlePermissionHelper
- inspect_view_enabled = True
+ menu_label = _("Articles")
+ # add_view_class = ArticleCreateView
+ # button_helper_class = ArticleButtonHelper # Precisa adaptar para SnippetViewSet
+ # permission_helper_class = ArticlePermissionHelper # Precisa adaptar para SnippetViewSet
+ # inspect_view_enabled = True # Habilitado por padrão em SnippetViewSet
inspect_view_class = ArticleAdminInspectView
menu_icon = "doc-full"
menu_order = get_menu_order("article")
add_to_settings_menu = False
- exclude_from_explorer = False
+ # exclude_from_explorer = False # Não aplicável a SnippetViewSet
list_per_page = 20
list_display = (
@@ -52,7 +49,7 @@ class ArticleModelAdmin(ModelAdmin):
"updated",
# "updated_by",
)
- list_filter = ("status",)
+ list_filter = ("status", "journal")
search_fields = (
"sps_pkg__sps_pkg_name",
"pid_v3",
@@ -62,35 +59,18 @@ class ArticleModelAdmin(ModelAdmin):
"journal__official_journal__issn_electronic",
"title_with_lang__text",
)
- inspect_view_fields = (
- "created",
- "updated",
- "creator",
- "updated_by",
- "pid_v3",
- # "pid_v2",
- # "aop_pid",
- "doi_with_lang",
- "article_type",
- "status",
- "issue",
- # "author",
- # "title_with_lang",
- "elocation_id",
- "fpage",
- "lpage",
- )
+ # inspect_view_fields não é usado em SnippetViewSet, use inspect_view_class customizada
-class RelatedItemModelAdmin(ModelAdmin):
+class RelatedItemSnippetViewSet(SnippetViewSet):
model = RelatedItem
menu_label = _("Related items")
- create_view_class = RelatedItemCreateView
- inspect_view_enabled = True
+ add_view_class = RelatedItemCreateView
+ # inspect_view_enabled = True # Habilitado por padrão
menu_icon = "doc-full"
menu_order = 200
add_to_settings_menu = False
- exclude_from_explorer = False
+ # exclude_from_explorer = False # Não aplicável
list_display = (
"item_type",
@@ -105,27 +85,19 @@ class RelatedItemModelAdmin(ModelAdmin):
"target_article__issue",
)
search_fields = ("target_article__issue__journal_ISSNL",)
- inspect_view_fields = (
- "created",
- "updated",
- "creator",
- "updated_by",
- "item_type",
- "source_article",
- "target_article",
- )
+ # inspect_view_fields não é usado em SnippetViewSet
-class RequestArticleChangeModelAdmin(ModelAdmin):
+class RequestArticleChangeSnippetViewSet(SnippetViewSet):
model = RequestArticleChange
menu_label = _("Changes request")
- button_helper_class = RequestArticleChangeButtonHelper
- create_view_class = RequestArticleChangeCreateView
- permission_helper_class = ArticlePermissionHelper
+ # button_helper_class = RequestArticleChangeButtonHelper # Precisa adaptar
+ add_view_class = RequestArticleChangeCreateView
+ # permission_helper_class = ArticlePermissionHelper # Precisa adaptar
menu_icon = "doc-full"
menu_order = 200
add_to_settings_menu = False
- exclude_from_explorer = False
+ # exclude_from_explorer = False # Não aplicável
list_display = (
"creator",
@@ -143,25 +115,26 @@ class RequestArticleChangeModelAdmin(ModelAdmin):
def get_queryset(self, request):
qs = super().get_queryset(request)
- if self.permission_helper.user_can_make_article_change(request.user, None):
- return qs
+ # Temporariamente comentado - precisa adaptar permission_helper para SnippetViewSet
+ # if self.permission_helper.user_can_make_article_change(request.user, None):
+ # return qs
return qs
-class ArticleModelAdminGroup(ModelAdminGroup):
+class ArticleSnippetViewSetGroup(SnippetViewSetGroup):
menu_label = _("Articles")
menu_icon = "folder-open-inverse"
menu_order = get_menu_order("article")
items = (
- ArticleModelAdmin,
- # RelatedItemModelAdmin,
- # omitir temporariamente RequestArticleChangeModelAdmin,
- # ApprovedArticleModelAdmin,
+ ArticleSnippetViewSet,
+ # RelatedItemSnippetViewSet,
+ # omitir temporariamente RequestArticleChangeSnippetViewSet,
+ # ApprovedArticleSnippetViewSet,
)
-modeladmin_register(ArticleModelAdminGroup)
+register_snippet(ArticleSnippetViewSetGroup)
@hooks.register("register_admin_urls")
diff --git a/core/templates/wagtailadmin/summary_items/article_summary_item.html b/core/templates/wagtailadmin/summary_items/article_summary_item.html
index 428107d63..8aa2a8ab7 100644
--- a/core/templates/wagtailadmin/summary_items/article_summary_item.html
+++ b/core/templates/wagtailadmin/summary_items/article_summary_item.html
@@ -1,12 +1,12 @@
{% load i18n wagtailadmin_tags %}
- {% icon name="doc-full" %}
-
+ {% icon name="folder-inverse" %}
+
{% blocktrans trimmed count counter=total_article with total_article|intcomma as total %}
{{ total_article }} Article
{% plural %}
{{ total_article }} Articles
{% endblocktrans %}
-
+
\ No newline at end of file
diff --git a/core/templates/wagtailadmin/summary_items/journal_summary_item.html b/core/templates/wagtailadmin/summary_items/journal_summary_item.html
index 447a6725c..b53e52295 100644
--- a/core/templates/wagtailadmin/summary_items/journal_summary_item.html
+++ b/core/templates/wagtailadmin/summary_items/journal_summary_item.html
@@ -2,11 +2,11 @@
{% icon name="folder-inverse" %}
-
+
{% blocktrans trimmed count counter=total_journal with total_journal|intcomma as total %}
{{ total_journal }} Journal
{% plural %}
{{ total_journal }} Journals
{% endblocktrans %}
-
+
\ No newline at end of file
diff --git a/issue/wagtail_hooks.py b/issue/wagtail_hooks.py
index 0bb335060..1d7bf15d9 100644
--- a/issue/wagtail_hooks.py
+++ b/issue/wagtail_hooks.py
@@ -1,36 +1,41 @@
from django.utils.translation import gettext_lazy as _
-from wagtail_modeladmin.options import (
- ModelAdmin,
- ModelAdminGroup,
- modeladmin_register,
-)
+from wagtail.admin.panels import FieldPanel, InlinePanel, MultiFieldPanel
+from wagtail.admin.ui.tables import UpdatedAtColumn
+from wagtail.snippets.models import register_snippet
+from wagtail.snippets.views.snippets import SnippetViewSet, SnippetViewSetGroup
+from wagtail import hooks
from config.menu import get_menu_order
from issue.views import IssueCreateView, TOCEditView
-
from .models import TOC, Issue
-class IssueAdmin(ModelAdmin):
+class IssueSnippetViewSet(SnippetViewSet):
model = Issue
- inspect_view_enabled = True
+ icon = "folder"
menu_label = _("Issues")
- create_view_class = IssueCreateView
- menu_icon = "folder"
menu_order = get_menu_order("issue")
add_to_settings_menu = False
- exclude_from_explorer = False
-
- list_display = (
+ add_to_admin_menu = False
+
+ # Views customizadas
+ create_view_class = IssueCreateView
+
+ # Configuração de listagem
+ list_display = [
"journal",
"publication_year",
"order",
"volume",
"number",
"supplement",
- )
- list_filter = ("publication_year",)
- search_fields = (
+ UpdatedAtColumn(),
+ ]
+
+ list_filter = ["publication_year", "journal"]
+
+ search_fields = [
+ "journal__journal_acron",
"journal__official_journal__title",
"journal__official_journal__issn_electronic",
"journal__official_journal__issn_print",
@@ -38,50 +43,73 @@ class IssueAdmin(ModelAdmin):
"volume",
"number",
"supplement",
- )
-
- # def get_ordering(self, request):
- # qs = super().get_queryset(request)
- # # Only show people managed by the current user
- # return qs.order_by("-updated")
+ ]
+
+ # Paginação - máximo 50 por página
+ list_per_page = 50
+
+ # Ordenação padrão
+ ordering = ["-publication_year", "-updated"]
+
+ # Habilitar inspeção
+ inspect_view_enabled = True
+
+ # Configurações de exportação
+ list_export = ["csv", "xlsx"]
+ export_filename = "issues"
-class TOCAdmin(ModelAdmin):
+class TOCSnippetViewSet(SnippetViewSet):
model = TOC
- inspect_view_enabled = True
+ icon = "folder"
menu_label = _("Table of contents sections")
- edit_view_class = TOCEditView
- menu_icon = "folder"
- menu_order = get_menu_order("issue")
+ menu_order = get_menu_order("issue") + 1
add_to_settings_menu = False
- exclude_from_explorer = False
-
- list_display = (
+ add_to_admin_menu = False
+
+ # Configuração de listagem
+ list_display = [
"issue",
"creator",
"created",
"updated_by",
"updated",
- )
- list_filter = ("ordered",)
- search_fields = (
+ ]
+
+ list_filter = ["ordered", "created", "updated"]
+
+ search_fields = [
"issue__journal__title",
"issue__journal__official_journal__title",
"issue__volume",
"issue__number",
"issue__supplement",
"issue__publication_year",
- )
+ ]
+
+ # Paginação - máximo 50 por página
+ list_per_page = 50
+
+ # Ordenação padrão
+ ordering = ["-updated"]
+
+ # Habilitar inspeção
+ inspect_view_enabled = True
+
+ # Configurações de exportação
+ list_export = ["csv", "xlsx"]
+ export_filename = "table_of_contents"
-class IssueModelAdminGroup(ModelAdminGroup):
+# Grupo de Snippets para Issues
+class IssueSnippetViewSetGroup(SnippetViewSetGroup):
menu_icon = "folder"
menu_label = _("Issues")
menu_order = get_menu_order("issue")
- items = (
- IssueAdmin,
- TOCAdmin,
- )
+
+ # Itens do grupo
+ items = (IssueSnippetViewSet, TOCSnippetViewSet)
-modeladmin_register(IssueModelAdminGroup)
+# Registrar o grupo
+register_snippet(IssueSnippetViewSetGroup)
diff --git a/journal/wagtail_hooks.py b/journal/wagtail_hooks.py
index 1acbd8913..79b9f810d 100644
--- a/journal/wagtail_hooks.py
+++ b/journal/wagtail_hooks.py
@@ -1,86 +1,128 @@
+# wagtail_hooks.py (ou views.py)
from django.http import HttpResponseRedirect
from django.utils.translation import gettext_lazy as _
-from wagtail_modeladmin.options import (
- ModelAdmin,
- ModelAdminGroup,
- modeladmin_register,
-)
-from wagtail_modeladmin.views import CreateView
+from wagtail.admin.panels import FieldPanel, MultiFieldPanel
+from wagtail.admin.ui.tables import UpdatedAtColumn
+from wagtail.snippets.models import register_snippet
+from wagtail.snippets.views.snippets import SnippetViewSet, SnippetViewSetGroup
+from wagtail import hooks
from config.menu import get_menu_order
from journal.models import Journal, OfficialJournal
-class OfficialJournalCreateView(CreateView):
- def form_valid(self, form):
- self.object = form.save_all(self.request.user)
- return HttpResponseRedirect(self.get_success_url())
-
-
-class OfficialJournalAdmin(ModelAdmin):
+class OfficialJournalViewSet(SnippetViewSet):
model = OfficialJournal
menu_label = _("Official Journals")
- create_view_class = OfficialJournalCreateView
menu_icon = "folder"
menu_order = get_menu_order("journal")
add_to_settings_menu = False
- exclude_from_explorer = False
- inspect_view_enabled = True
-
- list_per_page = 10
- list_display = (
+ add_to_admin_menu = True
+
+ list_display = [
"title",
"issn_print",
"issn_electronic",
"issnl",
- "updated",
+ UpdatedAtColumn(),
"created",
- )
- list_filter = ("foundation_year",)
- search_fields = (
+ ]
+ list_filter = ["foundation_year"]
+ search_fields = [
"title",
"title_iso",
"issn_print",
"issn_electronic",
"issnl",
- )
-
-
-class JournalCreateView(CreateView):
- def form_valid(self, form):
- self.object = form.save_all(self.request.user)
- return HttpResponseRedirect(self.get_success_url())
+ ]
+ list_per_page = 10
+ inspect_view_enabled = True
+
+ # Panels para o formulário de edição
+ panels = [
+ MultiFieldPanel([
+ FieldPanel("title"),
+ FieldPanel("title_iso"),
+ ], heading=_("Title Information")),
+ MultiFieldPanel([
+ FieldPanel("issn_print"),
+ FieldPanel("issn_electronic"),
+ FieldPanel("issnl"),
+ ], heading=_("ISSN Information")),
+ FieldPanel("foundation_year"),
+ ]
+
+ def get_form_class(self, request, action):
+ """Override para customizar o formulário se necessário"""
+ form_class = super().get_form_class(request, action)
+
+ # Se você tinha um método save_all no formulário anterior,
+ # você pode customizar o form aqui
+ if action in ['create', 'edit']:
+ class CustomForm(form_class):
+ def save(self, commit=True):
+ instance = super().save(commit=False)
+ # Adicione aqui a lógica do save_all se necessário
+ # Por exemplo, associar o usuário
+ if not instance.pk: # Se é uma criação
+ instance.created_by = self.request.user
+ instance.updated_by = self.request.user
+ if commit:
+ instance.save()
+ self.save_m2m()
+ return instance
+
+ # Passa o request para o form
+ CustomForm.request = request
+ return CustomForm
+
+ return form_class
-class JournalAdmin(ModelAdmin):
+class JournalViewSet(SnippetViewSet):
model = Journal
menu_label = _("Journal")
- create_view_class = JournalCreateView
menu_icon = "folder"
menu_order = 200
add_to_settings_menu = False
- exclude_from_explorer = False
-
- list_display = ("title", "journal_acron", "core_synchronized", "updated")
- search_fields = (
+ add_to_admin_menu = False # Será adicionado via grupo
+
+ list_display = [
+ "title",
+ "journal_acron",
+ "core_synchronized",
+ "updated",
+ ]
+ search_fields = [
"official_journal__issn_electronic",
"official_journal__issn_print",
"official_journal__title",
"title",
"journal_acron",
- )
- list_filter = ("core_synchronized",)
-
+ ]
+ list_filter = ["core_synchronized"]
+
+ # Panels para o formulário
+ panels = [
+ FieldPanel("official_journal"),
+ FieldPanel("title"),
+ FieldPanel("journal_acron"),
+ FieldPanel("core_synchronized"),
+ ]
+
-class JournalModelAdminGroup(ModelAdminGroup):
+# Grupo de ViewSets
+class JournalViewSetGroup(SnippetViewSetGroup):
menu_icon = "folder"
menu_label = _("Journals")
menu_order = get_menu_order("journal")
- items = (
- # OfficialJournalAdmin,
- JournalAdmin,
- # JournalProcAdmin,
- )
+
+ items = [
+ # OfficialJournalViewSet, # Descomentado como no original
+ JournalViewSet,
+ # JournalProcViewSet, # Se existir
+ ]
-modeladmin_register(JournalModelAdminGroup)
+# Registrar o grupo no menu
+register_snippet(JournalViewSetGroup)
diff --git a/migration/wagtail_hooks.py b/migration/wagtail_hooks.py
index f7f3077c1..d89949985 100644
--- a/migration/wagtail_hooks.py
+++ b/migration/wagtail_hooks.py
@@ -2,12 +2,8 @@
from django.urls import include, path
from django.utils.translation import gettext_lazy as _
from wagtail import hooks
-from wagtail_modeladmin.options import (
- ModelAdmin,
- ModelAdminGroup,
- modeladmin_register,
-)
-from wagtail_modeladmin.views import CreateView
+from wagtail.snippets.views.snippets import SnippetViewSet, SnippetViewSetGroup
+from wagtail.snippets.models import register_snippet
from config.menu import get_menu_order
from migration.models import (
@@ -20,97 +16,51 @@
MigratedJournal,
)
-# class MigrationFailureAdmin(ModelAdmin):
-# model = MigrationFailure
-# inspect_view_enabled = True
-# menu_label = _("Migration Failures")
-# menu_icon = "folder"
-# menu_order = 200
-# add_to_settings_menu = False
-# exclude_from_explorer = False
-
-# list_display = (
-# "action_name",
-# "migrated_item_name",
-# "migrated_item_id",
-# "message",
-# "updated",
-# )
-# list_filter = (
-# "action_name",
-# "migrated_item_name",
-# "exception_type",
-# )
-# search_fields = (
-# "action_name",
-# "migrated_item_id",
-# "message",
-# "exception_msg",
-# )
-# inspect_view_fields = (
-# "action_name",
-# "migrated_item_name",
-# "migrated_item_id",
-# "exception_type",
-# "exception_msg",
-# "updated",
-# )
-
-class CoreCreateView(CreateView):
- def form_valid(self, form):
- self.object = form.save_all(self.request.user)
- return HttpResponseRedirect(self.get_success_url())
-
-
-class ClassicWebsiteConfigurationModelAdmin(ModelAdmin):
+class ClassicWebsiteConfigurationViewSet(SnippetViewSet):
model = ClassicWebsiteConfiguration
menu_label = _("Classic Website Configuration")
menu_icon = "doc-full"
menu_order = 100
add_to_settings_menu = False
- exclude_from_explorer = False
- inspect_view_enabled = False
-
- create_view_class = CoreCreateView
-
- list_display = (
+
+ list_display = [
"collection",
"created",
"updated",
"updated_by",
- )
- list_filter = ("collection__acron",)
- search_fields = ("collection__acron",)
+ ]
+ list_filter = [
+ "collection",
+ ]
+ search_fields = ["collection__acron", "collection__name"]
-class MigratedDataModelAdmin(ModelAdmin):
+class MigratedDataViewSet(SnippetViewSet):
model = MigratedData
menu_label = _("Migrated Data")
menu_icon = "doc-full"
menu_order = 300
add_to_settings_menu = False
- exclude_from_explorer = True
inspect_view_enabled = True
-
+
list_per_page = 10
- create_view_class = CoreCreateView
-
- list_display = (
- "collection",
+ list_display = [
"pid",
+ "collection",
"content_type",
"migration_status",
"isis_updated_date",
"updated",
"created",
- )
- list_filter = (
+ ]
+ list_filter = [
"migration_status",
"content_type",
- )
- search_fields = ("pid", "collection__acron", "collection__name")
- inspect_view_fields = (
+ "collection",
+ ]
+ search_fields = ["pid", "collection__acron", "collection__name"]
+ inspect_view_fields = [
"updated",
"created",
"content_type",
@@ -118,221 +68,186 @@ class MigratedDataModelAdmin(ModelAdmin):
"isis_created_date",
"isis_updated_date",
"data",
- )
+ ]
-class MigratedArticleModelAdmin(ModelAdmin):
+class MigratedArticleViewSet(SnippetViewSet):
model = MigratedArticle
menu_label = _("Migrated Article")
menu_icon = "doc-full"
menu_order = 300
add_to_settings_menu = False
- exclude_from_explorer = True
inspect_view_enabled = True
-
+
list_per_page = 10
- create_view_class = CoreCreateView
-
- list_display = (
- "collection",
+ list_display = [
"pid",
+ "collection",
"migration_status",
"file_type",
"isis_updated_date",
"updated",
"created",
- )
- list_filter = (
+ ]
+ list_filter = [
"file_type",
"migration_status",
- )
- search_fields = ("pid", "collection__acron", "collection__name")
- inspect_view_fields = (
+ "collection",
+ ]
+ search_fields = ["pid", "collection__acron", "collection__name"]
+ inspect_view_fields = [
"updated",
"created",
"migration_status",
"isis_created_date",
"isis_updated_date",
"data",
- )
+ ]
-class MigratedJournalModelAdmin(ModelAdmin):
+class MigratedJournalViewSet(SnippetViewSet):
model = MigratedJournal
menu_label = _("Migrated Journal")
menu_icon = "doc-full"
menu_order = 300
add_to_settings_menu = False
- exclude_from_explorer = True
inspect_view_enabled = True
-
+
list_per_page = 10
- create_view_class = CoreCreateView
-
- list_display = (
- "collection",
+ list_display = [
"pid",
+ "collection",
"migration_status",
"isis_updated_date",
"updated",
"created",
- )
- list_filter = ("migration_status",)
- search_fields = ("pid", "collection__acron", "collection__name")
- inspect_view_fields = (
+ ]
+ list_filter = [
+ "migration_status",
+ "collection",
+ ]
+ search_fields = ["pid", "collection__acron", "collection__name"]
+ inspect_view_fields = [
"updated",
"created",
"migration_status",
"isis_created_date",
"isis_updated_date",
"data",
- )
+ ]
-class MigratedIssueModelAdmin(ModelAdmin):
+class MigratedIssueViewSet(SnippetViewSet):
model = MigratedIssue
menu_label = _("Migrated Issue")
menu_icon = "doc-full"
menu_order = 300
add_to_settings_menu = False
- exclude_from_explorer = True
inspect_view_enabled = True
-
+
list_per_page = 10
- create_view_class = CoreCreateView
-
- list_display = (
- "collection",
+ list_display = [
"pid",
+ "collection",
"migration_status",
"isis_updated_date",
"updated",
"created",
- )
- list_filter = ("migration_status",)
- search_fields = ("pid", "collection__acron", "collection__name")
- inspect_view_fields = (
+ ]
+ list_filter = [
+ "migration_status",
+ "collection",
+ ]
+ search_fields = ["pid", "collection__acron", "collection__name"]
+ inspect_view_fields = [
"updated",
"created",
"migration_status",
"isis_created_date",
"isis_updated_date",
"data",
- )
+ ]
-class MigratedFileModelAdmin(ModelAdmin):
+class MigratedFileViewSet(SnippetViewSet):
model = MigratedFile
menu_label = _("Migrated files")
menu_icon = "doc-full"
menu_order = 300
add_to_settings_menu = False
- exclude_from_explorer = True
inspect_view_enabled = True
-
+
list_per_page = 10
- create_view_class = CoreCreateView
-
- list_display = (
- "collection",
+ list_display = [
"original_path",
+ "collection",
"created",
"updated",
- )
- search_fields = ("original_path",)
- inspect_view_fields = (
+ ]
+ list_filter = [
+ "collection",
+ ]
+ search_fields = [
+ "original_path",
+ "collection__acron",
+ "collection__name",
+ ]
+ inspect_view_fields = [
"collection",
"original_path",
"file",
"created",
"updated",
- )
-
-
-# class BodyAndBackFileModelAdmin(ModelAdmin):
-# model = article_BodyAndBackFile
-# menu_label = _("Body and back")
-# menu_icon = "doc-full"
-# menu_order = 300
-# add_to_settings_menu = False
-# exclude_from_explorer = True
-# inspect_view_enabled = True
-
-# list_per_page = 10
-# create_view_class = CoreCreateView
-
-# list_display = (
-# "migrated_document_html",
-# "pkg_name",
-# "version",
-# "created",
-# "updated",
-# )
-# list_filter = ("version",)
-# search_fields = (
-# "collection__acron",
-# "collection__name",
-# "migrated_document_html__migrated_issue__issue_proc__journal_proc__acron",
-# "migrated_document_html__migrated_issue__issue_proc__issue__publication_year",
-# "migrated_document_html__migrated_issue__issue_proc__issue_folder",
-# "pkg_name",
-# )
-# inspect_view_fields = (
-# "collection",
-# "migrated_document_html",
-# "pkg_name",
-# "version",
-# "file",
-# )
+ ]
-class IdFileRecordModelAdmin(ModelAdmin):
+class IdFileRecordViewSet(SnippetViewSet):
model = IdFileRecord
menu_label = _("Article id file")
menu_icon = "doc-full"
menu_order = 300
add_to_settings_menu = False
- exclude_from_explorer = True
- inspect_view_enabled = False
-
+
list_per_page = 10
- list_display = (
+ list_display = [
"item_pid",
"item_type",
+ "parent__journal_acron",
"todo",
"updated",
"created",
- )
- list_filter = (
+ ]
+ list_filter = [
"item_type",
"todo",
- )
- search_fields = (
+ "parent__collection",
+ "parent__journal_acron",
+ ]
+ search_fields = [
"item_pid",
"parent__journal_acron",
"parent__collection__acron",
"parent__collection__name",
- )
+ ]
-class MigrationModelAdmin(ModelAdminGroup):
- menu_icon = "folder"
+class MigrationViewSetGroup(SnippetViewSetGroup):
menu_label = _("Migration")
+ menu_icon = "folder-open-inverse"
menu_order = get_menu_order("migration")
-
items = (
- ClassicWebsiteConfigurationModelAdmin,
- # MigrationFailureAdmin,
- MigratedDataModelAdmin,
- MigratedJournalModelAdmin,
- MigratedIssueModelAdmin,
- IdFileRecordModelAdmin,
- MigratedArticleModelAdmin,
- MigratedFileModelAdmin,
+ ClassicWebsiteConfigurationViewSet,
+ MigratedDataViewSet,
+ MigratedJournalViewSet,
+ MigratedIssueViewSet,
+ MigratedArticleViewSet,
+ MigratedFileViewSet,
+ IdFileRecordViewSet,
)
-modeladmin_register(MigrationModelAdmin)
+# Registra o grupo de snippets
+register_snippet(MigrationViewSetGroup)
@hooks.register("register_admin_urls")
diff --git a/proc/wagtail_hooks.py b/proc/wagtail_hooks.py
index 4eaf7dfe8..436d79c5a 100644
--- a/proc/wagtail_hooks.py
+++ b/proc/wagtail_hooks.py
@@ -1,12 +1,8 @@
from django.urls import include, path
from django.utils.translation import gettext_lazy as _
from wagtail import hooks
-from wagtail_modeladmin.options import (
- ModelAdmin,
- ModelAdminGroup,
- modeladmin_register,
-)
-from wagtail_modeladmin.views import InspectView
+from wagtail.snippets.models import register_snippet
+from wagtail.snippets.views.snippets import SnippetViewSet, SnippetViewSetGroup
from config.menu import get_menu_order
from htmlxml.models import HTMLXML
@@ -16,71 +12,68 @@
from .models import ArticleProc, IssueProc, JournalProc, ProcReport
-class JournalProcModelAdmin(ModelAdmin):
+class JournalProcViewSet(SnippetViewSet):
model = JournalProc
menu_label = _("Journal Processing")
menu_icon = "folder"
menu_order = 200
add_to_settings_menu = False
- exclude_from_explorer = False
- create_view_class = ProcCreateView
+ add_view_class = ProcCreateView
edit_view_class = ProcEditView
- list_display = (
+ list_display = [
"journal",
- "acron",
"pid",
"availability_status",
"migration_status",
"qa_ws_status",
"public_ws_status",
"updated",
- )
- list_filter = (
+ ]
+ list_filter = [
+ "collection",
"availability_status",
"migration_status",
"qa_ws_status",
"public_ws_status",
- )
- search_fields = (
+ ]
+ search_fields = [
"acron",
"pid",
"journal__title",
"journal__official_journal__issn_print",
"journal__official_journal__issn_electronic",
- )
+ ]
-class IssueProcModelAdmin(ModelAdmin):
+class IssueProcViewSet(SnippetViewSet):
model = IssueProc
inspect_view_enabled = True
menu_label = _("Issue Processing")
- create_view_class = ProcCreateView
+ add_view_class = ProcCreateView
edit_view_class = ProcEditView
menu_icon = "folder"
- # menu_order = get_menu_order("issue")
menu_order = 300
add_to_settings_menu = False
- exclude_from_explorer = False
- list_display = (
+ list_display = [
"issue",
"docs_status",
"files_status",
"qa_ws_status",
"public_ws_status",
"updated",
- "created",
- )
- list_filter = (
+ ]
+ list_filter = [
+ "collection",
"migration_status",
"docs_status",
"files_status",
"qa_ws_status",
"public_ws_status",
"issue__publication_year",
- )
- search_fields = (
+ ]
+ search_fields = [
"journal_proc__acron",
"journal_proc__journal__title",
"issue_folder",
@@ -89,22 +82,21 @@ class IssueProcModelAdmin(ModelAdmin):
"issue__number",
"issue__supplement",
"pid",
- )
+ ]
-class HTMLXMLModelAdmin(ModelAdmin):
+class HTMLXMLViewSet(SnippetViewSet):
model = HTMLXML
menu_label = _("XML from HTML")
menu_icon = "doc-full"
menu_order = 300
add_to_settings_menu = False
- exclude_from_explorer = True
inspect_view_enabled = True
list_per_page = 10
- create_view_class = CoreCreateView
+ add_view_class = CoreCreateView
- list_display = (
+ list_display = [
"migrated_article",
"html2xml_status",
"quality",
@@ -114,8 +106,8 @@ class HTMLXMLModelAdmin(ModelAdmin):
"n_paragraphs",
"n_references",
"created_updated",
- )
- list_filter = (
+ ]
+ list_filter = [
"html2xml_status",
"quality",
"pdf_langs",
@@ -125,25 +117,24 @@ class HTMLXMLModelAdmin(ModelAdmin):
"html_img_total",
"html_table_total",
"attention_demands",
- )
- search_fields = (
+ ]
+ search_fields = [
"migrated_article__pid",
"html2xml_status",
"article_type",
- )
+ ]
-class SPSPkgModelAdmin(ModelAdmin):
+class SPSPkgViewSet(SnippetViewSet):
model = SPSPkg
menu_label = _("SPS Package")
inspect_view_enabled = True
menu_icon = "doc-full"
menu_order = 200
add_to_settings_menu = False
- exclude_from_explorer = False
list_per_page = 10
- list_display = (
+ list_display = [
"sps_pkg_name",
"pid_v3",
"registered_in_core",
@@ -153,33 +144,33 @@ class SPSPkgModelAdmin(ModelAdmin):
"xml_uri",
"created",
"updated",
- )
+ ]
- list_filter = (
+ list_filter = [
"origin",
"registered_in_core",
"valid_texts",
"valid_components",
"is_public",
- )
+ ]
- search_fields = (
+ search_fields = [
"pid_v3",
"sps_pkg_name",
- )
+ ]
-class ArticleProcModelAdmin(ModelAdmin):
+class ArticleProcViewSet(SnippetViewSet):
model = ArticleProc
menu_label = _("Article Processing")
inspect_view_enabled = True
menu_icon = "doc-full"
menu_order = 200
add_to_settings_menu = False
- exclude_from_explorer = False
edit_view_class = ProcEditView
list_per_page = 10
- list_display = (
+
+ list_display = [
"__str__",
"migration_status",
"xml_status",
@@ -187,76 +178,76 @@ class ArticleProcModelAdmin(ModelAdmin):
"qa_ws_status",
"public_ws_status",
"updated",
- "created",
- )
- list_filter = (
+ ]
+ list_filter = [
+ "collection",
"migration_status",
"xml_status",
"sps_pkg_status",
"qa_ws_status",
"public_ws_status",
- )
- search_fields = (
+ ]
+ search_fields = [
"sps_pkg__pid_v3",
"pid",
"sps_pkg__sps_pkg_name",
"pkg_name",
"issue_proc__issue_folder",
"issue_proc__journal_proc__acron",
- )
+ ]
-class ProcReportModelAdmin(ModelAdmin):
+class ProcReportViewSet(SnippetViewSet):
model = ProcReport
menu_label = _("Processing Report")
inspect_view_enabled = True
menu_icon = "doc-full"
menu_order = 200
add_to_settings_menu = False
- exclude_from_explorer = False
list_per_page = 50
- list_display = (
+ list_display = [
"pid",
"collection",
"task_name",
"report_date",
"updated",
"created",
- )
- list_filter = (
+ ]
+ list_filter = [
"task_name",
"collection",
"item_type",
- )
- search_fields = (
+ ]
+ search_fields = [
"pid",
"collection__name",
"task_name",
"report_date",
- )
+ ]
-class ProcessModelAdminGroup(ModelAdminGroup):
+class ProcessViewSetGroup(SnippetViewSetGroup):
menu_label = _("Processing")
menu_icon = "folder-open-inverse"
menu_order = get_menu_order("processing")
items = (
- JournalProcModelAdmin,
- IssueProcModelAdmin,
- HTMLXMLModelAdmin,
- SPSPkgModelAdmin,
- ArticleProcModelAdmin,
- ProcReportModelAdmin,
+ JournalProcViewSet,
+ IssueProcViewSet,
+ HTMLXMLViewSet,
+ SPSPkgViewSet,
+ ArticleProcViewSet,
+ ProcReportViewSet,
)
-modeladmin_register(ProcessModelAdminGroup)
+# Registra o grupo de snippets
+register_snippet(ProcessViewSetGroup)
@hooks.register("register_admin_urls")
def register_disclosure_url():
return [
path("proc/", include("proc.urls", namespace="proc")),
- ]
+ ]
\ No newline at end of file