ownerGroupUtils.py (2087B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\structure\accessGroups\ownerGroupUtils.py 2 from brennivin.itertoolsext import Bundle 3 from eve.client.script.ui.control.allUserEntries import AllUserEntries 4 from eve.client.script.ui.util.linkUtil import GetItemIDFromTextLink 5 from ownergroups.ownergroupConst import MEMBERSHIP_TYPE_MEMBER, PUBLIC_MEMBER_ID 6 7 def GetOwnerIDsAndMembershipTypeFromNodes(nodes, useNodeMembershipType = False, membershipType = MEMBERSHIP_TYPE_MEMBER): 8 if not nodes: 9 return 10 firstNode = nodes[0] 11 guid = getattr(firstNode, '__guid__', None) 12 if guid not in AllUserEntries(): 13 nodes = GetTextLinkNode(firstNode) 14 if nodes is None: 15 return 16 membershipTypesByMemberID = {} 17 for eachNode in nodes: 18 if useNodeMembershipType: 19 membershipType = eachNode.get('membershipType', membershipType) 20 else: 21 membershipType = membershipType 22 membershipTypesByMemberID[eachNode.itemID] = membershipType 23 24 return membershipTypesByMemberID 25 26 27 def GetTextLinkNode(node): 28 validTypeIDs = [const.typeCharacter, const.typeCorporation, const.typeAlliance] 29 memberID = GetItemIDFromTextLink(node, validTypeIDs) 30 if memberID is None: 31 return 32 return [Bundle(itemID=memberID)] 33 34 35 def GetMemberIDsToUpdate(memberIDs, failedInfo): 36 failedIDs = {x[0] for x in failedInfo} 37 membersToUpdate = {x for x in memberIDs if x not in failedIDs} 38 return membersToUpdate 39 40 41 def GetOwnerTypeSortValue(typeID): 42 if typeID == const.typeCorporation: 43 return 2 44 if typeID == const.typeAlliance: 45 return 1 46 if typeID == PUBLIC_MEMBER_ID: 47 return 0 48 return 3 49 50 51 def ConvertDBRowToBundle(dbRow): 52 ret = Bundle() 53 for eachColName in dbRow.__columns__: 54 value = getattr(dbRow, eachColName) 55 ret[eachColName] = value 56 57 return ret 58 59 60 def GetMembershipTypeByMemberID(members): 61 membershipTypeByMemberID = {x.memberID:x.membershipType for x in members} 62 return membershipTypeByMemberID