]> git.ipfire.org Git - pbs.git/commitdiff
log: Implement filtering by builder
authorMichael Tremer <michael.tremer@ipfire.org>
Sat, 29 Apr 2023 11:55:28 +0000 (11:55 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Sat, 29 Apr 2023 11:58:19 +0000 (11:58 +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 3fed363a06bb1ccafb461fbde4ba2752e3574fe9..a4108c7e0c0e6f5e2afc1767db2108043c2ffaf5 100644 (file)
@@ -416,7 +416,8 @@ class Events(base.Object):
 
                        yield Event(self.backend, event)
 
-       def __call__(self, build=None, user=None, priority=None, offset=None, limit=None):
+       def __call__(self, priority=None, offset=None, limit=None,
+                       build=None, builder=None, user=None):
                """
                        Returns all events filtered by the given criteria
                """
@@ -427,6 +428,11 @@ class Events(base.Object):
                        conditions.append("events.build = %s")
                        values.append(build)
 
+               # Filter by builder
+               if builder:
+                       conditions.append("events.builder = %s")
+                       values.append(builder)
+
                # Filter by user
                if user:
                        conditions.append("(events.user = %s OR events.by_user = %s)")
index 9c50a1a61d313c06428cb6ec79bdba22486b34ae..76d42c1fd4fa581f9ea02f9e2c8b18ee60cd4417 100644 (file)
@@ -15,7 +15,8 @@
                <h1 class="title">{{ _("Log") }}</h1>
 
                <div class="block">
-                       {% module EventsList(priority=priority, user=user, offset=offset, limit=limit) %}
+                       {% module EventsList(priority=priority, offset=offset, limit=limit,
+                               builder=builder, user=user) %}
                </div>
 
                <div class="block">
index 19b63a9de47e67cf8a5b8b1216ebcf49d1c79cd3..5b59d1c10c614082b21be4d8998465ed35f864f9 100644 (file)
@@ -241,6 +241,12 @@ class BaseHandler(tornado.web.RequestHandler):
                except (TypeError, ValueError):
                        raise tornado.web.HTTPError(400, "%s is not an integer" % arg)
 
+       def get_argument_builder(self, *args, **kwargs):
+               name = self.get_argument(*args, **kwargs)
+
+               if name:
+                       return self.backend.builders.get_by_name(name)
+
        def get_argument_distro(self, *args, **kwargs):
                slug = self.get_argument(*args, **kwargs)
 
index 930c1deede25bb2d16336c2d7f20aea86fa4f9c1..8f869ccc04b94cf40b2b08b482589de6950266ac 100644 (file)
@@ -20,6 +20,7 @@ class LogHandler(base.BaseHandler):
                        "priority" : self.get_argument_int("priority", None) or 5,
 
                        # Filters
+                       "builder"  : self.get_argument_builder("builder", None),
                        "user"     : self.get_argument_user("user", None),
                }