from django.contrib import admin from django.contrib.admin.models import LogEntry, DELETION from django.utils.html import escape from django.utils.safestring import mark_safe from django.urls import reverse from snippets.models import * #LogEntry @admin.register(LogEntry) class LogEntryAdmin(admin.ModelAdmin): # to have a date-based drilldown navigation in the admin page date_hierarchy = "action_time" # to filter the resultes by users, content types and action flags list_filter = ["user", "content_type", "action_flag"] # when searching the user will be able to search in both object_repr and change_message search_fields = ["object_repr", "change_message"] list_display = [ "action_time", "user", "content_type", "action_flag", "object_link", ] def has_add_permission(self, request): return False def has_change_permission(self, request, obj=None): return False def has_delete_permission(self, request, obj=None): return False def has_view_permission(self, request, obj=None): return request.user.is_staff def object_link(self, obj): if obj.action_flag == DELETION: link = escape(obj.object_repr) else: ct = obj.content_type link = '%s' % ( reverse( "admin:%s_%s_change" % (ct.app_label, ct.model), args=[obj.object_id], ), escape(obj.object_repr), ) return mark_safe(link) object_link.admin_order_field = "object_repr" object_link.short_description = "object" @admin.register(Snippet) class SnippetAdmin(admin.ModelAdmin): date_hierarchy = "created" ordering= ['-created'] # add hyperlinked highlighted view and # possibly code preview js magic list_filter = ('owner', 'language', 'style') list_display = ['id', 'title', 'owner', 'created', 'language'] search_fields = ['owner', 'title', 'language'] # @admin.register) # class SnippetAdmin(admin.ModelAdmin): # pass