goal_data_grouping.py (3006B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\careergoals\client\goal_data_grouping.py 2 from __future__ import absolute_import 3 from collections import defaultdict 4 import characterdata.careerpathconst as cpConst 5 from .goal_definition import GoalDefinition 6 7 def create_career_path_goal_groups(): 8 goal_definitions_per_career = {} 9 for cp in cpConst.career_paths: 10 if cp != cpConst.career_path_none: 11 goal_definitions_per_career[cp] = CareerPathGoalGroup() 12 13 return goal_definitions_per_career 14 15 16 class CareerPathGoalGroup(object): 17 18 def __init__(self): 19 self._career_path_goal_definition = None 20 self._goal_definitions_per_group = defaultdict(list) 21 22 @property 23 def career_path_goal_definition(self): 24 return self._career_path_goal_definition 25 26 @career_path_goal_definition.setter 27 def career_path_goal_definition(self, value): 28 self._career_path_goal_definition = value 29 30 def add_goal_definition(self, goal_definition): 31 self._goal_definitions_per_group[goal_definition.group_id].append(goal_definition) 32 33 def get_goal_definition(self, goal_id, group_id = None): 34 if group_id is None: 35 if self._career_path_goal_definition.goal_id == goal_id: 36 return self._career_path_goal_definition 37 for _, goal_definitions in self._goal_definitions_per_group.iteritems(): 38 for goal_definition in goal_definitions: 39 if goal_definition.goal_id == goal_id: 40 return goal_definition 41 42 def get_goal_definitions_in_group(self, group_id): 43 return self._goal_definitions_per_group.get(group_id, []) 44 45 def get_all_career_goal_definitions(self): 46 all_goal_definitions = [] 47 for _, goal_definitions in self._goal_definitions_per_group.iteritems(): 48 all_goal_definitions.extend(goal_definitions) 49 50 return all_goal_definitions 51 52 def sort_goal_definitions(self): 53 sorted_dict = {} 54 for activity_id, goal_definitions in self._goal_definitions_per_group.iteritems(): 55 sorted_dict[activity_id] = sorted(goal_definitions) 56 57 self._goal_definitions_per_group = sorted_dict 58 59 60 class OverallGoalGroup(object): 61 62 def __init__(self): 63 self._goal_definitions = [] 64 65 @property 66 def goal_definitions(self): 67 return self._goal_definitions 68 69 def get_goal_definition(self, goal_id): 70 for goal_definition in self.goal_definitions: 71 if goal_definition.goal_id == goal_id: 72 return goal_definition 73 74 def add_goal_definition(self, goal_definition): 75 self._goal_definitions.append(goal_definition) 76 self._sort() 77 78 def get_max_target(self): 79 if len(self._goal_definitions) > 0: 80 return self._goal_definitions[-1].target_value 81 return 0 82 83 def _sort(self): 84 if len(self._goal_definitions) > 0: 85 self._goal_definitions = sorted(self._goal_definitions)