]> git.ipfire.org Git - pbs.git/commitdiff
packages: Allow source packages to have more than one build
authorMichael Tremer <michael.tremer@ipfire.org>
Thu, 14 Jul 2022 13:38:28 +0000 (13:38 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Thu, 14 Jul 2022 13:38:28 +0000 (13:38 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/buildservice/packages.py
src/database.sql
src/templates/packages/show.html

index 38c3139048ae49b668ac96f95d551cf8b937e55e..632cfa78b8ae17eded778485efc6dee4463a7544 100644 (file)
@@ -387,12 +387,22 @@ class Package(base.DataObject):
                self._set_attribute("path", path)
 
        @lazy_property
-       def build(self):
-               if self.job:
-                       return self.job.build
+       def builds(self):
+               builds = self.backend.builds._get_builds("""
+                       SELECT
+                               *
+                       FROM
+                               builds
+                       WHERE
+                               deleted IS FALSE
+                       AND
+                               pkg_id = %s
+                       ORDER BY
+                               created_at DESC""",
+                       self.id,
+               )
 
-               return self.backend.builds._get_build("SELECT * FROM builds \
-                       WHERE pkg_id = %s" % self.id)
+               return list(builds)
 
        @lazy_property
        def job(self):
index 410ee0af012e0ae436a3755889823dcbceefeff3..faa9f7a4eeb606d16bee873d55803878a472f97b 100644 (file)
@@ -1982,7 +1982,7 @@ CREATE INDEX builds_created_at ON public.builds USING btree (created_at DESC);
 -- Name: builds_pkg_id; Type: INDEX; Schema: public; Owner: pakfire
 --
 
-CREATE INDEX builds_pkg_id ON public.builds USING btree (pkg_id);
+CREATE INDEX builds_pkg_id ON public.builds USING btree (pkg_id) WHERE (deleted IS FALSE);
 
 
 --
index cf6a19016b311f6b7fd632d9fb68d1da942fca65..3993dbadb69039bf5dc5c61e1983825e6c3d7c4c 100644 (file)
@@ -8,21 +8,9 @@
                        <li>
                                <a href="/">{{ _("Home") }}</a>
                        </li>
-                       {% if package.build %}
-                               <li>
-                                       <a href="/builds">{{ _("Builds") }}</a>
-                               </li>
-                               <li>
-                                       <a href="/builds/{{ package.build.uuid }}">{{ package.build }}</a>
-                               </li>
-                               <li>
-                                       {{ _("Packages") }}
-                               </li>
-                       {% else %}
-                               <li>
-                                       <a href="/packages">{{ _("Packages") }}</a>
-                               </li>
-                       {% end %}
+                       <li>
+                               <a href="/packages">{{ _("Packages") }}</a>
+                       </li>
                        <li>
                                <span class="show-for-sr">{{ _("Current") }}: </span> {{ package }}
                        </li>
@@ -35,9 +23,9 @@
                {{ _("Download Package") }} ({{ format_size(package.size) }})
        </a>
 
-       {% if package.build %}
-               <a class="expanded secondary button" href="/builds/{{ package.build.uuid }}">
-                       {{ _("Build %s") % package.build }}
+       {% for build in package.builds %}
+               <a class="expanded secondary button" href="/builds/{{ build.uuid }}">
+                       {{ _("Build from %s") % locale.format_date(build.created_at) }}
                </a>
        {% end %}