Skip to content

Commit fbb1032

Browse files
rhavermjsir911
authored andcommitted
Collating snippets into derivable class
1 parent 8e06dc0 commit fbb1032

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, get_user_model
88
from django.core.exceptions import PermissionDenied
99
from django.shortcuts import get_object_or_404, render
@@ -285,35 +285,38 @@ def enforce_history_permissions(self):
285285
)
286286

287287

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

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

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

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

0 commit comments

Comments
 (0)