goalsUtil.py (3873B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\corporation\client\goals\goalsUtil.py 2 import eveicon 3 import blue 4 import datetime 5 import datetimeutils 6 from dateutil.relativedelta import relativedelta 7 from carbon.common.script.sys.serviceConst import ROLE_QA 8 from carbonui.control.contextMenu.menuData import MenuData 9 from corporation.client.roles import is_project_manager 10 from localization import GetByLabel 11 from metadata import ContentTags 12 from metadata.common.content_tags.const import CAREER_PATH_TO_CONTENT_TAG_ID 13 14 def CanAuthorGoals(): 15 return is_project_manager() 16 17 18 def get_content_tags_for_corp_goal(goal): 19 result = [ContentTags.feature_corporation_projects] 20 if goal.career_path: 21 result.append(CAREER_PATH_TO_CONTENT_TAG_ID.get(goal.career_path)) 22 result.extend([ content_tag_id for content_tag_id in goal.contribution_method.content_tags if content_tag_id not in (ContentTags.career_path_enforcer, 23 ContentTags.career_path_explorer, 24 ContentTags.career_path_industrialist, 25 ContentTags.career_path_soldier_of_fortune) ]) 26 return result 27 28 29 def get_menu_for_corp_job(goal): 30 m = MenuData() 31 from corporation.client.goals.goalsController import CorpGoalsController 32 from eve.client.script.ui.shared.neocom.corporation.corp_goals.forms import goalForms 33 controller = CorpGoalsController.get_instance() 34 if session.role & ROLE_QA: 35 m.AddEntry('Goal ID: {goal_id}'.format(goal_id=goal.get_id()), lambda : blue.pyos.SetClipboardData(str(goal.get_id()))) 36 if CanAuthorGoals(): 37 m.AddSeparator() 38 m.AddEntry(GetByLabel('UI/Corporations/Goals/CloneProject'), lambda : goalForms.OpenDuplicateGoalFormWindow(original=goal), texturePath=eveicon.copy) 39 if goal.is_active(): 40 if goal.is_manual(): 41 m.AddEntry(GetByLabel('UI/Corporations/Goals/SetProgress'), lambda : goalForms.OpenSetGoalProgressFormWindow(goal)) 42 m.AddEntry(GetByLabel('UI/Corporations/Goals/CompleteProject'), lambda : controller.complete_goal(goal.get_id()), texturePath=eveicon.checkmark) 43 m.AddEntry(GetByLabel('UI/Corporations/Goals/CloseProject'), lambda : controller.close_goal(goal.get_id()), texturePath=eveicon.close) 44 if not goal.get_current_progress(): 45 m.AddSeparator() 46 m.AddEntry(GetByLabel('UI/Corporations/Goals/DeleteProject'), lambda : controller.delete_goal(goal.get_id()), texturePath=eveicon.trashcan) 47 location_id = goal.get_location_id() 48 if location_id: 49 m.AddSeparator() 50 text = u'{}: {}'.format(GetByLabel('UI/Common/Location'), cfg.evelocations.Get(location_id).locationName) 51 m.AddEntry(text, subMenuData=sm.GetService('menu').CelestialMenu(location_id)) 52 return m 53 54 55 def get_timespan_options(): 56 from timeDateHelpers.const import MONTHANDYEAR_NAME_TEXT 57 options = [] 58 options.append((GetByLabel('UI/Wallet/WalletWindow/Last30Days'), None)) 59 today = datetime.date.today() 60 for i in range(1, 6): 61 option_date = today - relativedelta(months=i) 62 options.append((GetByLabel(MONTHANDYEAR_NAME_TEXT[option_date.month - 1], year=option_date.year), i)) 63 64 return options 65 66 67 def get_timespan_by_option(months_since = None): 68 if months_since is None: 69 start_time = datetimeutils.datetime_to_timestamp(datetime.date.today() - relativedelta(days=30)) 70 end_time = datetimeutils.datetime_to_timestamp(datetime.datetime.now()) 71 duration = end_time - start_time 72 return (start_time, duration) 73 start_date = datetime.date.today().replace(day=1) - relativedelta(months=months_since) 74 end_date = start_date + relativedelta(months=1) 75 start_time = datetimeutils.datetime_to_timestamp(start_date) 76 duration = datetimeutils.datetime_to_timestamp(end_date) - start_time 77 return (start_time, duration)