Skip to content

Commit 38cf427

Browse files
rhavermjsir911
authored andcommitted
Collating snippets into derivable class
1 parent 26c16b9 commit 38cf427

File tree

1 file changed

+17
-14
lines changed

1 file changed

+17
-14
lines changed

simple_history/admin.py

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from django.conf import settings
44
from django.contrib import admin
55
from django.contrib.admin import helpers
6-
from django.contrib.admin.utils import unquote
6+
from django.contrib.admin.utils import quote, unquote
77
from django.contrib.auth import get_permission_codename
88
from django.core.exceptions import PermissionDenied
99
from django.shortcuts import get_object_or_404, render
@@ -286,35 +286,38 @@ def enforce_history_permissions(self):
286286
)
287287

288288

289-
class SimpleHistoryShowDeletedFilter(admin.SimpleListFilter):
290-
title = "Entries"
291-
parameter_name = "entries"
289+
class SimpleHistoryWithDeletedAdmin(SimpleHistoryAdmin):
290+
class SimpleHistoryShowDeletedFilter(admin.SimpleListFilter):
291+
title = "Entries"
292+
parameter_name = "entries"
292293

293-
def lookups(self, request, model_admin):
294-
return (("deleted_only", "Only Deleted"),)
294+
def lookups(self, request, model_admin):
295+
return (("deleted_only", "Only Deleted"),)
295296

296-
def queryset(self, request, queryset):
297-
if self.value():
298-
return queryset.model.history.filter(history_type="-").distinct()
299-
return queryset
297+
def queryset(self, request, queryset):
298+
if self.value():
299+
return queryset.model.history.filter(history_type="-").distinct()
300+
return queryset
300301

301-
302-
class YourModelAdmin(SimpleHistoryAdmin):
303302
def get_changelist(self, request, **kwargs):
304303
def url_from_result_maker(history=False):
305304
def custom_url_for_result(self, result):
306305
pk = getattr(result, self.pk_attname)
307-
from django.urls import reverse
308-
from django.contrib.admin.utils import quote
309306
route_type = 'history' if history else 'change'
310307
route = f'{self.opts.app_label}_{self.opts.model_name}_{route_type}'
311308
return reverse(f'admin:{route}',
312309
args=(quote(pk),),
313310
current_app=self.model_admin.admin_site.name)
314311
return custom_url_for_result
312+
315313
changelist = super().get_changelist(request, **kwargs)
316314
if request.GET.get('entries', None) == 'deleted_only':
317315
changelist.url_for_result = url_from_result_maker(history=True)
318316
else:
319317
changelist.url_for_result = url_from_result_maker(history=False)
320318
return changelist
319+
320+
def get_list_filter(self, request):
321+
return [self.SimpleHistoryShowDeletedFilter] + [
322+
f for f in super().get_list_filter(request)
323+
]

0 commit comments

Comments
 (0)