]> git.ipfire.org Git - pbs.git/commitdiff
log: Allow filtering by user
authorMichael Tremer <michael.tremer@ipfire.org>
Thu, 13 Oct 2022 13:38:47 +0000 (13:38 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Thu, 13 Oct 2022 13:38:47 +0000 (13:38 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/buildservice/events.py
src/templates/log.html
src/web/base.py
src/web/handlers.py

index 08c8730a7dd2623d4f90aea5544a9f8ee2733add..d0f238eb89914317332df59e4d8c88b5eec88af7 100644 (file)
@@ -185,7 +185,7 @@ class Events(base.Object):
 
                        yield Event(self.backend, event)
 
-       def __call__(self, build=None, priority=None, limit=None):
+       def __call__(self, build=None, user=None, priority=None, limit=None):
                """
                        Returns all events filtered by the given criteria
                """
@@ -193,12 +193,18 @@ class Events(base.Object):
 
                # Filter by build
                if build:
-                       conditions.append("build = %s")
+                       conditions.append("events.build = %s")
                        values.append(build)
 
+               # Filter by user
+               if user:
+                       conditions.append("(events.user = %s OR events.by_user = %s)")
+                       values.append(user)
+                       values.append(user)
+
                # Filter by priority
                if priority:
-                       conditions.append("priority >= %s")
+                       conditions.append("events.priority >= %s")
                        values.append(priority)
 
                # Fetch all events
index 774dec38a2dfb0aef662388e46868f6339bf6f66..0142a7f99ae90e58588c7e427f2a15aa0c5a8920 100644 (file)
@@ -16,5 +16,5 @@
 
        <h1 class="text-center">{{ _("Log") }}</h1>
 
-       {% module EventsList() %}
+       {% module EventsList(user=user) %}
 {% end %}
index 5b84eeddea4b8e3de3d487a2da45748393854482..9dd0205b3e696e3ad34993e514c389413ac06583 100644 (file)
@@ -131,3 +131,9 @@ class BaseHandler(tornado.web.RequestHandler):
 
                if slug:
                        return self.backend.distros.get_by_slug(slug)
+
+       def get_argument_user(self, *args, **kwargs):
+               name = self.get_argument(*args, **kwargs)
+
+               if name:
+                       return self.backend.users.get_by_name(name)
index 152c7ae289c25ec5223189c7101b16eaff720fcc..8a18f321f9dfce46b7af2959bc49438298821c73 100644 (file)
@@ -21,4 +21,8 @@ class FileDetailHandler(base.BaseHandler):
 
 class LogHandler(base.BaseHandler):
        def get(self):
-               self.render("log.html")
+               kwargs = {
+                       "user" : self.get_argument_user("user", None),
+               }
+
+               self.render("log.html", **kwargs)