]> git.ipfire.org Git - pbs.git/commitdiff
events: Add build watchers
authorMichael Tremer <michael.tremer@ipfire.org>
Thu, 13 Oct 2022 10:33:59 +0000 (10:33 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Thu, 13 Oct 2022 10:33:59 +0000 (10:33 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/buildservice/events.py
src/templates/events/modules/list.html
src/templates/events/modules/system-message.html
src/templates/events/modules/user-message.html

index 329b1a9239e88896b771caa3ccf652f082ce93de..08c8730a7dd2623d4f90aea5544a9f8ee2733add 100644 (file)
@@ -39,6 +39,7 @@ log = logging.getLogger("pakfire.buildservice.events")
 # t (timestamp)
 # priority
 # build
+# user
 # by_user
 #
 EVENTS_VIEW = """
@@ -50,6 +51,7 @@ EVENTS_VIEW = """
                        4 AS priority,
                        builds.id AS build,
                        NULL::integer AS build_comment,
+                       NULL::integer AS user,
                        builds.owner_id AS by_user
                FROM
                        builds
@@ -71,6 +73,7 @@ EVENTS_VIEW = """
                        END AS priority,
                        builds.id AS build,
                        NULL AS build_comment,
+                       NULL AS user,
                        NULL AS by_user
                FROM
                        builds
@@ -86,11 +89,42 @@ EVENTS_VIEW = """
                        4 AS priority,
                        build_comments.build_id AS build,
                        build_comments.id AS build_comment,
+                       NULL AS user,
                        build_comments.user_id AS by_user
                FROM
                        build_comments
                WHERE
                        deleted IS FALSE
+
+               UNION ALL
+
+               -- Build Watchers added
+               SELECT
+                       'build-watcher-added' AS type,
+                       build_watchers.added_at AS t,
+                       1 AS priority,
+                       build_watchers.build_id AS build,
+                       NULL AS build_comment,
+                       build_watchers.user_id AS user,
+                       NULL AS by_user
+               FROM
+                       build_watchers
+
+               UNION ALL
+
+               -- Build Watchers removed
+               SELECT
+                       'build-watcher-removed' AS type,
+                       build_watchers.deleted_at AS t,
+                       1 AS priority,
+                       build_watchers.build_id AS build,
+                       NULL AS build_comment,
+                       build_watchers.user_id AS user,
+                       NULL AS by_user
+               FROM
+                       build_watchers
+               WHERE
+                       deleted_at IS NOT NULL
        )
 """
 
@@ -105,6 +139,7 @@ class Events(base.Object):
                        "build_comment" : self.backend.builds.comments.get_by_id,
 
                        # Users
+                       "user"    : self.backend.users.get_by_id,
                        "by_user" : self.backend.users.get_by_id,
                }
 
index 52b8246ff13c4654294d3f6d00a37ba10b0979d0..9c2fee40f6fb668478f0ded0f77091dc3689b053 100644 (file)
@@ -1,7 +1,7 @@
 {% for event in events %}
        {% if event.build_comment %}
                {% module EventBuildComment(event) %}
-       {% elif event.by_user %}
+       {% elif event.user or event.by_user %}
                {% module EventUserMessage(event) %}
        {% else %}
                {% module EventSystemMessage(event) %}
index 0d9108a5e982a45feb6555a1be6a94d30444fe2d..5638b6e1838f84285a2380c6cb12172b3199a7ee 100644 (file)
@@ -3,15 +3,17 @@
 
        <div class="media-object-section main-section">
                {% block content %}
-                       {% if event.type == "build-created" %}
-                               <p>
+                       <p>
+                               {% if event.type == "build-created" %}
                                        {{ _("Build created") }}
-                               </p>
-                       {% else %}
-                               <p>
+                               {% elif event.type == "build-watcher-added" %}
+                                       {{ _("%s started watching this build") % event.user }}
+                               {% elif event.type == "build-watcher-removed" %}
+                                       {{ _("%s stopped watching this build") % event.user }}
+                               {% else %}
                                        {{ _("- Unknown Event -") }}
-                               </p>
-                       {% end %}
+                               {% end %}
+                       </p>
                {% end %}
 
                <small>
index ddf902e5afaa94332753df4adf80c65975c8c32c..f5303d155357da9eea8fbcce3b0d8e8f571c0732 100644 (file)
@@ -1,9 +1,11 @@
 {% extends "system-message.html" %}
 
 {% block thumbnail %}
+       {% set user = event.user or event.by_user %}
+
        <div class="media-object-section">
                <div class="thumbnail">
-                       <img src="{{ event.by_user.avatar(96) }}" alt="{{ event.by_user }}">
+                       <img src="{{ user.avatar(96) }}" alt="{{ user }}">
                </div>
        </div>
 {% end block %}
 {% block time %}
        {{ locale.format_date(event.t) }}
 
-       &dash;
+       {% if event.by_user %}
+               &dash;
 
-       <a href="/users/{{ event.by_user.name }}">
-               {{ _("by %s") % event.by_user }}
-       </a>
+               <a href="/users/{{ event.by_user.name }}">
+                       {{ _("by %s") % event.by_user }}
+               </a>
+       {% end %}
 {% end block %}