]> git.ipfire.org Git - dbl.git/commitdiff
lists: Allow searching for reports by a certain reporter
authorMichael Tremer <michael.tremer@ipfire.org>
Tue, 3 Mar 2026 11:37:19 +0000 (11:37 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Tue, 3 Mar 2026 11:39:28 +0000 (11:39 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/dbl/lists.py

index 0bd56d27d5efafae3cff62fdf7fdfd415433898a..5256fdc6cd241371263b85c56e72d9e6990b4fcb 100644 (file)
@@ -34,6 +34,7 @@ from . import domains
 from . import exporters
 from . import reports
 from . import sources
+from . import users
 from . import util
 from .i18n import _
 
@@ -549,10 +550,14 @@ class List(sqlmodel.SQLModel, database.BackendMixin, table=True):
        # Reports
        reports : typing.List["Report"] = sqlmodel.Relationship(back_populates="list")
 
-       async def get_reports(self, open=None, name=None, limit=None):
+       async def get_reports(self, open=None, name=None, reported_by=None, limit=None):
                """
                        Fetches the most recent reports
                """
+               # Only use the UID of any users
+               if isinstance(reported_by, users.User):
+                       reported_by = reported_by.uid
+
                stmt = (
                        sqlmodel
                        .select(
@@ -582,6 +587,12 @@ class List(sqlmodel.SQLModel, database.BackendMixin, table=True):
                                reports.Report.name == name,
                        )
 
+               # Optionally filter by reporter
+               if reported_by:
+                       stmt = stmt.where(
+                               reports.Report.reported_by == reported_by,
+                       )
+
                # Optionally apply the limit
                if limit:
                        stmt = stmt.limit(limit)