Пример #1
0
    def updateList(self, selectedID, result):
        isFullUpdate, diff = False, []
        self._selectedIdx = None
        result = set(result)
        for clubItem in result:
            try:
                index = self.mapping[clubItem.getID()]
                item = self.collection[index]
            except (KeyError, IndexError):
                LOG_ERROR('Item not found', clubItem)
                continue

            item.update({
                'rating':
                self.getGuiUserRating(clubItem.getCreatorID()),
                'playersCount':
                clubItem.getMembersCount(),
                'commandSize':
                clubItem.getCommandSize(),
                'description':
                clubItem.getDescription(),
                'ladderIcon':
                getLadderChevron16x16(clubItem.getDivision())
            })
            diff.append(index)

        if self._selectedIdx is None and selectedID in self.mapping:
            self._selectedIdx = self.mapping[selectedID]
        if isFullUpdate:
            self.refresh()
        elif len(diff):
            self.updateItems(diff)
        return self._selectedIdx
Пример #2
0
    def updateList(self, selectedID, result):
        isFullUpdate, diff = False, []
        self._selectedIdx = None
        result = set(result)
        for clubItem in result:
            try:
                index = self.mapping[clubItem.getID()]
                item = self.collection[index]
            except (KeyError, IndexError):
                LOG_ERROR('Item not found', clubItem)
                continue

            item.update({'rating': self.getGuiUserRating(clubItem.getCreatorID()),
             'playersCount': clubItem.getMembersCount(),
             'commandSize': clubItem.getCommandSize(),
             'description': clubItem.getDescription(),
             'ladderIcon': getLadderChevron16x16(clubItem.getDivision())})
            diff.append(index)

        if self._selectedIdx is None and selectedID in self.mapping:
            self._selectedIdx = self.mapping[selectedID]
        if isFullUpdate:
            self.refresh()
        elif len(diff):
            self.updateItems(diff)
        return self._selectedIdx
Пример #3
0
    def buildList(self, selectedID, result, syncUserInfo=True):
        self.clear()
        userGetter = storage_getter('users')().getUser
        colorGetter = g_settings.getColorScheme('rosters').getColors
        ratingFormatter = BigWorld.wg_getIntegralFormat
        self._selectedIdx = -1
        self._lastResult = result
        data = []
        for clubItem in result:
            cfdUnitID = clubItem.getID()
            creatorID = clubItem.getCreatorID()
            rating = self.getUserRating(creatorID)
            creator = self._UserEntityAdapter(creatorID, clubItem,
                                              userGetter(creatorID), self)
            creatorName = creator.getName()
            creatorVO = makeUserVO(creator, colorGetter)
            index = len(self.collection)
            if cfdUnitID == selectedID:
                self._selectedIdx = index
            self.mapping[cfdUnitID] = index
            data.append((rating, {
                'cfdUnitID':
                cfdUnitID,
                'unitMgrID':
                cfdUnitID,
                'creator':
                creatorVO,
                'creatorName':
                creatorName,
                'rating':
                self.getGuiUserRating(creatorID),
                'playersCount':
                clubItem.getMembersCount(),
                'commandSize':
                clubItem.getCommandSize(),
                'inBattle':
                False,
                'isFreezed':
                False,
                'isRestricted':
                False,
                'description':
                html.escape(clubItem.getShortDescription()),
                'peripheryID':
                -1,
                'server':
                None,
                'ladderIcon':
                getLadderChevron16x16(clubItem.getDivision()),
                'isStatic':
                True
            }))

        self.collection.extend(
            map(lambda (r, c): c,
                sorted(data, reverse=True, key=operator.itemgetter(0))))
        if syncUserInfo:
            self.syncUsersInfo()
        return self._selectedIdx
