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