Skip to content

Commit e481700

Browse files
authored
feat: inline paginated tables and columns / optimizations of @property (#836)
1. Paginação Inline no Django Admin `tables` e `columns` Agora é possível paginar os inlines no Django Admin, o que melhora significativamente a usabilidade e a performance de páginas com grandes quantidades de objetos relacionados. 2. Otimizações em Propriedades Computadas Utilização de `cached_property` quando aplicável, reduzindo consultas redundantes.
1 parent 4bb0b82 commit e481700

File tree

5 files changed

+264
-75
lines changed

5 files changed

+264
-75
lines changed

backend/apps/api/v1/admin.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
from django.shortcuts import render
1313
from django.urls import reverse
1414
from django.utils.html import format_html
15+
from django_admin_inline_paginator_plus.admin import StackedInlinePaginated
1516
from modeltranslation.admin import TabbedTranslationAdmin, TranslationStackedInline
1617
from ordered_model.admin import OrderedInlineModelAdminMixin, OrderedStackedInline
1718

@@ -98,16 +99,20 @@ class MeasurementUnitInline(OrderedTranslatedInline):
9899
show_change_link = True
99100

100101

101-
class ColumnInline(OrderedTranslatedInline):
102+
class ColumnInline(OrderedStackedInline, StackedInlinePaginated):
102103
model = Column
103104
form = ColumnInlineForm
104105
extra = 0
105106
show_change_link = True
106107
show_full_result_count = True
108+
109+
per_page = 20
110+
107111
fields = ColumnInlineForm.Meta.fields + [
108112
"order",
109113
"move_up_down_links",
110114
]
115+
111116
readonly_fields = [
112117
"order",
113118
"move_up_down_links",
@@ -198,10 +203,11 @@ def has_change_permission(self, request, obj=None):
198203
return False
199204

200205

201-
class TableInline(OrderedTranslatedInline):
206+
class TableInline(OrderedStackedInline, StackedInlinePaginated):
202207
model = Table
203208
form = TableInlineForm
204209
extra = 0
210+
per_page = 5
205211
show_change_link = True
206212
fields = [
207213
"order",

0 commit comments

Comments
 (0)