Hi Belen, > I can see the secondary sorting working everywhere except a small glitch > the installed packages table. This might be related to the rounding of > values, I am not sure, but when I sort by 'Size', packages with the same
That is indeed the case. The sort is working, but the rounding format is hiding the details. For example, I see ... update-alternatives-opkg 4 KB init-ifupdown 3 KB busybox-udhcpc 3 KB busybox-hwclock 2 KB ... is really ... update-alternatives-opkg 4259 init-ifupdown 2897 busybox-udhcpc 2598 busybox-hwclock 2541 I do not think that this is fixable, at least until we come up with custom sorts. Is this small gap acceptable for Toaster-1.6? - David > -----Original Message----- > From: Barros Pena, Belen [mailto:[email protected]] > Sent: Friday, March 28, 2014 3:45 AM > To: Reyna, David; DAMIAN, ALEXANDRU > Cc: [email protected] > Subject: Re: [review-request] Bug #5920 "Secondary sorting criteria not > working" > > > On 27/03/2014 16:13, "Reyna, David" <[email protected]> wrote: > > >Hi Belen, > > > >The 'get_dict_value' filter is part of Bug 5947 - "Replace fstypes > >lookup". > > > >Did you cherry-pick "dreyna/fstypes_v2" and "dreyna/duplicates_6012"? > > Yep, that solved the problem. > > I can see the secondary sorting working everywhere except a small glitch > the installed packages table. This might be related to the rounding of > values, I am not sure, but when I sort by 'Size', packages with the same > size don't seem to be sorted in alphabetical order. > > Cheers > > Belén > > > > >- David > > > >> -----Original Message----- > >> From: Barros Pena, Belen [mailto:[email protected]] > >> Sent: Thursday, March 27, 2014 4:48 AM > >> To: Reyna, David; DAMIAN, ALEXANDRU > >> Cc: [email protected] > >> Subject: Re: [review-request] Bug #5920 "Secondary sorting criteria not > >> working" > >> > >> On 26/03/2014 23:34, "Reyna, David" <[email protected]> wrote: > >> > >> >Hi Belen, > >> > > >> >Here is my branch for 5920 ³Secondary sorting criteria not working². It > >> >will add a secondary sort for all tables when the current sort is a > >> >different column that the table¹s respective default sort. > >> > > >> >The branch is here: dreyna/secondary_sort_5920 > >> > >> I am getting an error in the builds page with this branch: > >> > >> Invalid filter: 'get_dict_value' > >> > >> Full trace below: > >> > >> Environment: > >> > >> > >> Request Method: GET > >> Request URL: > >> > >>http://localhost:8000/gui/builds/?count=10&orderby=completed_on%3A-&page= > >>1 > >> > >> Django Version: 1.5 > >> Python Version: 2.7.3 > >> Installed Applications: > >> ('django.contrib.staticfiles', > >> 'django.contrib.humanize', > >> 'orm', > >> 'toastermain', > >> 'toastergui', > >> 'bldviewer', > >> 'south') > >> Installed Middleware: > >> ('django.middleware.common.CommonMiddleware', > >> 'django.contrib.sessions.middleware.SessionMiddleware', > >> 'django.middleware.csrf.CsrfViewMiddleware', > >> 'django.contrib.auth.middleware.AuthenticationMiddleware', > >> 'django.contrib.messages.middleware.MessageMiddleware') > >> > >> > >> Template error: > >> In template > >> /home/yocto/poky/bitbake/lib/toaster/toastergui/templates/build.html, > >> error at line 96 > >> Invalid filter: 'get_dict_value' > >> 86 : <td class="target">{% for t in build.target_set.all > >>%} > >> <a href="{% url "builddashboard" build.id <http://build.id/> %}"> > >> {{t.target}} </a> <br />{% endfor %}</td> > >> > >> > >> 87 : <td class="machine"><a href="{% url "builddashboard" > >> build.id <http://build.id/> %}">{{build.machine}}</a></td> > >> > >> > >> 88 : <td class="started_on"><a href="{% url > >> "builddashboard" build.id <http://build.id/> > >> %}">{{build.started_on|date:"d/m/y H:i"}}</a></td> > >> > >> > >> 89 : <td class="completed_on"><a href="{% url > >> "builddashboard" build.id <http://build.id/> > >> %}">{{build.completed_on|date:"d/m/y H:i"}}</a></td> > >> > >> > >> 90 : <td class="failed_tasks error">{% query > >> build.task_build outcome=4 order__gt=0 as exectask%}{% if exectask.count > >> == 1 %}<a href="{% url "task" build.id <http://build.id/> exectask.0.id > >> <http://exectask.0.id/> %}">{{exectask.0.recipe.name > >> <http://exectask.0.recipe.name/>}}.{{exectask.0.task_name}}</a>{% elif > >> exectask.count > 1%}<a href="{% url "tasks" build.id <http://build.id/> > >> %}?filter=outcome%3A4">{{exectask.count}}</a>{%endif%}</td> > >> > >> > >> 91 : <td class="errors_no">{% if build.errors_no %}<a > >> class="errors_no error" href="{% url "builddashboard" build.id > >> <http://build.id/>%}#errors">{{build.errors_no}} > >> error{{build.errors_no|pluralize}}</a>{%endif%}</td> > >> > >> > >> 92 : <td class="warnings_no">{% if build.warnings_no > >>%}<a > >> class="warnings_no warning" href="{% url "builddashboard" build.id > >> <http://build.id/> %}#warnings">{{build.warnings_no}} > >> warning{{build.warnings_no|pluralize}}</a>{%endif%}</td> > >> > >> > >> 93 : <td class="time"><a href="{% url "buildtime" > >>build.id > >> <http://build.id/> %}">{{build.timespent|sectohms}}</a></td> > >> > >> > >> 94 : <td class="log">{{build.cooker_log_path}}</td> > >> > >> > >> 95 : <td class="output"> > >> > >> > >> 96 : {% if build.outcome == build.SUCCEEDED %} > >> > >> > >> 97 : <a href="{%url "builddashboard" build.id > >> <http://build.id/>%}#images">{{fstypes|get_dict_value:build.id > >> <http://build.id/>}}</a> > >> > >> > >> 98 : {% endif %} > >> > >> > >> 99 : </td> > >> > >> > >> 100 : </tr> > >> > >> > >> 101 : > >> > >> > >> 102 : {% endfor %} > >> > >> > >> 103 : > >> > >> > >> 104 : > >> > >> > >> 105 : {% include "basetable_bottom.html" %} > >> > >> > >> 106 : > >> > >> > >> Traceback: > >> File > >>"/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py" > >> in get_response > >> 115. response = callback(request, > >> *callback_args, **callback_kwargs) > >> File "/home/yocto/poky/bitbake/lib/toaster/toastergui/views.py" in > >>builds > >> 376. return render(request, template, context) > >> File > >>"/usr/local/lib/python2.7/dist-packages/django/shortcuts/__init__.py" > >> in render > >> 53. return HttpResponse(loader.render_to_string(*args, **kwargs), > >> File "/usr/local/lib/python2.7/dist-packages/django/template/loader.py" > >>in > >> render_to_string > >> 170. t = get_template(template_name) > >> File "/usr/local/lib/python2.7/dist-packages/django/template/loader.py" > >>in > >> get_template > >> 146. template, origin = find_template(template_name) > >> File "/usr/local/lib/python2.7/dist-packages/django/template/loader.py" > >>in > >> find_template > >> 135. source, display_name = loader(name, dirs) > >> File "/usr/local/lib/python2.7/dist-packages/django/template/loader.py" > >>in > >> __call__ > >> 43. return self.load_template(template_name, template_dirs) > >> File "/usr/local/lib/python2.7/dist-packages/django/template/loader.py" > >>in > >> load_template > >> 49. template = get_template_from_string(source, origin, > >> template_name) > >> File "/usr/local/lib/python2.7/dist-packages/django/template/loader.py" > >>in > >> get_template_from_string > >> 157. return Template(source, origin, name) > >> File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in > >> __init__ > >> 125. self.nodelist = compile_string(template_string, origin) > >> File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in > >> compile_string > >> 153. return parser.parse() > >> File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in > >> parse > >> 274. compiled_result = compile_func(self, token) > >> File > >> "/usr/local/lib/python2.7/dist-packages/django/template/loader_tags.py" > >>in > >> do_extends > >> 215. nodelist = parser.parse() > >> File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in > >> parse > >> 274. compiled_result = compile_func(self, token) > >> File > >> "/usr/local/lib/python2.7/dist-packages/django/template/loader_tags.py" > >>in > >> do_block > >> 190. nodelist = parser.parse(('endblock',)) > >> File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in > >> parse > >> 274. compiled_result = compile_func(self, token) > >> File > >> "/usr/local/lib/python2.7/dist-packages/django/template/defaulttags.py" > >>in > >> do_if > >> 917. nodelist = parser.parse(('endif',)) > >> File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in > >> parse > >> 274. compiled_result = compile_func(self, token) > >> File > >> "/usr/local/lib/python2.7/dist-packages/django/template/defaulttags.py" > >>in > >> do_for > >> 767. nodelist_loop = parser.parse(('empty', 'endfor',)) > >> File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in > >> parse > >> 274. compiled_result = compile_func(self, token) > >> File > >> "/usr/local/lib/python2.7/dist-packages/django/template/defaulttags.py" > >>in > >> do_if > >> 903. nodelist = parser.parse(('elif', 'else', 'endif')) > >> File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in > >> parse > >> 253. filter_expression = > >> self.compile_filter(token.contents) > >> File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in > >> compile_filter > >> 353. return FilterExpression(token, self) > >> File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in > >> __init__ > >> 564. filter_func = parser.find_filter(filter_name) > >> File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in > >> find_filter > >> 359. raise TemplateSyntaxError("Invalid filter: '%s'" % > >> filter_name) > >> > >> Exception Type: TemplateSyntaxError at /gui/builds/ > >> Exception Value: Invalid filter: 'get_dict_value' > >> > >> > >> > >> > > >> >It depends on these two commits before it: > >> > 6012: > >> >f648d5018f7d3ae6eb81f0a05bdbbfe51080eece ³Duplicate search results > >> >returned in the build page² > >> > 5947:fd12d8aad22eadee20723a1b5323035e0ac47742 ³Replace fstypes lookup > >> >on main build page² > >> > > >> >Thanks, > >> >David > >> > > >> > > >> > > >> > > >> > > > -- _______________________________________________ toaster mailing list [email protected] https://lists.yoctoproject.org/listinfo/toaster
