Skip to content

Commit 37753a2

Browse files
Merge pull request #756 from robertatakenaka/adiciona_filtros_na_area_admin_dos_procs
Adiciona filtros na area admin dos procs
2 parents 04c80b9 + d268987 commit 37753a2

7 files changed

Lines changed: 345 additions & 396 deletions

File tree

article/wagtail_hooks.py

Lines changed: 30 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,8 @@
33
from django.urls import include, path
44
from django.utils.translation import gettext_lazy as _
55
from wagtail import hooks
6-
from wagtail_modeladmin.options import (
7-
ModelAdmin,
8-
ModelAdminGroup,
9-
modeladmin_register,
10-
)
6+
from wagtail.snippets.models import register_snippet
7+
from wagtail.snippets.views.snippets import SnippetViewSet, SnippetViewSetGroup
118

129
from article.views import (
1310
ArticleAdminInspectView,
@@ -26,18 +23,18 @@
2623
# from upload.tasks import get_or_create_package
2724

2825

29-
class ArticleModelAdmin(ModelAdmin):
26+
class ArticleSnippetViewSet(SnippetViewSet):
3027
model = Article
31-
menu_label = _("Tasks")
32-
create_view_class = ArticleCreateView
33-
button_helper_class = ArticleButtonHelper
34-
permission_helper_class = ArticlePermissionHelper
35-
inspect_view_enabled = True
28+
menu_label = _("Articles")
29+
# add_view_class = ArticleCreateView
30+
# button_helper_class = ArticleButtonHelper # Precisa adaptar para SnippetViewSet
31+
# permission_helper_class = ArticlePermissionHelper # Precisa adaptar para SnippetViewSet
32+
# inspect_view_enabled = True # Habilitado por padrão em SnippetViewSet
3633
inspect_view_class = ArticleAdminInspectView
3734
menu_icon = "doc-full"
3835
menu_order = get_menu_order("article")
3936
add_to_settings_menu = False
40-
exclude_from_explorer = False
37+
# exclude_from_explorer = False # Não aplicável a SnippetViewSet
4138
list_per_page = 20
4239

4340
list_display = (
@@ -52,7 +49,7 @@ class ArticleModelAdmin(ModelAdmin):
5249
"updated",
5350
# "updated_by",
5451
)
55-
list_filter = ("status",)
52+
list_filter = ("status", "journal")
5653
search_fields = (
5754
"sps_pkg__sps_pkg_name",
5855
"pid_v3",
@@ -62,35 +59,18 @@ class ArticleModelAdmin(ModelAdmin):
6259
"journal__official_journal__issn_electronic",
6360
"title_with_lang__text",
6461
)
65-
inspect_view_fields = (
66-
"created",
67-
"updated",
68-
"creator",
69-
"updated_by",
70-
"pid_v3",
71-
# "pid_v2",
72-
# "aop_pid",
73-
"doi_with_lang",
74-
"article_type",
75-
"status",
76-
"issue",
77-
# "author",
78-
# "title_with_lang",
79-
"elocation_id",
80-
"fpage",
81-
"lpage",
82-
)
62+
# inspect_view_fields não é usado em SnippetViewSet, use inspect_view_class customizada
8363

8464

85-
class RelatedItemModelAdmin(ModelAdmin):
65+
class RelatedItemSnippetViewSet(SnippetViewSet):
8666
model = RelatedItem
8767
menu_label = _("Related items")
88-
create_view_class = RelatedItemCreateView
89-
inspect_view_enabled = True
68+
add_view_class = RelatedItemCreateView
69+
# inspect_view_enabled = True # Habilitado por padrão
9070
menu_icon = "doc-full"
9171
menu_order = 200
9272
add_to_settings_menu = False
93-
exclude_from_explorer = False
73+
# exclude_from_explorer = False # Não aplicável
9474

9575
list_display = (
9676
"item_type",
@@ -105,27 +85,19 @@ class RelatedItemModelAdmin(ModelAdmin):
10585
"target_article__issue",
10686
)
10787
search_fields = ("target_article__issue__journal_ISSNL",)
108-
inspect_view_fields = (
109-
"created",
110-
"updated",
111-
"creator",
112-
"updated_by",
113-
"item_type",
114-
"source_article",
115-
"target_article",
116-
)
88+
# inspect_view_fields não é usado em SnippetViewSet
11789

11890

119-
class RequestArticleChangeModelAdmin(ModelAdmin):
91+
class RequestArticleChangeSnippetViewSet(SnippetViewSet):
12092
model = RequestArticleChange
12193
menu_label = _("Changes request")
122-
button_helper_class = RequestArticleChangeButtonHelper
123-
create_view_class = RequestArticleChangeCreateView
124-
permission_helper_class = ArticlePermissionHelper
94+
# button_helper_class = RequestArticleChangeButtonHelper # Precisa adaptar
95+
add_view_class = RequestArticleChangeCreateView
96+
# permission_helper_class = ArticlePermissionHelper # Precisa adaptar
12597
menu_icon = "doc-full"
12698
menu_order = 200
12799
add_to_settings_menu = False
128-
exclude_from_explorer = False
100+
# exclude_from_explorer = False # Não aplicável
129101

130102
list_display = (
131103
"creator",
@@ -143,25 +115,26 @@ class RequestArticleChangeModelAdmin(ModelAdmin):
143115
def get_queryset(self, request):
144116
qs = super().get_queryset(request)
145117

146-
if self.permission_helper.user_can_make_article_change(request.user, None):
147-
return qs
118+
# Temporariamente comentado - precisa adaptar permission_helper para SnippetViewSet
119+
# if self.permission_helper.user_can_make_article_change(request.user, None):
120+
# return qs
148121

149122
return qs
150123

151124

152-
class ArticleModelAdminGroup(ModelAdminGroup):
125+
class ArticleSnippetViewSetGroup(SnippetViewSetGroup):
153126
menu_label = _("Articles")
154127
menu_icon = "folder-open-inverse"
155128
menu_order = get_menu_order("article")
156129
items = (
157-
ArticleModelAdmin,
158-
# RelatedItemModelAdmin,
159-
# omitir temporariamente RequestArticleChangeModelAdmin,
160-
# ApprovedArticleModelAdmin,
130+
ArticleSnippetViewSet,
131+
# RelatedItemSnippetViewSet,
132+
# omitir temporariamente RequestArticleChangeSnippetViewSet,
133+
# ApprovedArticleSnippetViewSet,
161134
)
162135

163136

164-
modeladmin_register(ArticleModelAdminGroup)
137+
register_snippet(ArticleSnippetViewSetGroup)
165138

166139

167140
@hooks.register("register_admin_urls")
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
{% load i18n wagtailadmin_tags %}
22

33
<li>
4-
{% icon name="doc-full" %}
5-
<a href="{% url 'article_article_modeladmin_index' %}">
4+
{% icon name="folder-inverse" %}
5+
<a href="{% url 'wagtailsnippets_article_article:list' %}">
66
{% blocktrans trimmed count counter=total_article with total_article|intcomma as total %}
77
<span>{{ total_article }}</span> Article
88
{% plural %}
99
<span>{{ total_article }}</span> Articles
1010
{% endblocktrans %}
1111
</a>
12-
</li>
12+
</li>

core/templates/wagtailadmin/summary_items/journal_summary_item.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22

33
<li>
44
{% icon name="folder-inverse" %}
5-
<a href="{% url 'journal_journal_modeladmin_index' %}">
5+
<a href="{% url 'wagtailsnippets_journal_journal:list' %}">
66
{% blocktrans trimmed count counter=total_journal with total_journal|intcomma as total %}
77
<span>{{ total_journal }}</span> Journal
88
{% plural %}
99
<span>{{ total_journal }}</span> Journals
1010
{% endblocktrans %}
1111
</a>
12-
</li>
12+
</li>

issue/wagtail_hooks.py

Lines changed: 68 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,87 +1,115 @@
11
from django.utils.translation import gettext_lazy as _
2-
from wagtail_modeladmin.options import (
3-
ModelAdmin,
4-
ModelAdminGroup,
5-
modeladmin_register,
6-
)
2+
from wagtail.admin.panels import FieldPanel, InlinePanel, MultiFieldPanel
3+
from wagtail.admin.ui.tables import UpdatedAtColumn
4+
from wagtail.snippets.models import register_snippet
5+
from wagtail.snippets.views.snippets import SnippetViewSet, SnippetViewSetGroup
6+
from wagtail import hooks
77

88
from config.menu import get_menu_order
99
from issue.views import IssueCreateView, TOCEditView
10-
1110
from .models import TOC, Issue
1211

1312

14-
class IssueAdmin(ModelAdmin):
13+
class IssueSnippetViewSet(SnippetViewSet):
1514
model = Issue
16-
inspect_view_enabled = True
15+
icon = "folder"
1716
menu_label = _("Issues")
18-
create_view_class = IssueCreateView
19-
menu_icon = "folder"
2017
menu_order = get_menu_order("issue")
2118
add_to_settings_menu = False
22-
exclude_from_explorer = False
23-
24-
list_display = (
19+
add_to_admin_menu = False
20+
21+
# Views customizadas
22+
create_view_class = IssueCreateView
23+
24+
# Configuração de listagem
25+
list_display = [
2526
"journal",
2627
"publication_year",
2728
"order",
2829
"volume",
2930
"number",
3031
"supplement",
31-
)
32-
list_filter = ("publication_year",)
33-
search_fields = (
32+
UpdatedAtColumn(),
33+
]
34+
35+
list_filter = ["publication_year", "journal"]
36+
37+
search_fields = [
38+
"journal__journal_acron",
3439
"journal__official_journal__title",
3540
"journal__official_journal__issn_electronic",
3641
"journal__official_journal__issn_print",
3742
"publication_year",
3843
"volume",
3944
"number",
4045
"supplement",
41-
)
42-
43-
# def get_ordering(self, request):
44-
# qs = super().get_queryset(request)
45-
# # Only show people managed by the current user
46-
# return qs.order_by("-updated")
46+
]
47+
48+
# Paginação - máximo 50 por página
49+
list_per_page = 50
50+
51+
# Ordenação padrão
52+
ordering = ["-publication_year", "-updated"]
53+
54+
# Habilitar inspeção
55+
inspect_view_enabled = True
56+
57+
# Configurações de exportação
58+
list_export = ["csv", "xlsx"]
59+
export_filename = "issues"
4760

4861

49-
class TOCAdmin(ModelAdmin):
62+
class TOCSnippetViewSet(SnippetViewSet):
5063
model = TOC
51-
inspect_view_enabled = True
64+
icon = "folder"
5265
menu_label = _("Table of contents sections")
53-
edit_view_class = TOCEditView
54-
menu_icon = "folder"
55-
menu_order = get_menu_order("issue")
66+
menu_order = get_menu_order("issue") + 1
5667
add_to_settings_menu = False
57-
exclude_from_explorer = False
58-
59-
list_display = (
68+
add_to_admin_menu = False
69+
70+
# Configuração de listagem
71+
list_display = [
6072
"issue",
6173
"creator",
6274
"created",
6375
"updated_by",
6476
"updated",
65-
)
66-
list_filter = ("ordered",)
67-
search_fields = (
77+
]
78+
79+
list_filter = ["ordered", "created", "updated"]
80+
81+
search_fields = [
6882
"issue__journal__title",
6983
"issue__journal__official_journal__title",
7084
"issue__volume",
7185
"issue__number",
7286
"issue__supplement",
7387
"issue__publication_year",
74-
)
88+
]
89+
90+
# Paginação - máximo 50 por página
91+
list_per_page = 50
92+
93+
# Ordenação padrão
94+
ordering = ["-updated"]
95+
96+
# Habilitar inspeção
97+
inspect_view_enabled = True
98+
99+
# Configurações de exportação
100+
list_export = ["csv", "xlsx"]
101+
export_filename = "table_of_contents"
75102

76103

77-
class IssueModelAdminGroup(ModelAdminGroup):
104+
# Grupo de Snippets para Issues
105+
class IssueSnippetViewSetGroup(SnippetViewSetGroup):
78106
menu_icon = "folder"
79107
menu_label = _("Issues")
80108
menu_order = get_menu_order("issue")
81-
items = (
82-
IssueAdmin,
83-
TOCAdmin,
84-
)
109+
110+
# Itens do grupo
111+
items = (IssueSnippetViewSet, TOCSnippetViewSet)
85112

86113

87-
modeladmin_register(IssueModelAdminGroup)
114+
# Registrar o grupo
115+
register_snippet(IssueSnippetViewSetGroup)

0 commit comments

Comments
 (0)