1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
from typing import Optional
from django.contrib import admin
from django.http import HttpRequest
from .models import (
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)
admin.site.register(Role)
admin.site.register(Tag)
admin.site.register(User)
|