return NotImplemented
def __iter__(self):
- packages = self.backend.packages._get_packages("SELECT packages.* FROM jobs_packages \
- LEFT JOIN packages ON jobs_packages.pkg_id = packages.id \
- WHERE jobs_packages.job_id = %s ORDER BY packages.name", self.id)
-
- return iter(packages)
+ return iter(self.packages)
def __bool__(self):
return True
def pkg(self):
return self.build.pkg
+ @lazy_property
+ def packages(self):
+ packages = self.backend.packages._get_packages("""
+ SELECT
+ packages.*
+ FROM
+ jobs_packages
+ LEFT JOIN
+ packages ON jobs_packages.pkg_id = packages.id
+ WHERE
+ jobs_packages.job_id = %s
+ ORDER BY
+ packages.name""",
+ self.id,
+ )
+
+ return list(packages)
+
@property
def size(self):
return sum((p.size for p in self.packages))
def __repr__(self):
return "<%s %s>" % (self.__class__.__name__, self.friendly_name)
+ def __str__(self):
+ return self.friendly_name
+
def __eq__(self, other):
if isinstance(other, self.__class__):
return self.id == other.id
</a>
{% if build.jobs %}
- {% module JobsList(build.jobs, show_arch_only=True) %}
+ {% module JobsList(build.jobs, show_arch_only=True, show_packages=True) %}
{% end %}
{% end block %}
{% end %}
</a>
</h6>
+
+ {# Show all packages that have been built #}
+ {% if show_packages and job.packages %}
+ <ul>
+ {% for package in job %}
+ <li>
+ <a href="/package/{{ package.uuid }}">
+ {{ package }}
+ </a>
+ </li>
+ {% end %}
+ </ul>
+ {% end %}
</div>
<div class="cell medium-7">
class JobsListModule(UIModule):
- def render(self, jobs, show_arch_only=False):
+ def render(self, jobs, show_arch_only=False, show_packages=False):
return self.render_string("modules/jobs/list.html", jobs=jobs,
- show_arch_only=show_arch_only)
+ show_arch_only=show_arch_only, show_packages=show_packages)
class RepositoryTableModule(UIModule):