diff options
author | 2019-10-11 13:00:45 -0700 | |
---|---|---|
committer | 2019-10-11 13:00:45 -0700 | |
commit | 7278f754b9080e1e0e51ad4477040346641785d8 (patch) | |
tree | f79cef7544facdbfb3abcdfe3183096a4fd8a7ac /pydis_site/apps/api/admin.py | |
parent | Merge pull request #269 from python-discord/migrate-nominations-to-nomination... (diff) | |
parent | Deny manual `LogEntry` creation. (diff) |
Merge pull request #281 from python-discord/simple-admin-log-entry-view
Allow viewing log entries in the Django Admin.
Diffstat (limited to 'pydis_site/apps/api/admin.py')
-rw-r--r-- | pydis_site/apps/api/admin.py | 55 |
1 files changed, 50 insertions, 5 deletions
diff --git a/pydis_site/apps/api/admin.py b/pydis_site/apps/api/admin.py index c3784317..059f52eb 100644 --- a/pydis_site/apps/api/admin.py +++ b/pydis_site/apps/api/admin.py @@ -1,18 +1,63 @@ +from typing import Optional + from django.contrib import admin +from django.http import HttpRequest from .models import ( - BotSetting, DeletedMessage, - DocumentationLink, Infraction, - MessageDeletionContext, Nomination, - OffTopicChannelName, Role, - Tag, User + BotSetting, + DeletedMessage, + DocumentationLink, + Infraction, + LogEntry, + MessageDeletionContext, + Nomination, + OffTopicChannelName, + Role, + Tag, + User ) +class LogEntryAdmin(admin.ModelAdmin): + """Allows viewing logs in the Django Admin without allowing edits.""" + + actions = None + list_display = ('timestamp', 'application', 'level', 'message') + fieldsets = ( + ('Overview', {'fields': ('timestamp', 'application', 'logger_name')}), + ('Metadata', {'fields': ('level', 'module', 'line')}), + ('Contents', {'fields': ('message',)}) + ) + list_filter = ('application', 'level', 'timestamp') + search_fields = ('message',) + readonly_fields = ( + 'application', + 'logger_name', + 'timestamp', + 'level', + 'module', + 'line', + 'message' + ) + + def has_add_permission(self, request: HttpRequest) -> bool: + """Deny manual LogEntry creation.""" + return False + + def has_delete_permission( + self, + request: HttpRequest, + obj: Optional[LogEntry] = None + ) -> bool: + """Deny LogEntry deletion.""" + return False + + admin.site.register(BotSetting) admin.site.register(DeletedMessage) admin.site.register(DocumentationLink) admin.site.register(Infraction) +admin.site.register(LogEntry, LogEntryAdmin) admin.site.register(MessageDeletionContext) admin.site.register(Nomination) admin.site.register(OffTopicChannelName) |