]> git.ipfire.org Git - pbs.git/commitdiff
builds: Show which repository a build is in
authorMichael Tremer <michael.tremer@ipfire.org>
Fri, 12 May 2023 22:49:07 +0000 (22:49 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Fri, 12 May 2023 22:49:07 +0000 (22:49 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/buildservice/repository.py
src/templates/builds/show.html
src/templates/repos/modules/list.html
src/web/repos.py

index 5ab73ed39edb8c8457111cd2dab79698013a157e..2c57dcae358cb018f0416c83eb59fe7438a8e7c4 100644 (file)
@@ -563,6 +563,24 @@ class Repository(base.DataObject):
 
                return list(builds)
 
+       def get_added_at_for_build(self, build):
+               res = self.db.get("""
+                       SELECT
+                               added_at
+                       FROM
+                               repository_builds
+                       WHERE
+                               repository_builds.repo_id = %s
+                       AND
+                               repository_builds.build_id = %s
+                       AND
+                               repository_builds.removed_at IS NULL
+                       """, self.id, build,
+               )
+
+               if res:
+                       return res.added_at
+
        @lazy_property
        def total_builds(self):
                res = self.db.get("""
index babb3d97c41deb96829a0560c7c4b728b3464279..1b2e6e5a8135a5cab8977afd41e051293889199d 100644 (file)
        {% if build.jobs %}
                <section class="section">
                        <div class="container">
+                               <h5 class="title is-5">{{ _("Jobs")}}</h5>
+
                                {% module JobsList(build.jobs, show_arch_only=True, show_packages=True) %}
                        </div>
                </section>
                </section>
        {% end %}
 
+       {# Repos #}
+       {% if build.repos %}
+               <section class="section">
+                       <div class="container">
+                               <h5 class="title is-5">{{ _("Repositories") }}</h5>
+
+                               {% module ReposList(build.repos, build=build) %}
+
+                               {% if current_user == build.owner %}
+                                       <div class="buttons">
+                                               <a class="button is-success" href="/builds/{{ build.uuid }}/repos/add">
+                                                       {{ _("Add Build To Repository") }}
+                                               </a>
+                                       </div>
+                               {% end %}
+                       </div>
+               </section>
+       {% end %}
+
        {# Log #}
        <section class="section">
                <div class="container">
index 3a1f6f9b87531af6374e25b3c99f4070a3304075..3ce2f2ca6984ae19e76441980288964456ffca62 100644 (file)
@@ -1,9 +1,34 @@
-{% for repo in repos %}
-       <div class="block">
-               <div class="box">
-                       <h5 class="title is-5">
-                               <a href="{{ repo.url }}">{{ repo }}</a>
-                       </h5>
-               </div>
-       </div>
-{% end %}
+<div class="block">
+       <nav class="panel is-link">
+               {% for repo in repos %}
+                       <a class="panel-block is-justify-content-space-between p-4" href="{{ repo.url }}">
+                               <h5 class="title is-5 mb-0">
+                                       {% if repo.owner %}
+                                               <span class="icon-text">
+                                                       <span class="icon">
+                                                               <figure class="image">
+                                                                       <img class="is-rounded" src="{{ repo.owner.avatar(32) }}" alt="{{ repo.owner }}">
+                                                               </figure>
+                                                       </span>
+                                                       <span>
+                                                               {{ repo.owner }}
+                                                       </span>
+                                               </span>
+
+                                               &dash;
+                                       {% end %}
+
+                                       {{ repo }}
+                               </h5>
+
+                               {% if build %}
+                                       {% set t = repo.get_added_at_for_build(build) %}
+
+                                       <span class="has-text-grey">
+                                               {{ _("Added %s") % locale.format_date(t, shorter=True) }}
+                                       </span>
+                               {% end %}
+                       </a>
+               {% end %}
+       </nav>
+</div>
index 06782e305c9ef3a1b30b2f0ddd70447249d6bb01..a9bae9c7799ac0a351b8869ac2316312f86ac982 100644 (file)
@@ -192,5 +192,5 @@ class MirrorlistHandler(BaseHandler):
 
 
 class ListModule(ui_modules.UIModule):
-       def render(self, repos):
-               return self.render_string("repos/modules/list.html", repos=repos)
+       def render(self, repos, build=None):
+               return self.render_string("repos/modules/list.html", repos=repos, build=build)