On 01/07/2016 19:18, "[email protected] on behalf of Michael Wood" <[email protected] on behalf of [email protected]> wrote:
>Clean up and fix the most frequently built targets for the "Most built >recipes" section for the project configuration page. > >[YOCTO #9846] This works for me. Thanks! Belén > >Signed-off-by: Michael Wood <[email protected]> >--- > bitbake/lib/toaster/toastergui/views.py | 42 >+++++++++++++++++++++++++-------- > 1 file changed, 32 insertions(+), 10 deletions(-) > >diff --git a/bitbake/lib/toaster/toastergui/views.py >b/bitbake/lib/toaster/toastergui/views.py >index c40273c..2db68bd 100755 >--- a/bitbake/lib/toaster/toastergui/views.py >+++ b/bitbake/lib/toaster/toastergui/views.py >@@ -1404,15 +1404,37 @@ if True: > pid = prj.id > > from collections import Counter >- freqtargets = [] >- try: >- btargets = sum(build.target_set.all() for build in >Build.objects.filter(project=prj, outcome__lt=Build.IN_PROGRESS)) >- brtargets = sum(br.brtarget_set.all() for br in >BuildRequest.objects.filter(project = prj, state = >BuildRequest.REQ_FAILED)) >- freqtargets = [x.target for x in btargets] + [x.target for x >in brtargets] >- except TypeError: >- pass >- freqtargets = Counter(freqtargets) >- freqtargets = sorted(freqtargets, key = lambda x: >freqtargets[x], reverse=True) >+ >+ freqtargets = Counter(Target.objects.filter( >+ Q(build__project=prj), >+ ~Q(build__outcome=Build.IN_PROGRESS) >+ ).order_by("target").values_list("target", flat=True)) >+ >+ freqtargets = freqtargets.most_common(5) >+ >+ # We now have the targets in order of frequency but if there are >two >+ # with the same frequency then we need to make sure those are in >+ # alphabetical order without losing the frequency ordering >+ >+ tmp = [] >+ switch = None >+ for i, freqtartget in enumerate(freqtargets): >+ target, count = freqtartget >+ try: >+ target_next, count_next = freqtargets[i+1] >+ if count == count_next and target > target_next: >+ switch = target >+ continue >+ except IndexError: >+ pass >+ >+ tmp.append(target) >+ >+ if switch: >+ tmp.append(switch) >+ switch = None >+ >+ freqtargets = tmp > > layers = [{"id": x.layercommit.pk, "orderid": x.pk, "name" : >x.layercommit.layer.name, > "vcs_url": x.layercommit.layer.vcs_url, >"vcs_reference" : x.layercommit.get_vcs_reference(), >@@ -1432,7 +1454,7 @@ if True: > "layers" : layers, > "targets" : [{"target" : x.target, "task" : x.task, "pk": >x.pk} for x in prj.projecttarget_set.all()], > "variables": [(x.name, x.value) for x in >prj.projectvariable_set.all()], >- "freqtargets": freqtargets[:5], >+ "freqtargets": freqtargets, > "releases": [{"id": x.pk, "name": x.name, >"description":x.description} for x in Release.objects.all()], > "project_html": 1, > "recipesTypeAheadUrl": reverse('xhr_recipestypeahead', >args=(prj.pk,)), >-- >2.7.4 > >-- >_______________________________________________ >toaster mailing list >[email protected] >https://lists.yoctoproject.org/listinfo/toaster -- _______________________________________________ toaster mailing list [email protected] https://lists.yoctoproject.org/listinfo/toaster
