def __makeGlobalMapBlock(self, globalMapStats, ratings): hasGlobalMap = globalMapStats.hasGlobalMap() if hasGlobalMap: notActual = ratings.getGlobalMapBattlesFor28Days() <= 0 stats = [{'local': 'rageLevel10', 'value': formatField(getter=ratings.getGlobalMapEloRating10, formatter=BigWorld.wg_getIntegralFormat), 'timeExpired': notActual, 'tooltip': CLANS.CLANPROFILE_SUMMARYVIEW_TOOLTIP_GMAP_ELO_RAGE_10_BODY}, {'local': 'rageLevel8', 'value': formatField(getter=ratings.getGlobalMapEloRating8, formatter=BigWorld.wg_getIntegralFormat), 'timeExpired': notActual, 'tooltip': CLANS.CLANPROFILE_SUMMARYVIEW_TOOLTIP_GMAP_ELO_RAGE_8_BODY}, {'local': 'rageLevel6', 'value': formatField(getter=ratings.getGlobalMapEloRating6, formatter=BigWorld.wg_getIntegralFormat), 'timeExpired': notActual, 'tooltip': CLANS.CLANPROFILE_SUMMARYVIEW_TOOLTIP_GMAP_ELO_RAGE_6_BODY}, {'local': 'battlesCount', 'value': formatField(getter=ratings.getGlobalMapBattlesFor28Days, formatter=BigWorld.wg_getIntegralFormat), 'tooltip': CLANS.CLANPROFILE_SUMMARYVIEW_TOOLTIP_GMAP_BATTLES_COUNT_BODY}, {'local': 'provinces', 'value': formatField(getter=globalMapStats.getCurrentProvincesCount, formatter=BigWorld.wg_getIntegralFormat), 'tooltip': CLANS.CLANPROFILE_SUMMARYVIEW_TOOLTIP_GMAP_PROVINCE_BODY}] statsBlock = self.__makeStatsBlock(stats) emptyLbl = '' else: statsBlock = () if isValueAvailable(globalMapStats.hasGlobalMap): emptyLbl = text_styles.standard(CLANS.CLANPROFILE_SUMMARYVIEW_BLOCKLBL_EMPTYGLOBALMAP) else: emptyLbl = '%s %s' % (icons.alert(), text_styles.standard(CLANS.CLANPROFILE_SUMMARYVIEW_NODATA)) return {'isShowHeader': True, 'header': text_styles.highTitle(CLANS.CLANPROFILE_MAINWINDOWTAB_GLOBALMAP), 'statBlocks': statsBlock, 'emptyLbl': emptyLbl, 'isActivated': hasGlobalMap}
def _getWeighedAvgStringValue(dataList, key, weightKey, formatter=None): vals = [] weights = [] weightsSum = 0 for item in dataList: valueGetter = getattr(item, key) weightGetter = getattr(item, weightKey) if items.isValueAvailable(valueGetter) and items.isValueAvailable(weightGetter): weight = weightGetter() vals.append(valueGetter()) weights.append(weight) weightsSum += weight return (False, clans_fmts.DUMMY_UNAVAILABLE_DATA) if weightsSum == 0: return (False, clans_fmts.DUMMY_UNAVAILABLE_DATA) outcome = weightedAvg(vals, weights) return (True, formatter(outcome) if formatter else outcome)
def _getWeighedAvgStringValue(dataList, key, weightKey, formatter = None): vals = [] weights = [] weightsSum = 0 for item in dataList: valueGetter = getattr(item, key) weightGetter = getattr(item, weightKey) if items.isValueAvailable(valueGetter) and items.isValueAvailable(weightGetter): weight = weightGetter() vals.append(valueGetter()) weights.append(weight) weightsSum += weight else: return (False, clans_fmts.DUMMY_UNAVAILABLE_DATA) if weightsSum == 0: return (False, clans_fmts.DUMMY_UNAVAILABLE_DATA) outcome = weightedAvg(vals, weights) return (True, formatter(outcome) if formatter else outcome)
def _makeVO(self, item, extraData): isChecked = extraData['checked'] status = item.getStatus() outcome = { 'dbID': item.getDbID(), 'checked': isChecked, 'clanVO': { 'fullName': formatField(getter=item.getClanFullName), 'clanName': formatField(getter=item.getClanName), 'clanAbbrev': formatField(getter=item.getClanAbbrev), 'dbID': item.getClanDbID(), 'isActive': item.isClanActive() }, 'personalRating': formatField(getter=item.getPersonalRating, formatter=BigWorld.wg_getIntegralFormat), 'battlesCount': formatField(getter=item.getBattlesCount, formatter=BigWorld.wg_getIntegralFormat), 'wins': formatField(getter=item.getBattleXpAvg, formatter=lambda value: BigWorld. wg_getNiceNumberFormat(value) + '%'), 'awgExp': formatField(getter=item.getBattlesPerformanceAvg, formatter=BigWorld.wg_getIntegralFormat), 'status': { 'text': self._makeInviteStateString(item), 'tooltip': self._makeTooltip(body=self._makeRequestTooltip( status=item.getStatus(), user=formatField(getter=item.getSenderName), date=formatField( getter=item.getUpdatedAt, formatter=formatters.formatShortDateShortTimeString))) }, 'enabled': status == CLAN_INVITE_STATES.ACTIVE or status == CLAN_INVITE_STATES.ERROR, 'canShowContextMenu': True, 'messageTooltip': self._makeTooltip( body=escape(item.getComment()) if isValueAvailable( getter=item.getComment) else str()), 'actions': self.__buildActionsSection(item.getStatus()) } return outcome
def __formatActiveStateString(self, item): if not isValueAvailable(getter=item.getCreatedAt): return _ms(CLANS.CLANINVITESWINDOW_STATUS_MINUTESLEFT, min=formatField(getter=item.getCreatedAt)) createdAt = item.getCreatedAt() delta = time_utils.getTimeDeltaFromNow(createdAt + ACTIVE_INVITE_LIFE_TIME) if delta >= time_utils.ONE_DAY: state = _ms(CLANS.CLANINVITESWINDOW_STATUS_DAYSLEFT, days=int(math.ceil(float(delta) / time_utils.ONE_DAY))) elif delta >= time_utils.ONE_HOUR: state = _ms(CLANS.CLANINVITESWINDOW_STATUS_HOURSLEFT, hours=int(math.ceil(float(delta) / time_utils.ONE_HOUR))) else: mins = max(1, int(delta / time_utils.ONE_MINUTE)) state = _ms(CLANS.CLANINVITESWINDOW_STATUS_MINUTESLEFT, min=mins) return state
def _makeVO(self, item, extraData): return {'dbID': item.getDbID(), 'userInfo': {'userName': item.getAccountName(), 'dbID': item.getAccountDbID()}, 'personalRating': formatField(getter=item.getPersonalRating, formatter=BigWorld.wg_getIntegralFormat), 'battlesCount': formatField(getter=item.getBattlesCount, formatter=BigWorld.wg_getIntegralFormat), 'wins': formatField(getter=item.getBattlesPerformanceAvg, formatter=lambda value: BigWorld.wg_getNiceNumberFormat(value) + '%'), 'awgExp': formatField(getter=item.getBattleXpAvg, formatter=BigWorld.wg_getIntegralFormat), 'status': {'text': self._makeInviteStateString(item), 'tooltip': self._makeTooltip(body=self._makeRequestTooltip(status=item.getStatus(), user=formatField(getter=item.getChangerName), date=formatField(getter=item.getUpdatedAt, formatter=formatters.formatShortDateShortTimeString)))}, 'canShowContextMenu': True, 'messageTooltip': self._makeTooltip(body=item.getComment() if isValueAvailable(getter=item.getComment) else str()), 'actions': self.__buildActionsSection(item.getStatus())}
def _makeVO(self, item, extra): return {'dbID': item.getDbID(), 'userInfo': {'userName': formatField(getter=item.getAccountName), 'dbID': item.getAccountDbID()}, 'personalRating': formatField(getter=item.getPersonalRating, formatter=BigWorld.wg_getIntegralFormat), 'battlesCount': formatField(getter=item.getBattlesCount, formatter=BigWorld.wg_getIntegralFormat), 'wins': formatField(getter=item.getBattlesPerformanceAvg, formatter=lambda value: BigWorld.wg_getNiceNumberFormat(value) + '%'), 'awgExp': formatField(getter=item.getBattleXpAvg, formatter=BigWorld.wg_getIntegralFormat), 'status': {'text': self._makeInviteStateString(item), 'tooltip': self._makeTooltip(body=self._makeRequestTooltip(status=item.getStatus(), user=formatField(getter=item.getSenderName), date=formatField(getter=item.getUpdatedAt, formatter=formatters.formatShortDateShortTimeString)))}, 'canShowContextMenu': True, 'messageTooltip': self._makeTooltip(body=item.getComment() if isValueAvailable(getter=item.getComment) else str()), 'sent': formatField(getter=item.getCreatedAt, formatter=formatters.formatShortDateShortTimeString)}
def _getAvgStringValue(dataList, key, formatter=None): count = 0 total = 0 for item in dataList: getter = getattr(item, key) if items.isValueAvailable(getter): count += 1 total += getter() return (False, clans_fmts.DUMMY_UNAVAILABLE_DATA) if count > 0: value = float(total) / count return (True, formatter(value) if formatter else value) return (False, clans_fmts.DUMMY_UNAVAILABLE_DATA)
def _getAvgStringValue(dataList, key, formatter = None): count = 0 total = 0 for item in dataList: getter = getattr(item, key) if items.isValueAvailable(getter): count += 1 total += getter() else: return (False, clans_fmts.DUMMY_UNAVAILABLE_DATA) if count > 0: value = float(total) / count return (True, formatter(value) if formatter else value) else: return (False, clans_fmts.DUMMY_UNAVAILABLE_DATA)
def _makeVO(self, item, extraData): isChecked = extraData['checked'] status = item.getStatus() outcome = {'dbID': item.getDbID(), 'checked': isChecked, 'clanVO': {'fullName': formatField(getter=item.getClanFullName), 'clanName': formatField(getter=item.getClanName), 'clanAbbrev': formatField(getter=item.getClanAbbrev), 'dbID': item.getClanDbID(), 'isActive': item.isClanActive()}, 'personalRating': formatField(getter=item.getPersonalRating, formatter=BigWorld.wg_getIntegralFormat), 'battlesCount': formatField(getter=item.getBattlesCount, formatter=BigWorld.wg_getIntegralFormat), 'wins': formatField(getter=item.getBattleXpAvg, formatter=lambda value: BigWorld.wg_getNiceNumberFormat(value) + '%'), 'awgExp': formatField(getter=item.getBattlesPerformanceAvg, formatter=BigWorld.wg_getIntegralFormat), 'status': {'text': self._makeInviteStateString(item), 'tooltip': self._makeTooltip(body=self._makeRequestTooltip(status=item.getStatus(), user=formatField(getter=item.getSenderName), date=formatField(getter=item.getUpdatedAt, formatter=formatters.formatShortDateShortTimeString)))}, 'enabled': status == CLAN_INVITE_STATES.ACTIVE or status == CLAN_INVITE_STATES.ERROR, 'canShowContextMenu': True, 'messageTooltip': self._makeTooltip(body=item.getComment() if isValueAvailable(getter=item.getComment) else str()), 'actions': self.__buildActionsSection(item.getStatus())} return outcome
def _makeVO(self, item, extraData): isChecked = extraData["checked"] status = item.getStatus() outcome = { "dbID": item.getDbID(), "checked": isChecked, "clanVO": { "fullName": formatField(getter=item.getClanFullName), "clanName": formatField(getter=item.getClanName), "clanAbbrev": formatField(getter=item.getClanAbbrev), "dbID": item.getClanDbID(), "isActive": item.isClanActive(), }, "personalRating": formatField(getter=item.getPersonalRating, formatter=BigWorld.wg_getIntegralFormat), "battlesCount": formatField(getter=item.getBattlesCount, formatter=BigWorld.wg_getIntegralFormat), "wins": formatField( getter=item.getBattleXpAvg, formatter=lambda value: BigWorld.wg_getNiceNumberFormat(value) + "%" ), "awgExp": formatField(getter=item.getBattlesPerformanceAvg, formatter=BigWorld.wg_getIntegralFormat), "status": { "text": self._makeInviteStateString(item), "tooltip": self._makeTooltip( body=self._makeRequestTooltip( status=item.getStatus(), user=formatField(getter=item.getSenderName), date=formatField(getter=item.getUpdatedAt, formatter=formatters.formatShortDateShortTimeString), ) ), }, "enabled": status == CLAN_INVITE_STATES.ACTIVE or status == CLAN_INVITE_STATES.ERROR, "canShowContextMenu": True, "messageTooltip": self._makeTooltip( body=escape(item.getComment()) if isValueAvailable(getter=item.getComment) else str() ), "actions": self.__buildActionsSection(item.getStatus()), } return outcome
def setClanDossier(self, clanDossier): super(ClanProfileGlobalMapView, self).setClanDossier(clanDossier) self._showWaiting() clanInfo = yield clanDossier.requestClanInfo() if not clanInfo.isValid(): self._dummyMustBeShown = True self._updateDummy() self._hideWaiting() return globalMapStats = yield clanDossier.requestGlobalMapStats() if self.isDisposed(): return self._updateClanInfo(clanInfo) if isValueAvailable(globalMapStats.hasGlobalMap): if globalMapStats.hasGlobalMap(): linkage = CLANS_ALIASES.CLAN_PROFILE_GLOBALMAP_INFO_VIEW_LINKAGE else: linkage = CLANS_ALIASES.CLAN_PROFILE_GLOBALMAP_PROMO_VIEW_LINKAGE self.as_setDataS(linkage) else: self._dummyMustBeShown = True self._updateDummy() self._updateHeaderState() self._hideWaiting()
def __getMemberRole(self, memberData): if not items.isValueAvailable(memberData.getRole): return len(_CLAN_MEMBERS_SORT_INDEXES) return _CLAN_MEMBERS_SORT_INDEXES.index(memberData.getRole())
def __isRobbed(self, province): isRobbed = False if isValueAvailable(province.getPillageCooldown): isRobbed = bool(province.pillage_cooldown) return isRobbed