11from cms .admin_mixins import RelatedReadonlyFieldsMixin
22from cms .models import Page , Section , Sitemap
3+ from core .admin import BaseAbstractModelAdminMixin
34from django import forms
45from django .contrib import admin
56from django .utils .html import format_html
@@ -151,7 +152,7 @@ class Meta:
151152
152153
153154@admin .register (Sitemap )
154- class SitemapAdmin (RelatedReadonlyFieldsMixin , admin .ModelAdmin ):
155+ class SitemapAdmin (BaseAbstractModelAdminMixin , RelatedReadonlyFieldsMixin , admin .ModelAdmin ):
155156 fields = [
156157 "id" ,
157158 "parent_sitemap" ,
@@ -194,16 +195,20 @@ def get_fieldsets(self, request, obj=...):
194195 return original_fieldsets
195196
196197 def get_queryset (self , request ):
197- return super ().get_queryset (request ).select_related ("page" ). select_related ( "parent_sitemap" )
198+ return super ().get_queryset (request ).select_related ("page" , "parent_sitemap" )
198199
199200
200- class PageAdmin (admin .ModelAdmin ):
201- pass
201+ @admin .register (Page )
202+ class PageAdmin (BaseAbstractModelAdminMixin , admin .ModelAdmin ):
203+ fields = ["id" , "css" , "title" , "subtitle" ]
204+ readonly_fields = ["id" ]
205+ queryset = Page .objects .prefetch_related ("sections" )
202206
203207
204208@admin .register (Section )
205- class SectionAdmin (RelatedReadonlyFieldsMixin , admin .ModelAdmin ):
209+ class SectionAdmin (BaseAbstractModelAdminMixin , RelatedReadonlyFieldsMixin , admin .ModelAdmin ):
206210 form = SectionAdminForm
211+ queryset = Section .objects .select_related ("page" )
207212 fields = ["id" , "page" , "order" , "css" , "body" ]
208213 readonly_fields = ["id" ]
209214 related_readonly_config = {"page" : ["id" , "is_active" , "css" , "title" , "subtitle" ]}
@@ -221,9 +226,3 @@ def get_fieldsets(self, request, obj=...):
221226 )
222227 )
223228 return original_fieldsets
224-
225- def get_queryset (self , request ):
226- return super ().get_queryset (request ).select_related ("page" )
227-
228-
229- admin .site .register (Page )
0 commit comments