aboutsummaryrefslogtreecommitdiffstats
path: root/Post/createStatistics.py
blob: 213927a52afc3a965caa6fe5352e634e8ddae03f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#!/usr/bin/env python

# Create statistics. Update database.
#
# Copyright (C) 2013 Intel Corporation
# Author: Andreea Brandusa Proca <andreea.b.proca@intel.com>
#
# Licensed under the MIT license, see COPYING.MIT for details

import sys, os
from Post.models import Build, BuildFailure
from django.db.models import Count
import re
from datetime import datetime, timedelta
from django import utils

class Statistics:

    def chart_statistics(self, string):
        startdate = utils.timezone.now()
        enddate = startdate - timedelta(days=14)
        if string == "DATE":
            date = Build.objects.filter(DATE__range=[enddate,
                                                     startdate]).values('DATE').annotate(dcount=Count('DATE'))[:6]
            items = list(date)
            return items
        if string == "MACHINE":
            machines = Build.objects.filter(DATE__range=[enddate, startdate]).values('MACHINE').annotate(dcount=Count('MACHINE')).order_by('-dcount')[:6]
            items = list(machines)
            return items
        elif string == "BRANCH":
            branch = Build.objects.filter(DATE__range=[enddate, startdate]).values('BRANCH').annotate(dcount=Count('BRANCH')).order_by('-dcount')[:6]
            items = list(branch)
            return items
        elif string == "COMMIT":
            branch = Build.objects.filter(DATE__range=[enddate, startdate]).values('COMMIT').annotate(dcount=Count('COMMIT')).order_by('-dcount')[:6]
            items = list(branch)
            return items
        elif string == "TARGET":
            images = Build.objects.filter(DATE__range=[enddate, startdate]).values('TARGET').annotate(dcount=Count('TARGET')).order_by('-dcount')[:6]
            items = list(images)
            return items
        elif string == "RECIPE":
            errors = BuildFailure.objects.filter(BUILD__DATE__range=[enddate, startdate]).values('RECIPE').annotate(dcount=Count('RECIPE')).order_by('-dcount')[:6]
            items = list(errors)
            return items
        elif string =="DISTRO":
            errors = Build.objects.filter(DATE__range=[enddate, startdate]).values('DISTRO').annotate(dcount=Count('DISTRO')).order_by('-dcount')[:6]
            items = list(errors)
            return items
        elif string == "NATIVELSBSTRING":
            errors = Build.objects.filter(DATE__range=[enddate, startdate]).values('NATIVELSBSTRING').annotate(dcount=Count('NATIVELSBSTRING')).order_by('-dcount')[:6]
            items = list(errors)
            return items;
        elif string == "TARGET_SYS":
            errors = Build.objects.filter(DATE__range=[enddate, startdate]).values('TARGET_SYS').annotate(dcount=Count('TARGET_SYS')).order_by('-dcount')[:6]
            items = list(errors)
            return items
        elif string == "BUILD_SYS":
            errors = Build.objects.filter(DATE__range=[enddate, startdate]).values('BUILD_SYS').annotate(dcount=Count('BUILD_SYS')).order_by('-dcount')[:6]
            items = list(errors)
            return items
        return {}