diff options
| -rw-r--r-- | pydis_site/apps/api/admin.py | 55 | ||||
| -rw-r--r-- | pydis_site/apps/api/migrations/0045_add_plural_name_for_log_entry.py | 17 | ||||
| -rw-r--r-- | pydis_site/apps/api/models/log_entry.py | 5 | ||||
| -rw-r--r-- | pydis_site/apps/api/tests/test_models.py | 3 | 
4 files changed, 74 insertions, 6 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) diff --git a/pydis_site/apps/api/migrations/0045_add_plural_name_for_log_entry.py b/pydis_site/apps/api/migrations/0045_add_plural_name_for_log_entry.py new file mode 100644 index 00000000..6b9933d8 --- /dev/null +++ b/pydis_site/apps/api/migrations/0045_add_plural_name_for_log_entry.py @@ -0,0 +1,17 @@ +# Generated by Django 2.2.3 on 2019-10-11 17:48 + +from django.db import migrations + + +class Migration(migrations.Migration): + +    dependencies = [ +        ('api', '0044_migrate_nominations_from_infraction_to_nomination_model'), +    ] + +    operations = [ +        migrations.AlterModelOptions( +            name='logentry', +            options={'verbose_name_plural': 'Log entries'}, +        ), +    ] diff --git a/pydis_site/apps/api/models/log_entry.py b/pydis_site/apps/api/models/log_entry.py index acd7953a..488af48e 100644 --- a/pydis_site/apps/api/models/log_entry.py +++ b/pydis_site/apps/api/models/log_entry.py @@ -48,3 +48,8 @@ class LogEntry(ModelReprMixin, models.Model):      message = models.TextField(          help_text="The textual content of the log line."      ) + +    class Meta: +        """Customizes the default generated plural name to valid English.""" + +        verbose_name_plural = 'Log entries' diff --git a/pydis_site/apps/api/tests/test_models.py b/pydis_site/apps/api/tests/test_models.py index aaf12045..bce76942 100644 --- a/pydis_site/apps/api/tests/test_models.py +++ b/pydis_site/apps/api/tests/test_models.py @@ -1,6 +1,7 @@ -from datetime import datetime as dt, timezone +from datetime import datetime as dt  from django.test import SimpleTestCase +from django.utils import timezone  from ..models import (      DeletedMessage, | 
