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()