On 4 July 2016 at 15:49, Barros Pena, Belen <[email protected]> wrote:
> > > 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. > Upstreamed to bitbake-devel and pushed to toaster-next. Thanks. Elliot > > > >[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 > -- Elliot Smith Software Engineer Intel Open Source Technology Centre
-- _______________________________________________ toaster mailing list [email protected] https://lists.yoctoproject.org/listinfo/toaster