Пример #4
0
    def buildList(self, selectedID, result, syncUserInfo=True):
        self.clear()
        userGetter = storage_getter("users")().getUser
        colorGetter = g_settings.getColorScheme("rosters").getColors
        ratingFormatter = BigWorld.wg_getIntegralFormat
        self._selectedIdx = -1
        self._lastResult = result
        data = []
        for clubItem in result:
            cfdUnitID = clubItem.getID()
            creatorID = clubItem.getCreatorID()
            rating = self.getUserRating(creatorID)
            creator = self._UserEntityAdapter(creatorID, clubItem, userGetter(creatorID), self)
            creatorName = creator.getName()
            creatorVO = makeUserVO(creator, colorGetter)
            index = len(self.collection)
            if cfdUnitID == selectedID:
                self._selectedIdx = index
            self.mapping[cfdUnitID] = index
            data.append(
                (
                    rating,
                    {
                        "cfdUnitID": cfdUnitID,
                        "unitMgrID": cfdUnitID,
                        "creator": creatorVO,
                        "creatorName": creatorName,
                        "rating": self.getGuiUserRating(creatorID),
                        "playersCount": clubItem.getMembersCount(),
                        "commandSize": clubItem.getCommandSize(),
                        "inBattle": False,
                        "isFreezed": False,
                        "isRestricted": False,
                        "description": html.escape(clubItem.getShortDescription()),
                        "peripheryID": -1,
                        "server": None,
                        "ladderIcon": getLadderChevron16x16(clubItem.getDivision()),
                        "isStatic": True,
                    },
                )
            )

        self.collection.extend(map(lambda (r, c): c, sorted(data, reverse=True, key=operator.itemgetter(0))))
        if syncUserInfo:
            self.syncUsersInfo()
        return self._selectedIdx
Пример #5
0
    def buildList(self, selectedID, result):
        self.clear()
        userGetter = storage_getter("users")().getUser
        colorGetter = g_settings.getColorScheme("rosters").getColors
        pNameGetter = g_lobbyContext.getPeripheryName
        ratingFormatter = BigWorld.wg_getIntegralFormat
        self._selectedIdx = -1
        for unitItem in result:
            creator = unitItem.creator
            if creator:
                dbID = creator.dbID
                creatorVO = makePlayerVO(creator, userGetter(dbID), colorGetter)
            else:
                creatorVO = {}
            if unitItem.isClub:
                ladderIcon = getLadderChevron16x16(unitItem.extra.divisionID)
            else:
                ladderIcon = None
            cfdUnitID = unitItem.cfdUnitID
            index = len(self.collection)
            if cfdUnitID == selectedID:
                self._selectedIdx = index
            self.mapping[cfdUnitID] = index
            self.collection.append(
                {
                    "cfdUnitID": cfdUnitID,
                    "unitMgrID": unitItem.unitMgrID,
                    "creator": creatorVO,
                    "creatorName": creatorVO.get("userName", ""),
                    "rating": ratingFormatter(unitItem.rating),
                    "playersCount": unitItem.playersCount,
                    "commandSize": unitItem.commandSize,
                    "inBattle": unitItem.flags.isInArena(),
                    "isFreezed": unitItem.flags.isLocked(),
                    "isRestricted": unitItem.isRosterSet,
                    "description": unitItem.description,
                    "peripheryID": unitItem.peripheryID,
                    "server": pNameGetter(unitItem.peripheryID),
                    "ladderIcon": ladderIcon,
                    "isStatic": unitItem.isClub,
                }
            )

        return self._selectedIdx
Пример #6
0
    def buildList(self, selectedID, result):
        self.clear()
        userGetter = storage_getter('users')().getUser
        colorGetter = g_settings.getColorScheme('rosters').getColors
        pNameGetter = g_lobbyContext.getPeripheryName
        ratingFormatter = BigWorld.wg_getIntegralFormat
        self._selectedIdx = -1
        for unitItem in result:
            creator = unitItem.creator
            if creator:
                dbID = creator.dbID
                creatorVO = makePlayerVO(creator, userGetter(dbID),
                                         colorGetter)
            else:
                creatorVO = {}
            if unitItem.isClub:
                ladderIcon = getLadderChevron16x16(unitItem.extra.divisionID)
            else:
                ladderIcon = None
            cfdUnitID = unitItem.cfdUnitID
            index = len(self.collection)
            if cfdUnitID == selectedID:
                self._selectedIdx = index
            self.mapping[cfdUnitID] = index
            self.collection.append({
                'cfdUnitID': cfdUnitID,
                'unitMgrID': unitItem.unitMgrID,
                'creator': creatorVO,
                'creatorName': creatorVO.get('userName', ''),
                'rating': ratingFormatter(unitItem.rating),
                'playersCount': unitItem.playersCount,
                'commandSize': unitItem.commandSize,
                'inBattle': unitItem.flags.isInArena(),
                'isFreezed': unitItem.flags.isLocked(),
                'isRestricted': unitItem.isRosterSet,
                'description': unitItem.description,
                'peripheryID': unitItem.peripheryID,
                'server': pNameGetter(unitItem.peripheryID),
                'ladderIcon': ladderIcon,
                'isStatic': unitItem.isClub
            })

        return self._selectedIdx
