From: Dave Lerner <dave.lerner@windriver.com>
To: <toaster@yoctoproject.org>, <belen.barros.pena@linux.intel.com>,
<elliot.smith@intel.com>
Subject: [review-request v3] [Patch 1/1] toaster: add rev dep column to image detail pages
Date: Thu, 31 Mar 2016 13:56:26 -0500 [thread overview]
Message-ID: <1459450586-1663-2-git-send-email-dave.lerner@windriver.com> (raw)
In-Reply-To: <1459450586-1663-1-git-send-email-dave.lerner@windriver.com>
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]
Signed-off-by: Dave Lerner <dave.lerner@windriver.com>
---
bitbake/lib/toaster/orm/models.py | 7 +++++++
bitbake/lib/toaster/toastergui/tables.py | 6 ++++++
.../templates/snippets/pkg_revdependencies_popover.html | 15 +++++++++++++++
3 files changed, 28 insertions(+)
diff --git a/bitbake/lib/toaster/orm/models.py b/bitbake/lib/toaster/orm/models.py
index 6ae6316..cfab7b7 100644
--- a/bitbake/lib/toaster/orm/models.py
+++ b/bitbake/lib/toaster/orm/models.py
@@ -813,6 +813,13 @@ class Package_DependencyManager(models.Manager):
"""
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):
""" Returns just the depends packages and not any other dep_type """
return self.filter(Q(dep_type=Package_Dependency.TYPE_RDEPENDS) |
diff --git a/bitbake/lib/toaster/toastergui/tables.py b/bitbake/lib/toaster/toastergui/tables.py
index 67a6592..c677ec5 100644
--- a/bitbake/lib/toaster/toastergui/tables.py
+++ b/bitbake/lib/toaster/toastergui/tables.py
@@ -725,6 +725,12 @@ class PackagesTable(ToasterTable):
static_data_template='\
{% 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",
field_name="recipe__name",
orderable=True,
diff --git a/bitbake/lib/toaster/toastergui/templates/snippets/pkg_revdependencies_popover.html b/bitbake/lib/toaster/toastergui/templates/snippets/pkg_revdependencies_popover.html
new file mode 100644
index 0000000..04fd2d3
--- /dev/null
+++ b/bitbake/lib/toaster/toastergui/templates/snippets/pkg_revdependencies_popover.html
@@ -0,0 +1,15 @@
+{# 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 %}
+
--
2.7.4
next prev parent reply other threads:[~2016-03-31 18:56 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-31 18:56 [review request V3] toaster: add rev dep column to image detail pages Dave Lerner
2016-03-31 18:56 ` Dave Lerner [this message]
2016-04-04 8:30 ` [review-request v3] [Patch 1/1] " Smith, Elliot
2016-04-04 13:55 ` Lerner, Dave
2016-04-06 13:45 ` Smith, Elliot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1459450586-1663-2-git-send-email-dave.lerner@windriver.com \
--to=dave.lerner@windriver.com \
--cc=belen.barros.pena@linux.intel.com \
--cc=elliot.smith@intel.com \
--cc=toaster@yoctoproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.