mirror of
https://git.yoctoproject.org/poky
synced 2026-05-30 12:29:55 +00:00
bitbake: toaster: add rev dep column to image detail pages
Add a column to the custom image pages that shows the reverse
dependencies in a format matching the dependencies column:
- either blank or a button showing the count of reverse dependencies,
- when the button is clicked, a popover appears showing the list
of reverse dependencies, with each package's size, and the total
size of all of the reverse dependencies.
The implementation adds a packages table method to retreive the reverse
dependency total size, and adds a separate 'popover' html template. Both
of these changes follow the pattern for the dependencies column.
[YOCTO #9163]
(Bitbake rev: 2f978dccaa1ec82c7ad350bdc1cd9500000984eb)
Signed-off-by: Dave Lerner <dave.lerner@windriver.com>
Signed-off-by: Elliot Smith <elliot.smith@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
7a309d964a
commit
18cb7fe426
@@ -822,6 +822,13 @@ class Package_DependencyManager(models.Manager):
|
|||||||
"""
|
"""
|
||||||
return self.all().aggregate(Sum('depends_on__size'))
|
return self.all().aggregate(Sum('depends_on__size'))
|
||||||
|
|
||||||
|
def get_total_revdeps_size(self):
|
||||||
|
""" Returns the total file size of all the packages that depend on
|
||||||
|
this package.
|
||||||
|
"""
|
||||||
|
return self.all().aggregate(Sum('package_id__size'))
|
||||||
|
|
||||||
|
|
||||||
def all_depends(self):
|
def all_depends(self):
|
||||||
""" Returns just the depends packages and not any other dep_type """
|
""" Returns just the depends packages and not any other dep_type """
|
||||||
return self.filter(Q(dep_type=Package_Dependency.TYPE_RDEPENDS) |
|
return self.filter(Q(dep_type=Package_Dependency.TYPE_RDEPENDS) |
|
||||||
|
|||||||
@@ -725,6 +725,12 @@ class PackagesTable(ToasterTable):
|
|||||||
static_data_template='\
|
static_data_template='\
|
||||||
{% include "snippets/pkg_dependencies_popover.html" %}')
|
{% include "snippets/pkg_dependencies_popover.html" %}')
|
||||||
|
|
||||||
|
self.add_column(title="Reverse dependencies",
|
||||||
|
static_data_name="reverse_dependencies",
|
||||||
|
static_data_template='\
|
||||||
|
{% include "snippets/pkg_revdependencies_popover.html" %}',
|
||||||
|
hidden=True)
|
||||||
|
|
||||||
self.add_column(title="Recipe",
|
self.add_column(title="Recipe",
|
||||||
field_name="recipe__name",
|
field_name="recipe__name",
|
||||||
orderable=True,
|
orderable=True,
|
||||||
|
|||||||
@@ -0,0 +1,14 @@
|
|||||||
|
{# Popover that displays the reverse dependencies and sizes of a package 'data' used in the Packages table #}
|
||||||
|
{% with data.package_dependencies_target.all_depends.count as dep_count %}
|
||||||
|
{% load projecttags %}
|
||||||
|
{% if dep_count %}
|
||||||
|
<a data-content="<ul class='unstyled'>
|
||||||
|
{% for dep in data.package_dependencies_target.all_depends|dictsort:'package.name' %}
|
||||||
|
<li>{{dep.package.name}} {% if dep.package.size > 0 %}({{dep.package.size|filtered_filesizeformat}}){% endif %}</li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>" title="" class="btn" data-original-title="
|
||||||
|
<strong>{{data.name}}</strong> reverse dependencies - <strong>{{data.package_dependencies_target.get_total_revdeps_size.package_id__size__sum|filtered_filesizeformat}}</strong>">
|
||||||
|
{{dep_count}}
|
||||||
|
</a>
|
||||||
|
{% endif %}
|
||||||
|
{% endwith %}
|
||||||
Reference in New Issue
Block a user