6
from django.core.management.base import BaseCommand
6
from django.shortcuts import render
7
7
from mako.template import Template
10
10
from qlbr.models import Task
13
class Command(BaseCommand):
15
def handle(self, *args, **options):
17
for task in Task.objects.iterator():
18
bugid = task.bug.bug_id
20
'title': task.bug.title,
21
'taglist': task.bug.tag_list,
22
'date_created': task.date_created.isoformat(),
23
'age': (datetime.datetime.now(TZ) - task.date_created).days,
24
'importance': task.importance,
25
'status': task.status,
26
'web_link': task.web_link,
28
'owner': task.owner.display_name,
29
'triaged': task.triaged
31
dupe_of = task.bug.duplicate_of
33
report_task['duplicate_link'] = ('<a href="{}">{}</a>'
34
.format(task.web_link, bugid))
35
report_task['owner'] += ' (dup)'
36
bugid = dupe_of.bug_id
37
report_task['web_link'] = dupe_of.web_link
38
report_task['triaged'] = dupe_of.triaged
40
# Pilfered from collect-bug-data in lp:arsenal
41
m = re.search('(\S+)\s\(.*\)', task.bug_target_name)
43
report_task['target'] = m.group(1)
45
report_task['target'] = task.bug_target_name
46
m = re.search('(\S+)\s\(.*\)', task.bug_target_display_name)
48
report_task['target_display_name'] = m.group(1)
50
report_task['target_display_name'] = task.bug_target_display_name
52
report_task['target'] = report_task['target'].replace('.', '')
54
report_task['assignee'] = task.assignee.display_name
56
report_task['assignee'] = 'Unassigned'
57
if bugid not in tasks:
59
tasks[bugid].append(report_task)
61
template = Template(filename='qa-default.mako')
62
open('test.html', 'w').write(template.render(
65
timestamp=datetime.datetime.now().isoformat(),
16
for task in Task.objects.iterator():
17
bugid = task.bug.bug_id
19
'title': task.bug.title,
20
'taglist': task.bug.tag_list,
21
'date_created': task.date_created.isoformat(),
22
'age': (datetime.datetime.now(TZ) - task.date_created).days,
23
'importance': task.importance,
24
'status': task.status,
25
'web_link': task.web_link,
27
'owner': task.owner.display_name,
28
'triaged': task.triaged
30
dupe_of = task.bug.duplicate_of
32
report_task['duplicate_link'] = ('<a href="{}">{}</a>'
33
.format(task.web_link, bugid))
34
report_task['owner'] += ' (dup)'
35
bugid = dupe_of.bug_id
36
report_task['web_link'] = dupe_of.web_link
37
report_task['triaged'] = dupe_of.triaged
39
# Pilfered from collect-bug-data in lp:arsenal
40
m = re.search('(\S+)\s\(.*\)', task.bug_target_name)
42
report_task['target'] = m.group(1)
44
report_task['target'] = task.bug_target_name
45
m = re.search('(\S+)\s\(.*\)', task.bug_target_display_name)
47
report_task['target_display_name'] = m.group(1)
49
report_task['target_display_name'] = task.bug_target_display_name
51
report_task['target'] = report_task['target'].replace('.', '')
53
report_task['assignee'] = task.assignee.display_name
55
report_task['assignee'] = 'Unassigned'
56
if bugid not in tasks:
58
tasks[bugid].append(report_task)
62
for task in tasks[bugid]:
63
target = task['target']
64
name = task['target_display_name']
67
targets[target] = name
69
targets[target] = name
70
target_report_order = sorted([(targets[target], target) for target in targets])
71
tasks_json_dump = json.dumps(tasks, sort_keys=True, indent=4)
72
context = {'report_title': 'Test',
74
'timestamp': datetime.datetime.now().isoformat(),
76
'target_report_order': target_report_order,
77
'tasks_json_dump': tasks_json_dump}
78
return render(request, 'qlbr/qa-default.html', context)