|
@@ -96,6 +96,13 @@ class SnapshotAdmin(SearchResultsAdminMixin, admin.ModelAdmin):
|
|
|
actions_template = 'admin/actions_as_select.html'
|
|
actions_template = 'admin/actions_as_select.html'
|
|
|
form = SnapshotAdminForm
|
|
form = SnapshotAdminForm
|
|
|
|
|
|
|
|
|
|
+ def get_urls(self):
|
|
|
|
|
+ urls = super().get_urls()
|
|
|
|
|
+ custom_urls = [
|
|
|
|
|
+ path('grid/', self.admin_site.admin_view(self.grid_view),name='grid')
|
|
|
|
|
+ ]
|
|
|
|
|
+ return custom_urls + urls
|
|
|
|
|
+
|
|
|
def get_queryset(self, request):
|
|
def get_queryset(self, request):
|
|
|
return super().get_queryset(request).prefetch_related('tags')
|
|
return super().get_queryset(request).prefetch_related('tags')
|
|
|
|
|
|
|
@@ -153,6 +160,31 @@ class SnapshotAdmin(SearchResultsAdminMixin, admin.ModelAdmin):
|
|
|
obj.url.split('://www.', 1)[-1].split('://', 1)[-1][:64],
|
|
obj.url.split('://www.', 1)[-1].split('://', 1)[-1][:64],
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
|
|
+ def grid_view(self, request):
|
|
|
|
|
+
|
|
|
|
|
+ # cl = self.get_changelist_instance(request)
|
|
|
|
|
+
|
|
|
|
|
+ # Save before monkey patching to restore for changelist list view
|
|
|
|
|
+ saved_change_list_template = self.change_list_template
|
|
|
|
|
+ saved_list_per_page = self.list_per_page
|
|
|
|
|
+ saved_list_max_show_all = self.list_max_show_all
|
|
|
|
|
+
|
|
|
|
|
+ # Monkey patch here plus core_tags.py
|
|
|
|
|
+ self.change_list_template = 'admin/grid_change_list.html'
|
|
|
|
|
+ self.list_per_page = 20
|
|
|
|
|
+ self.list_max_show_all = self.list_per_page
|
|
|
|
|
+
|
|
|
|
|
+ # Call monkey patched view
|
|
|
|
|
+ rendered_response = self.changelist_view(request)
|
|
|
|
|
+
|
|
|
|
|
+ # Restore values
|
|
|
|
|
+ self.change_list_template = saved_change_list_template
|
|
|
|
|
+ self.list_per_page = saved_list_per_page
|
|
|
|
|
+ self.list_max_show_all = saved_list_max_show_all
|
|
|
|
|
+
|
|
|
|
|
+ return rendered_response
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
id_str.short_description = 'ID'
|
|
id_str.short_description = 'ID'
|
|
|
title_str.short_description = 'Title'
|
|
title_str.short_description = 'Title'
|
|
|
url_str.short_description = 'Original URL'
|
|
url_str.short_description = 'Original URL'
|
|
@@ -218,7 +250,6 @@ class ArchiveBoxAdmin(admin.AdminSite):
|
|
|
|
|
|
|
|
return render(template_name='add_links.html', request=request, context=context)
|
|
return render(template_name='add_links.html', request=request, context=context)
|
|
|
|
|
|
|
|
-
|
|
|
|
|
admin.site = ArchiveBoxAdmin()
|
|
admin.site = ArchiveBoxAdmin()
|
|
|
admin.site.register(get_user_model())
|
|
admin.site.register(get_user_model())
|
|
|
admin.site.register(Snapshot, SnapshotAdmin)
|
|
admin.site.register(Snapshot, SnapshotAdmin)
|