taiga-back/greenmine/scrum/utils.py

65 lines
2.1 KiB
Python

from django.conf import settings
__all__ = ('SCRUM_STATES',)
class GmScrumStates(object):
def __init__(self):
self._states = settings.GM_SCRUM_STATES
def get_task_choices(self):
task_choices = []
for us_state in self._states.values():
task_choices += us_state['task_states']
return task_choices
def get_us_choices(self):
us_choices = []
for key, value in self._states.iteritems():
us_choices.append((key, value['name']))
return us_choices
def get_finished_task_states(self):
finished_task_states = []
for us_state in self._states.values():
if us_state['is_finished']:
finished_task_states += us_state['task_states']
return [ x[0] for x in finished_task_states ]
def get_unfinished_task_states(self):
unfinished_task_states = []
for us_state in self._states.values():
if not us_state['is_finished']:
unfinished_task_states += us_state['task_states']
return [ x[0] for x in unfinished_task_states ]
def get_finished_us_states(self):
finished_us_states = []
for key, value in self._states.iteritems():
if value['is_finished']:
finished_us_states.append(key)
return finished_us_states
def get_unfinished_us_states(self):
finished_us_states = []
for key, value in self._states.iteritems():
if not value['is_finished']:
finished_us_states.append(key)
return finished_us_states
def get_us_state_for_task_state(self, state):
for key, value in self._states.iteritems():
if state in [ x[0] for x in value['task_states'] ]:
return key
return None
def get_task_states_for_us_state(self, state):
if state in self._states.keys():
return [ x[0] for x in self._states[state]['task_states'] ]
return None
def ordered_us_states(self):
ordered = sorted([ (value['order'], key) for key, value in self._states.iteritems() ])
return [ x[1] for x in ordered ]
SCRUM_STATES = GmScrumStates()