NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

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)