From ac0d67cf2485eb267bf55f6b1ae8620a45aa872e Mon Sep 17 00:00:00 2001 From: Jens Langhammer Date: Fri, 6 Jun 2025 15:23:30 +0200 Subject: [PATCH] fix Signed-off-by: Jens Langhammer --- authentik/admin/tests/test_api.py | 5 ----- authentik/core/tests/test_users_api.py | 16 ---------------- authentik/events/api/events.py | 2 +- web/src/admin/events/EventVolumeChart.ts | 1 + web/src/elements/charts/Chart.ts | 6 +++--- 5 files changed, 5 insertions(+), 25 deletions(-) diff --git a/authentik/admin/tests/test_api.py b/authentik/admin/tests/test_api.py index ed6656470a..1268812e7d 100644 --- a/authentik/admin/tests/test_api.py +++ b/authentik/admin/tests/test_api.py @@ -36,11 +36,6 @@ class TestAdminAPI(TestCase): body = loads(response.content) self.assertEqual(len(body), 0) - def test_metrics(self): - """Test metrics API""" - response = self.client.get(reverse("authentik_api:admin_metrics")) - self.assertEqual(response.status_code, 200) - def test_apps(self): """Test apps API""" response = self.client.get(reverse("authentik_api:apps-list")) diff --git a/authentik/core/tests/test_users_api.py b/authentik/core/tests/test_users_api.py index ff5a28bec4..b35ce2d70f 100644 --- a/authentik/core/tests/test_users_api.py +++ b/authentik/core/tests/test_users_api.py @@ -81,22 +81,6 @@ class TestUsersAPI(APITestCase): response = self.client.get(reverse("authentik_api:user-list"), {"include_groups": "true"}) self.assertEqual(response.status_code, 200) - def test_metrics(self): - """Test user's metrics""" - self.client.force_login(self.admin) - response = self.client.get( - reverse("authentik_api:user-metrics", kwargs={"pk": self.user.pk}) - ) - self.assertEqual(response.status_code, 200) - - def test_metrics_denied(self): - """Test user's metrics (non-superuser)""" - self.client.force_login(self.user) - response = self.client.get( - reverse("authentik_api:user-metrics", kwargs={"pk": self.user.pk}) - ) - self.assertEqual(response.status_code, 403) - def test_recovery_no_flow(self): """Test user recovery link (no recovery flow set)""" self.client.force_login(self.admin) diff --git a/authentik/events/api/events.py b/authentik/events/api/events.py index c8ce5e0007..73f3f2593d 100644 --- a/authentik/events/api/events.py +++ b/authentik/events/api/events.py @@ -6,7 +6,7 @@ import django_filters from django.db.models import Count, ExpressionWrapper, F, QuerySet from django.db.models import DateTimeField as DjangoDateTimeField from django.db.models.fields.json import KeyTextTransform, KeyTransform -from django.db.models.functions import Cast, TruncHour +from django.db.models.functions import TruncHour from django.db.models.query_utils import Q from django.utils.timezone import now from drf_spectacular.types import OpenApiTypes diff --git a/web/src/admin/events/EventVolumeChart.ts b/web/src/admin/events/EventVolumeChart.ts index af41678e82..608eead71a 100644 --- a/web/src/admin/events/EventVolumeChart.ts +++ b/web/src/admin/events/EventVolumeChart.ts @@ -15,6 +15,7 @@ export class EventVolumeChart extends AKChart { @property({ attribute: false }) set query(value: EventsEventsListRequest | undefined) { + if (JSON.stringify(this._query) === JSON.stringify(value)) return; this._query = value; this.refreshHandler(); } diff --git a/web/src/elements/charts/Chart.ts b/web/src/elements/charts/Chart.ts index 640554ae01..358c7825a8 100644 --- a/web/src/elements/charts/Chart.ts +++ b/web/src/elements/charts/Chart.ts @@ -23,7 +23,7 @@ import { import { Legend, Tooltip } from "chart.js"; import { BarController, DoughnutController, LineController } from "chart.js"; import { ArcElement, BarElement } from "chart.js"; -import { LinearScale, TimeScale } from "chart.js"; +import { LinearScale, TimeScale, TimeSeriesScale } from "chart.js"; import "chartjs-adapter-date-fns"; import { msg } from "@lit/localize"; @@ -35,7 +35,7 @@ import { EventActions, EventVolume, UiThemeEnum } from "@goauthentik/api"; Chart.register(Legend, Tooltip); Chart.register(LineController, BarController, DoughnutController); Chart.register(ArcElement, BarElement, PointElement, LineElement); -Chart.register(TimeScale, LinearScale, Filler); +Chart.register(TimeScale, TimeSeriesScale, LinearScale, Filler); export const FONT_COLOUR_DARK_MODE = "#fafafa"; export const FONT_COLOUR_LIGHT_MODE = "#151515"; @@ -186,7 +186,7 @@ export abstract class AKChart extends AKElement { responsive: true, scales: { x: { - type: "time", + type: "timeseries", display: true, ticks: { callback: (tickValue: string | number, index: number, ticks: Tick[]) => {