Пример #7
0
    def buildList(self, selectedID, result, syncUserInfo = True):
        self.clear()
        userGetter = storage_getter('users')().getUser
        colorGetter = g_settings.getColorScheme('rosters').getColors
        ratingFormatter = BigWorld.wg_getIntegralFormat
        self._selectedIdx = -1
        self._lastResult = result
        data = []
        for clubItem in result:
            cfdUnitID = clubItem.getID()
            creatorID = clubItem.getCreatorID()
            creator = userGetter(creatorID)
            rating = self.getUserRating(creatorID)
            if creator is None:
                creator = self._UserEntityAdapter(creatorID, self)
            creatorName = creator.getName()
            creatorVO = makeUserVO(creator, colorGetter)
            index = len(self.collection)
            if cfdUnitID == selectedID:
                self._selectedIdx = index
            self.mapping[cfdUnitID] = index
            data.append((rating, {'cfdUnitID': cfdUnitID,
              'unitMgrID': cfdUnitID,
              'creator': creatorVO,
              'creatorName': creatorName,
              'rating': ratingFormatter(rating),
              'playersCount': clubItem.getMembersCount(),
              'commandSize': clubItem.getCommandSize(),
              'inBattle': False,
              'isFreezed': False,
              'isRestricted': False,
              'description': html.escape(clubItem.getShortDescription()),
              'peripheryID': -1,
              'server': None,
              'ladderIcon': getLadderChevron16x16(clubItem.getDivision()),
              'isStatic': True}))

        self.collection.extend(map(lambda (r, c): c, sorted(data, reverse=True, key=operator.itemgetter(0))))
        if syncUserInfo:
            self.syncUsersInfo()
        return self._selectedIdx
Пример #8
0
    def buildList(self, selectedID, result):
        self.clear()
        userGetter = storage_getter('users')().getUser
        colorGetter = g_settings.getColorScheme('rosters').getColors
        pNameGetter = g_lobbyContext.getPeripheryName
        ratingFormatter = BigWorld.wg_getIntegralFormat
        self._selectedIdx = -1
        for unitItem in result:
            creator = unitItem.creator
            if creator:
                dbID = creator.dbID
                creatorVO = makePlayerVO(creator, userGetter(dbID), colorGetter)
            else:
                creatorVO = {}
            if unitItem.isClub:
                ladderIcon = getLadderChevron16x16(unitItem.extra.divisionID)
            else:
                ladderIcon = None
            cfdUnitID = unitItem.cfdUnitID
            index = len(self.collection)
            if cfdUnitID == selectedID:
                self._selectedIdx = index
            self.mapping[cfdUnitID] = index
            self.collection.append({'cfdUnitID': cfdUnitID,
             'unitMgrID': unitItem.unitMgrID,
             'creator': creatorVO,
             'creatorName': creatorVO.get('userName', ''),
             'rating': ratingFormatter(unitItem.rating),
             'playersCount': unitItem.playersCount,
             'commandSize': unitItem.commandSize,
             'inBattle': unitItem.flags.isInArena(),
             'isFreezed': unitItem.flags.isLocked(),
             'isRestricted': unitItem.isRosterSet,
             'description': unitItem.description,
             'peripheryID': unitItem.peripheryID,
             'server': pNameGetter(unitItem.peripheryID),
             'ladderIcon': ladderIcon,
             'isStatic': unitItem.isClub})

        return self._selectedIdx
Пример #9
0
 def getLadderChevron(self):
     return getLadderChevron16x16(self.division)
Пример #10
0
 def getLadderChevron(self):
     return getLadderChevron16x16(self.division)