Skip to content

Commit

Permalink
fix(logs): allow longer paths
Browse files Browse the repository at this point in the history
  • Loading branch information
alanzhu0 committed Jul 26, 2023
1 parent 5e34130 commit b5bfbb7
Show file tree
Hide file tree
Showing 6 changed files with 69 additions and 6 deletions.
1 change: 1 addition & 0 deletions Ion.egg-info/SOURCES.txt
Original file line number Diff line number Diff line change
Expand Up @@ -705,6 +705,7 @@ intranet/apps/logs/migrations/0003_request_request.py
intranet/apps/logs/migrations/0004_alter_request_request.py
intranet/apps/logs/migrations/0005_alter_request_request.py
intranet/apps/logs/migrations/0006_request_method.py
intranet/apps/logs/migrations/0007_auto_20230726_1112.py
intranet/apps/logs/migrations/__init__.py
intranet/apps/lostfound/__init__.py
intranet/apps/lostfound/admin.py
Expand Down
28 changes: 26 additions & 2 deletions intranet/apps/logs/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,43 @@
from django.contrib import admin
from django.shortcuts import redirect, render
from django.urls import reverse
from django.utils.translation import gettext_lazy

from .forms import FlagRequestForm
from .models import Request

logger = logging.getLogger(__name__)


class TruncatedPathFilter(admin.SimpleListFilter):
title = "path"
parameter_name = "path"

def lookups(self, request, model_admin):
paths = model_admin.model.objects.order_by("path").values_list("path", flat=True).distinct()
truncated_paths = {path if len(path) < 40 else path[:40] + "..." for path in paths}
truncated_paths = sorted(truncated_paths)
return zip(truncated_paths, gettext_lazy(truncated_paths))

def queryset(self, request, queryset):
if self.value():
if self.value().endswith("..."):
return queryset.filter(path__startswith=self.value()[:-3])
return queryset.filter(path=self.value())
return queryset


class RequestAdmin(admin.ModelAdmin):
def truncated_path(self):
return self.path[:80] + "..." if len(self.path) > 80 else self.path # pylint: disable=no-member

truncated_path.short_description = "Path"

list_display = (
"timestamp",
"ip",
"user",
"path",
truncated_path,
"method",
"flag",
# "user_agent"
Expand All @@ -25,7 +49,7 @@ class RequestAdmin(admin.ModelAdmin):
"flag",
"timestamp",
"method",
"path",
TruncatedPathFilter,
"user",
"ip",
"user_agent",
Expand Down
33 changes: 33 additions & 0 deletions intranet/apps/logs/migrations/0007_auto_20230726_1112.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Generated by Django 3.2.18 on 2023-07-26 15:12

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('logs', '0006_request_method'),
]

operations = [
migrations.AlterField(
model_name='request',
name='ip',
field=models.TextField(verbose_name='IP address'),
),
migrations.AlterField(
model_name='request',
name='method',
field=models.TextField(blank=True, null=True),
),
migrations.AlterField(
model_name='request',
name='path',
field=models.TextField(),
),
migrations.AlterField(
model_name='request',
name='user_agent',
field=models.TextField(),
),
]
8 changes: 4 additions & 4 deletions intranet/apps/logs/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,14 @@ class Request(models.Model):
"""

timestamp = models.DateTimeField(auto_now_add=True)
ip = models.CharField(max_length=255, verbose_name="IP address")
path = models.CharField(max_length=255)
user_agent = models.CharField(max_length=255)
ip = models.TextField(verbose_name="IP address")
path = models.TextField()
user_agent = models.TextField()

user = models.ForeignKey(settings.AUTH_USER_MODEL, null=True, blank=True, on_delete=models.SET_NULL)
flag = models.CharField(max_length=255, null=True, blank=True, help_text="Flag this request for review by assigning it a label.")
request = models.JSONField(null=True, blank=True) # Serialized HttpRequest object
method = models.CharField(max_length=255, null=True, blank=True) # request method
method = models.TextField(null=True, blank=True) # request method

@property
def username(self):
Expand Down
1 change: 1 addition & 0 deletions intranet/settings/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -298,6 +298,7 @@

LIST_OF_INDEPENDENT_CSS = [
"about",
"admin",
"api",
"base",
"login",
Expand Down
4 changes: 4 additions & 0 deletions intranet/static/css/admin.scss
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
div.readonly {
white-space: pre-wrap;
}

div.field-request_json {
font-family: monospace;
}

0 comments on commit b5bfbb7

Please sign in to comment.