From: Michael Tremer Date: Thu, 13 Oct 2022 13:38:47 +0000 (+0000) Subject: log: Allow filtering by user X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f004aee718bc9d153e9289456871ef44a305d34d;p=pbs.git log: Allow filtering by user Signed-off-by: Michael Tremer --- diff --git a/src/buildservice/events.py b/src/buildservice/events.py index 08c8730a..d0f238eb 100644 --- a/src/buildservice/events.py +++ b/src/buildservice/events.py @@ -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 diff --git a/src/templates/log.html b/src/templates/log.html index 774dec38..0142a7f9 100644 --- a/src/templates/log.html +++ b/src/templates/log.html @@ -16,5 +16,5 @@

{{ _("Log") }}

- {% module EventsList() %} + {% module EventsList(user=user) %} {% end %} diff --git a/src/web/base.py b/src/web/base.py index 5b84eedd..9dd0205b 100644 --- a/src/web/base.py +++ b/src/web/base.py @@ -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) diff --git a/src/web/handlers.py b/src/web/handlers.py index 152c7ae2..8a18f321 100644 --- a/src/web/handlers.py +++ b/src/web/handlers.py @@ -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)