-
Notifications
You must be signed in to change notification settings - Fork 0
/
adjust_user_story_status.py
39 lines (33 loc) · 1.44 KB
/
adjust_user_story_status.py
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
from redmine_mysql import get_statuses_for_issues, get_children_of_issue, issue_has_children
from redmine_rest import erw
from utils import get_issues_from_command_line
status_priority = {
13: 0 # И Обсуждение = Обсуждение
,2: 1 # И В работе = В работе
,14: 2 # Требует доработки = В работе
,1: 3 # Новая
,3: 4 # Решена
,9: 5 # Проверена на тестовом
,5: 6 # Закрыта
}
def adjust_status_from_children(issue, status):
current_status = 5 #status
children = get_children_of_issue(issue)
statuses = get_statuses_for_issues(children)
for child in children:
if issue_has_children(child):
status = adjust_status_from_children(child, statuses[child])
if status != statuses[child]:
erw.set_issues_status(child, status)
else:
status = statuses[child]
if status_priority.get(status) is not None and status_priority.get(current_status) is not None:
if status_priority[status] < status_priority[current_status]:
current_status = status
return current_status
issues = get_issues_from_command_line
statuses_for_issues = get_statuses_for_issues(issues)
for issue in issues:
status = adjust_status_from_children(issue, statuses_for_issues[issue])
if status != statuses_for_issues[issue]:
erw.set_issues_status(issue, status)