[Toaster] [review-request][PATCH] bitbake: toastergui: show relative paths in configvars view
Barros Pena, Belen
belen.barros.pena at intel.com
Tue May 5 03:08:39 PDT 2015
On 02/05/2015 11:37, "Ed Bartosh" <ed.bartosh at linux.intel.com> wrote:
>Strip topdir from paths to config files in configvars view.
>Got rid of specific filter cut_layer_path_prefix.
The paths in the variables table are not looking as expected when I apply
this. The paths to local.conf and bblayers.conf do show now as relative
paths, but paths to files inside a layer become full paths (instead of
relative paths). So instead of seeing
meta/conf/bitbake.conf
I see
/home/<user>/<poky_dir>/meta/conf/bitbake.conf
I've uploaded an screenshot here
http://imgur.com/BhehRxF
All paths in this table should be relative paths.
Cheers
Belén
>
>[YOCTO #7463]
>
>Signed-off-by: Ed Bartosh <ed.bartosh at linux.intel.com>
>---
> .../lib/toaster/toastergui/templates/configvars.html | 4 ++--
> .../lib/toaster/toastergui/templatetags/projecttags.py | 17
>++++-------------
> bitbake/lib/toaster/toastergui/views.py | 8 ++------
> 3 files changed, 8 insertions(+), 21 deletions(-)
>
>diff --git a/bitbake/lib/toaster/toastergui/templates/configvars.html
>b/bitbake/lib/toaster/toastergui/templates/configvars.html
>index 3e4c7e8..42d8fa7 100644
>--- a/bitbake/lib/toaster/toastergui/templates/configvars.html
>+++ b/bitbake/lib/toaster/toastergui/templates/configvars.html
>@@ -55,7 +55,7 @@
> <td class="variable_value"><a data-toggle="modal"
>href="#variable-{{variable.pk}}">{{variable.variable_value|truncatechars:1
>53}}</a></td>
> <td class="file"><a data-toggle="modal"
>href="#variable-{{variable.pk}}">
> {% if variable.vhistory.all %} {% autoescape off %}
>- {{variable.vhistory.all | filter_setin_files:file_filter
>| cut_layer_path_prefix:layer_names}}
>+ {{variable.vhistory.all | filter_setin_files:file_filter
>| cut_path_prefix:topdir}}
> {% endautoescape %} {% endif %}
> </a></td>
> <td class="description">
>@@ -115,7 +115,7 @@
> <tbody>
> {% for vh in variable.vhistory.all %}
> <tr>
>-
><td>{{forloop.counter}}</td><td>{{vh.file_name|cut_layer_path_prefix:layer
>_names}}</td><td>{{vh.operation}}</td><td>{{vh.line_number}}</td>
>+
><td>{{forloop.counter}}</td><td>{{vh.file_name|cut_path_prefix:topdir}}</t
>d><td>{{vh.operation}}</td><td>{{vh.line_number}}</td>
> </tr>
> {%endfor%}
> </tbody>
>diff --git a/bitbake/lib/toaster/toastergui/templatetags/projecttags.py
>b/bitbake/lib/toaster/toastergui/templatetags/projecttags.py
>index 54700e3..4c3bffd 100644
>--- a/bitbake/lib/toaster/toastergui/templatetags/projecttags.py
>+++ b/bitbake/lib/toaster/toastergui/templatetags/projecttags.py
>@@ -20,6 +20,7 @@
> # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
>
> from datetime import datetime, timedelta
>+from os.path import relpath
> import re
> from django import template
> from django.utils import timezone
>@@ -313,16 +314,6 @@ def is_shaid(text):
> return False
>
> @register.filter
>-def cut_layer_path_prefix(fullpath,layer_names):
>- ### if some part of the full local path to a layer matches
>- ### an entry in layer_names (sorted desc), return the layer
>- ### name relative path.
>- for lname in layer_names:
>- # import rpdb; rpdb.set_trace()
>- # only try layer names that are non-trivial to avoid false
>matches
>- if len(lname) >= 4:
>- # match layer name with as a subdir / or for remote layers /_
>- if re.search('/' + lname, fullpath) or re.search('/_' +
>lname, fullpath):
>- parts = re.split(lname, fullpath, 1)
>- return lname + parts[1]
>- return fullpath
>+def cut_path_prefix(fullpath, topdir):
>+ """Cut topdir from the fullpath."""
>+ return relpath(fullpath, topdir) if fullpath.startswith(topdir) else
>fullpath
>diff --git a/bitbake/lib/toaster/toastergui/views.py
>b/bitbake/lib/toaster/toastergui/views.py
>index b5c4d87..e7110c8 100755
>--- a/bitbake/lib/toaster/toastergui/views.py
>+++ b/bitbake/lib/toaster/toastergui/views.py
>@@ -39,6 +39,7 @@ from datetime import timedelta, datetime, date
> from django.utils import formats
> from toastergui.templatetags.projecttags import json as jsonfilter
> import json
>+from os.path import dirname
>
> # all new sessions should come through the landing page;
> # determine in which mode we are running in, and redirect appropriately
>@@ -1326,11 +1327,6 @@ def configvars(request, build_id):
>
> variables = _build_page_range(Paginator(queryset, pagesize),
>request.GET.get('page', 1))
>
>- layers =
>Layer.objects.filter(layer_version_layer__projectlayer__project__build=bui
>ld_id).order_by("-name")
>- layer_names = map(lambda layer : layer.name, layers)
>- # special case for meta built-in layer
>- layer_names.append('meta')
>-
> # show all matching files (not just the last one)
> file_filter= search_term + ":"
> if filter_string.find('/conf/') > 0:
>@@ -1353,7 +1349,7 @@ def configvars(request, build_id):
> 'total_count':queryset_with_search.count(),
> 'default_orderby' : 'variable_name:+',
> 'search_term':search_term,
>- 'layer_names' : layer_names,
>+ 'topdir': dirname(build_dir),
> # Specifies the display of columns for the table, appearance
>in "Edit columns" box, toggling default show/hide, and specifying filters
>for columns
> 'tablecols' : [
> {'name': 'Variable',
>--
>2.1.4
>
>--
>_______________________________________________
>toaster mailing list
>toaster at yoctoproject.org
>https://lists.yoctoproject.org/listinfo/toaster
More information about the toaster
mailing list