all_cso_members.py (2351B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\services\alliances\all_cso_members.py 2 import blue 3 from eve.client.script.ui.services.alliances.all_cso_base import BaseAllianceObject 4 from eve.client.script.ui.shared.neocom.corporation import corpUISignals 5 from eveexceptions import UserError 6 7 class AllianceMembersO(BaseAllianceObject): 8 __guid__ = 'allianceObject.members' 9 10 def __init__(self, boundObject): 11 BaseAllianceObject.__init__(self, boundObject) 12 self.members = None 13 14 def DoSessionChanging(self, isRemote, session, change): 15 if 'allianceid' in change: 16 self.members = None 17 18 def GetMembers(self): 19 if self.members is None: 20 self.members = self.GetMoniker().GetMembers() 21 return self.members 22 23 def DeclareExecutorSupport(self, corpID): 24 current = self.base__alliance.GetAlliance() 25 if current.dictatorial and corpID != current.executorCorpID: 26 raise UserError('CanNotChooseExecutorAsDictatorial') 27 self.GetMoniker().DeclareExecutorSupport(corpID) 28 29 def DeleteMember(self, corpID): 30 self.GetMoniker().DeleteMember(corpID) 31 32 def OnAllianceMemberChanged(self, allianceID, corpID, change): 33 if allianceID != session.allianceid: 34 return 35 bAdd, bRemove = self.GetAddRemoveFromChange(change) 36 if self.members is not None: 37 if bAdd: 38 if len(change) != len(self.members.columns): 39 self.LogWarn('IncorrectNumberOfColumns ignoring change as Add change:', change) 40 return 41 line = [] 42 for columnName in self.members.columns: 43 line.append(change[columnName][1]) 44 45 self.members[corpID] = blue.DBRow(self.members.header, line) 46 else: 47 if corpID not in self.members: 48 return 49 if bRemove: 50 del self.members[corpID] 51 else: 52 member = self.members[corpID] 53 for columnName in change.iterkeys(): 54 setattr(member, columnName, change[columnName][1]) 55 56 corpUISignals.on_alliance_member_changed(allianceID, corpID, change) 57 58 def ResetMembers(self): 59 self.members = None