~nuclearbob/qlbr/drop-searches

« back to all changes in this revision

Viewing changes to qlbr/views.py

  • Committer: Max Brustkern
  • Date: 2014-09-02 20:43:19 UTC
  • Revision ID: max@canonical.com-20140902204319-1zvqk0vj2qbf2qxw
Improved handling of duplicate bugs and bugs that have moved to a different project

Show diffs side-by-side

added added

removed removed

Lines of Context:
39
39
]
40
40
 
41
41
 
 
42
def task_data(task):
 
43
    data = {
 
44
        'title': task.bug.title,
 
45
        'taglist': task.bug.tag_list,
 
46
        'date_created': task.date_created.isoformat(),
 
47
        'age': (datetime.datetime.now(TZ) - task.date_created).days,
 
48
        'importance': task.importance,
 
49
        'status': task.status,
 
50
        'web_link': task.web_link,
 
51
        'duplicate_link': '',
 
52
        'owner': task.owner.display_name,
 
53
        'triaged': task.triaged,
 
54
    }
 
55
    if task.bug.duplicate_of:
 
56
        data.update(task_data(task.bug.duplicate_of.task_set.first()))
 
57
        data['taglist'] = task.bug.tag_list
 
58
        data['duplicate_link'] = '<a href="{}">{}</a>'.format(task.web_link,
 
59
                                                              task.bug.bug_id)
 
60
    return data
 
61
 
 
62
 
42
63
def index(request, task_filter=None, triaged=None):
43
64
    """Main view of all bugs.
44
65
 
67
88
    task_iterator = task_objects.iterator()
68
89
    for task in task_iterator:
69
90
        bugid = task.bug.bug_id
70
 
        report_task = {
71
 
            'title': task.bug.title,
72
 
            'taglist': task.bug.tag_list,
73
 
            'date_created': task.date_created.isoformat(),
74
 
            'age': (datetime.datetime.now(TZ) - task.date_created).days,
75
 
            'importance': task.importance,
76
 
            'status': task.status,
77
 
            'web_link': task.web_link,
78
 
            'duplicate_link': '',
79
 
            'owner': task.owner.display_name,
80
 
            'triaged': task.triaged,
81
 
        }
 
91
        report_task = task_data(task)
82
92
        if triaged is not None:
83
93
            if task.triaged != triaged:
84
94
                continue
85
 
        dupe_of = task.bug.duplicate_of
86
 
        if dupe_of:
87
 
            report_task['duplicate_link'] = ('<a href="{}">{}</a>'
88
 
                                             .format(task.web_link, bugid))
89
 
            report_task['owner'] += ' (dup)'
90
 
            bugid = dupe_of.bug_id
91
 
            report_task['web_link'] = dupe_of.web_link
92
 
            report_task['triaged'] = dupe_of.triaged
93
 
            report_task['status'] = dupe_of.task_set.first().status
94
 
            report_task['target'] = (dupe_of.task_set.first()
95
 
                                     .bug_target_display_name)
96
95
 
97
96
        # Pilfered from collect-bug-data in lp:arsenal
98
97
        m = re.search('(\S+)\s\(.*\)', task.bug_target_display_name)