def __getStatsVO(self): notActual = self.__ratings.getFbBattlesCount28d() <= 0 hasFortRating = self.__ratings.hasFortRating() if self.__fortLevel is None: self.__getFortLevel() if not hasFortRating: if self.__fortLevel is None: fortInfo = (False, CLANS.CLANPROFILE_SUMMARYVIEW_BLOCKLBL_HASNOBATTLES) elif self.__fortLevel > 0: fortInfo = (True, 0) else: fortInfo = (False, CLANS.CLANPROFILE_SUMMARYVIEW_BLOCKLBL_EMPTYFORT) else: fortInfo = (True, '') return ([{'local': 'rageLevel10', 'value': formatField(getter=self.__ratings.getEloRating10, formatter=BigWorld.wg_getIntegralFormat), 'timeExpired': notActual, 'tooltip': CLANS.CLANPROFILE_SUMMARYVIEW_TOOLTIP_FORT_ELO_RAGE_10_BODY}, {'local': 'rageLevel8', 'value': formatField(getter=self.__ratings.getEloRating8, formatter=BigWorld.wg_getIntegralFormat), 'timeExpired': notActual, 'tooltip': CLANS.CLANPROFILE_SUMMARYVIEW_TOOLTIP_FORT_ELO_RAGE_8_BODY}, {'local': 'sortiesPerDay', 'value': formatField(getter=self.__ratings.getFsBattlesCount28d, formatter=BigWorld.wg_getIntegralFormat), 'tooltip': CLANS.CLANPROFILE_SUMMARYVIEW_TOOLTIP_FORT_SORTIE_COUNT_28_BODY}, {'local': 'battlesPerDay', 'value': formatField(getter=self.__ratings.getFbBattlesCount28d, formatter=BigWorld.wg_getIntegralFormat), 'tooltip': CLANS.CLANPROFILE_SUMMARYVIEW_TOOLTIP_FORT_BATTLES_COUNT_28_BODY}, {'local': 'fortLevel', 'value': self.__fortLevelStr, 'tooltip': CLANS.CLANPROFILE_SUMMARYVIEW_TOOLTIP_FORT_LEVEL_BODY}], fortInfo)
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 _makeVO(self, item): vo = { 'players': text_styles.main(str(item.getMembersCount())), 'creationDate': text_styles.main( formatField(getter=item.getCreationDate, formatter=BigWorld.wg_getShortDateFormat)), 'rating': text_styles.stats( formatField(getter=item.getPersonalRating, formatter=BigWorld.wg_getIntegralFormat)), 'arrowIcon': RES_ICONS.MAPS_ICONS_LIBRARY_ARROWORANGERIGHTICON8X8, 'clanInfo': { 'dbID': item.getClanDbID(), 'clanAbbrev': formatField(getter=item.getClanAbbrev), 'clanName': formatField(getter=item.getClanName), 'fullName': formatField(getter=item.getClanFullName), 'isActive': item.isClanActive(), 'showIcon': True, 'iconSource': None } } return vo
def _getLevelParams(i18nFunc, battlesCountGetter, winsEfficiencyGetter, eloRatingGetter, placeGetter, favArenaNameGetter, ratingOutdated): battlesCount = formatField(getter=battlesCountGetter, formatter=BigWorld.wg_getIntegralFormat) winsEfficiency = formatField(getter=winsEfficiencyGetter, formatter=lambda x: PUtils.formatFloatPercent(x)) eloRating = formatField(getter=eloRatingGetter, formatter=BigWorld.wg_getIntegralFormat) place = formatField(getter=placeGetter, formatter=BigWorld.wg_getIntegralFormat) favArenaName = formatField(getter=favArenaNameGetter, formatter=lambda x: getI18ArenaById(getArenaGeomentryName(x))) return [_getDataObject('battles', i18nFunc, battlesCount), _getDataObject('wins', i18nFunc, winsEfficiency), _getDataObject('eloRating', i18nFunc, eloRating), _getDataObject('place', i18nFunc, place, ratingOutdated), _getDataObjectTruncatedValue('favoriteMap', i18nFunc, favArenaName)]
def _getLevelParams(i18nFunc, battlesCountGetter, winsEfficiencyGetter, eloRatingGetter, placeGetter, favArenaNameGetter, ratingOutdated): battlesCount = formatField(getter=battlesCountGetter, formatter=backport.getIntegralFormat) winsEfficiency = formatField(getter=winsEfficiencyGetter, formatter=PUtils.formatFloatPercent) eloRating = formatField(getter=eloRatingGetter, formatter=backport.getIntegralFormat) place = formatField(getter=placeGetter, formatter=backport.getIntegralFormat) favArenaName = formatField(getter=favArenaNameGetter, formatter=getI18ArenaById) return [_getDataObject('battles', i18nFunc, battlesCount), _getDataObject('wins', i18nFunc, winsEfficiency), _getDataObject('eloRating', i18nFunc, eloRating), _getDataObject('place', i18nFunc, place, ratingOutdated), _getDataObjectTruncatedValue('favoriteMap', i18nFunc, favArenaName)]
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): vo = {'players': text_styles.main(str(item.getMembersCount())), 'creationDate': text_styles.main(formatField(getter=item.getCreationDate, formatter=BigWorld.wg_getShortDateFormat)), 'rating': text_styles.stats(formatField(getter=item.getPersonalRating, formatter=BigWorld.wg_getIntegralFormat)), 'arrowIcon': RES_ICONS.MAPS_ICONS_LIBRARY_ARROWORANGERIGHTICON8X8, 'clanInfo': {'dbID': item.getClanDbID(), 'clanAbbrev': formatField(getter=item.getClanAbbrev), 'clanName': formatField(getter=item.getClanName), 'fullName': formatField(getter=item.getClanFullName), 'isActive': item.isClanActive(), 'showIcon': True, 'iconSource': None}} return vo
def _updateDetailedInfo(self): clanID = self.__selectedClan.getClanDbID() clanName = formatField(self.__selectedClan.getClanFullName) rating = formatField(getter=self.__selectedClan.getPersonalRating, formatter=BigWorld.wg_getIntegralFormat) battlesCount = formatField(getter=self.__selectedClan.getBattlesCount, formatter=BigWorld.wg_getIntegralFormat) wins = formatField(getter=self.__selectedClan.getBattleXpAvg, formatter=lambda value: BigWorld.wg_getNiceNumberFormat(value) + '%') avgExp = formatField(getter=self.__selectedClan.getBattlesPerformanceAvg, formatter=BigWorld.wg_getIntegralFormat) stats = [_packItemData(battlesCount, CLANS.SEARCH_INFO_STATS_BATTLES, CLANS.SEARCH_INFO_STATS_BATTLES_TOOLTIP, 'avgBattlesCount40x32.png'), _packItemData(wins, CLANS.SEARCH_INFO_STATS_WINS, CLANS.SEARCH_INFO_STATS_WINS_TOOLTIP, 'avgWins40x32.png'), _packItemData(avgExp, CLANS.SEARCH_INFO_STATS_AVGEXP, CLANS.SEARCH_INFO_STATS_AVGEXP_TOOLTIP, 'avgExp40x32.png')] self.as_setDataS({'clanId': clanID, 'clanName': clanName, 'ratingTitle': text_styles.main(CLANS.SEARCH_INFO_RATINGTITLE), 'rating': text_styles.promoTitle(rating), 'stats': stats})
def _updateClanInfo(self, clanInfo): creationDate = i18n.makeString( CLANS.CLAN_HEADER_CREATIONDATE, creationDate=items.formatField( getter=clanInfo.getCreatedAt, formatter=backport.getShortDateFormat)) self.as_setClanInfoS({ 'name': items.formatField(getter=clanInfo.getFullName), 'bgIcon': RES_ICONS.MAPS_ICONS_CLANS_CLAN_CARD_HEADER, 'creationDate': creationDate })
def setClanDossier(self, clanDossier): super(ClanProfileSummaryView, self).setClanDossier(clanDossier) self._showWaiting() clanInfo = yield clanDossier.requestClanInfo() if not clanInfo.isValid(): self._dummyMustBeShown = True self._updateDummy() self._hideWaiting() return ratings = yield clanDossier.requestClanRatings() globalMapStats = yield clanDossier.requestGlobalMapStats() if self.isDisposed(): return self._updateClanInfo(clanInfo) ratingStrBuilder = text_styles.builder(delimiter='\n') ratingStrBuilder.addStyledText(text_styles.promoTitle, formatField(getter=ratings.getEfficiency, formatter=BigWorld.wg_getIntegralFormat)) ratingStrBuilder.addStyledText(text_styles.stats, CLANS.CLANPROFILE_SUMMARYVIEW_TOTALRAGE) motto = clanInfo.getMotto() if motto: description = text_styles.main(motto) else: description = text_styles.standard(CLANS.CLANPROFILE_SUMMARYVIEW_DEFAULTCLANDESCR) hasGlobalMap = globalMapStats.hasGlobalMap() self.as_setDataS({'totalRating': ratingStrBuilder.render(), 'totalRatingTooltip': CLANS.CLANPROFILE_SUMMARYVIEW_TOOLTIP_TOTALRATING, 'clanDescription': description, 'isShowFortBtn': True, 'isShowClanNavBtn': hasGlobalMap, 'isShowUrlString': not hasGlobalMap}) self.as_updateGeneralBlockS(self.__makeGeneralBlock(clanInfo, syncUserInfo=True)) self.__strongholdStatsVOReceiver = StrongholdDataReceiver(clanDossier, self.__updateStrongholdBlock) self.__strongholdStatsVOReceiver.updateStrongholdStatistics() self.as_updateGlobalMapBlockS(self.__makeGlobalMapBlock(globalMapStats, ratings)) self.__updateStatus() self._hideWaiting()
def _updateHeaderState(self): freePlaces = self.clanInfo.getFreePlaces() freePlacesInClanText = text_styles.concatStylesToSingleLine( text_styles.standard( _ms(CLANS.CLANINVITESWINDOW_HEADER_FREEPLACESINCLAN, count=text_styles.main( formatField(getter=self.clanInfo.getFreePlaces))))) if freePlaces == 0: inviteButtonEnabled = False inviteButtonTooltip = _ms( CLANS.CLANINVITESWINDOW_HEADER_TOOLTIPS_NOPLACES) freePlacesInClanText = gui.makeHtmlString( 'html_templates:lobby/research', 'warningMessage', {'text': freePlacesInClanText}) else: inviteButtonEnabled = True inviteButtonTooltip = _ms( CLANS.CLANINVITESWINDOW_TOOLTIPS_HEADER_INVITEBUTTON) self.as_setHeaderStateS({ 'inviteButtonEnabled': inviteButtonEnabled, 'inviteButtonText': CLANS.CLANINVITESWINDOW_HEADER_INVITEINCLAN, 'inviteButtonTooltip': makeTooltip(body=inviteButtonTooltip), 'freePlacesInClanText': freePlacesInClanText })
def __makeGeneralBlock(self, clanInfo, syncUserInfo = False): stats = [{'local': 'commander', 'value': formatField(getter=clanInfo.getLeaderDbID, formatter=self.getGuiUserName), 'textStyle': _STYLE.STATS_TEXT}, {'local': 'totalPlayers', 'value': formatField(getter=clanInfo.getMembersCount, formatter=BigWorld.wg_getIntegralFormat)}] canSeeTreasury = self.clansCtrl.getLimits().canSeeTreasury(self._clanDossier) if canSeeTreasury.success: stats.append({'local': 'gold', 'value': formatField(getter=clanInfo.getTreasuryValue, formatter=BigWorld.wg_getIntegralFormat), 'icon': RES_ICONS.MAPS_ICONS_LIBRARY_GOLDICON_2}) if syncUserInfo: self.syncUsersInfo() return {'isShowHeader': False, 'header': '', 'statBlocks': self.__makeStatsBlock(stats), 'isActivated': True}
def setClanDossier(self, clanDossier): super(ClanProfileSummaryView, self).setClanDossier(clanDossier) self._showWaiting() clanInfo = yield clanDossier.requestClanInfo() ratings = yield clanDossier.requestClanRatings() globalMapStats = yield clanDossier.requestGlobalMapStats() if self.isDisposed(): return self._updateClanInfo(clanInfo) ratingStrBuilder = text_styles.builder(delimiter='\n') ratingStrBuilder.addStyledText(text_styles.promoTitle, formatField(getter=ratings.getEfficiency, formatter=BigWorld.wg_getIntegralFormat)) ratingStrBuilder.addStyledText(text_styles.stats, CLANS.CLANPROFILE_SUMMARYVIEW_TOTALRAGE) motto = clanInfo.getMotto() if motto: description = text_styles.main(motto) else: description = text_styles.standard(CLANS.CLANPROFILE_SUMMARYVIEW_DEFAULTCLANDESCR) hasGlobalMap = globalMapStats.hasGlobalMap() self.as_setDataS({'totalRating': ratingStrBuilder.render(), 'totalRatingTooltip': CLANS.CLANPROFILE_SUMMARYVIEW_TOOLTIP_TOTALRATING, 'clanDescription': description, 'isShowFortBtn': True, 'isShowClanNavBtn': hasGlobalMap, 'isShowUrlString': not hasGlobalMap}) self.as_updateGeneralBlockS(self.__makeGeneralBlock(clanInfo, syncUserInfo=True)) if clanDossier.isMyClan(): self.__fortStatsVOReceiver = _MyFortDataReceiver(ratings, clanDossier, self.__updateFortBlock) else: self.__fortStatsVOReceiver = _FortDataReceiver(ratings, clanDossier, self.__updateFortBlock) self.as_updateGlobalMapBlockS(self.__makeGlobalMapBlock(globalMapStats, ratings)) self.__updateStatus() self._hideWaiting()
def setProxy(self, proxy, clanDossier): self._proxy = weakref.proxy(proxy) self._clanDossier = clanDossier proxy.showWaiting() globalMapStats = yield clanDossier.requestGlobalMapStats() ratings = yield clanDossier.requestClanRatings() favouriteAttrs = yield clanDossier.requestFavouriteAttributes() if self.isDisposed(): return primeTime = items.formatField( getter=favouriteAttrs.getFavoritePrimetime, formatter=lambda x: BigWorld.wg_getShortTimeFormat( x.hour * time_utils.ONE_HOUR + x.minute * time_utils.ONE_MINUTE )) primeTime = text_styles.standard( _ms(CLANS.GLOBALMAPVIEW_POPULARPRIMETIME, time=text_styles.main(primeTime))) data = FortGlobalMapStatistics({ 'stats': globalMapStats, 'ratings': ratings, 'favouriteAttrs': favouriteAttrs }) data['primeTimeText'] = primeTime self.as_setDataS(data) proxy.hideWaiting()
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 _getHeaderData(self, data): stats = data['stats'] return (PUtils.packLditItemData( formatField(getter=stats.getBattlesCount, formatter=BigWorld.wg_getIntegralFormat), CL.GLOBALMAPVIEW_STATS_BATTLES, CL.GLOBALMAPVIEW_STATS_BATTLES_TOOLTIP, 'battles40x32.png'), PUtils.packLditItemData( formatField(getter=stats.getWinsEfficiency, formatter=PUtils.formatFloatPercent), CL.GLOBALMAPVIEW_STATS_WINS, CL.GLOBALMAPVIEW_STATS_WINS_TOOLTIP, 'wins40x32.png'), PUtils.packLditItemData( formatField(getter=stats.getCapturedProvincesCount, formatter=BigWorld.wg_getIntegralFormat), CL.GLOBALMAPVIEW_STATS_SEIZED, CL.GLOBALMAPVIEW_STATS_SEIZED_TOOLTIP, 'seizedProvinces40x32.png'))
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, province): isRobbed = self.__isRobbed(province) result = { 'front': '%s %s' % (self.__getFront(province), text_styles.standard( formatField(province.getFrontLevel, formatter=fort_formatters.getTextLevel))), 'province': self.__getProvinceName(province), 'map': self.__getMap(province), 'primeTime': text_styles.main(province.getUserPrimeTime()), 'days': text_styles.main( BigWorld.wg_getIntegralFormat(self.__getDays(province))), 'isRobbed': isRobbed } if isRobbed: restoreTime = province.getPillageEndDatetime() result.update({ 'robbedTooltip': makeTooltip( None, text_styles.concatStylesToMultiLine( text_styles.main( _ms(CLANS. GLOBALMAPVIEW_TABLE_PROVINCEROBBED_TOOLTIP_NOINCOME )), text_styles.neutral( _ms(CLANS. GLOBALMAPVIEW_TABLE_PROVINCEROBBED_TOOLTIP_RESTORETIME, date=text_styles.main( formatters.formatShortDateShortTimeString( restoreTime)))))) }) if self.__showTreasuryData: result.update({ 'income': text_styles.gold( BigWorld.wg_getIntegralFormat(self.__getIncome(province))), 'noIncomeIconVisible': not province.isHqConnected() or isRobbed, 'noIncomeTooltip': CLANS.GLOBALMAPVIEW_NOINCOME_TOOLTIP }) return result
def setProxy(self, proxy, clanDossier): self._proxy = weakref.proxy(proxy) self._clanDossier = clanDossier proxy.showWaiting() globalMapStats = yield clanDossier.requestGlobalMapStats() ratings = yield clanDossier.requestClanRatings() favouriteAttrs = yield clanDossier.requestFavouriteAttributes() if self.isDisposed(): return primeTime = items.formatField(getter=favouriteAttrs.getFavoritePrimetime, formatter=lambda x: BigWorld.wg_getShortTimeFormat(x.hour * time_utils.ONE_HOUR + x.minute * time_utils.ONE_MINUTE)) primeTime = text_styles.standard(_ms(CLANS.GLOBALMAPVIEW_POPULARPRIMETIME, time=text_styles.main(primeTime))) data = FortGlobalMapStatistics({'stats': globalMapStats, 'ratings': ratings, 'favouriteAttrs': favouriteAttrs}) data['primeTimeText'] = primeTime self.as_setDataS(data) proxy.hideWaiting()
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 _updateDetailedInfo(self): clanID = self.__selectedClan.getClanDbID() clanName = formatField(self.__selectedClan.getClanFullName) creationDate = formatField(getter=self.__selectedClan.getCreationDate, formatter=BigWorld.wg_getShortDateFormat) rating = formatField(getter=self.__selectedClan.getPersonalRating, formatter=BigWorld.wg_getIntegralFormat) battlesCount = formatField(getter=self.__selectedClan.getBattlesCount, formatter=BigWorld.wg_getIntegralFormat) wins = formatField(getter=self.__selectedClan.getBattleXpAvg, formatter=lambda value: BigWorld.wg_getNiceNumberFormat(value) + '%') avgExp = formatField(getter=self.__selectedClan.getBattlesPerformanceAvg, formatter=BigWorld.wg_getIntegralFormat) stats = [_packItemData(battlesCount, CLANS.SEARCH_INFO_STATS_BATTLES, CLANS.SEARCH_INFO_STATS_BATTLES_TOOLTIP, 'avgBattlesCount40x32.png'), _packItemData(wins, CLANS.SEARCH_INFO_STATS_WINS, CLANS.SEARCH_INFO_STATS_WINS_TOOLTIP, 'avgWins40x32.png'), _packItemData(avgExp, CLANS.SEARCH_INFO_STATS_AVGEXP, CLANS.SEARCH_INFO_STATS_AVGEXP_TOOLTIP, 'avgExp40x32.png')] self.as_setDataS({'clanId': clanID, 'clanName': clanName, 'creationDate': text_styles.main(_ms(CLANS.SEARCH_INFO_CREATIONDATE, date=creationDate)), 'rating': text_styles.promoTitle(rating), 'stats': stats})
def _makeVO(self, province): isRobbed = self.__isRobbed(province) result = { "front": "%s %s" % ( self.__getFront(province), text_styles.standard(formatField(province.getFrontLevel, formatter=fort_formatters.getTextLevel)), ), "province": self.__getProvinceName(province), "map": self.__getMap(province), "primeTime": text_styles.main(province.getUserPrimeTime()), "days": text_styles.main(BigWorld.wg_getIntegralFormat(self.__getDays(province))), "isRobbed": isRobbed, } if isRobbed: restoreTime = province.getPillageEndDatetime() result.update( { "robbedTooltip": makeTooltip( None, text_styles.concatStylesToMultiLine( text_styles.main(_ms(CLANS.GLOBALMAPVIEW_TABLE_PROVINCEROBBED_TOOLTIP_NOINCOME)), text_styles.neutral( _ms( CLANS.GLOBALMAPVIEW_TABLE_PROVINCEROBBED_TOOLTIP_RESTORETIME, date=text_styles.main(formatters.formatShortDateShortTimeString(restoreTime)), ) ), ), ) } ) if self.__showTreasuryData: result.update( { "income": text_styles.gold(BigWorld.wg_getIntegralFormat(self.__getIncome(province))), "noIncomeIconVisible": not province.isHqConnected() or isRobbed, "noIncomeTooltip": CLANS.GLOBALMAPVIEW_NOINCOME_TOOLTIP, } ) return result
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, memberData): memberDBID = memberData.getDbID() contactEntity = self.userStorage.getUser(memberDBID) if contactEntity: userVO = ContactConverter().makeVO(contactEntity) userVO['userProps']['clanAbbrev'] = '' else: userVO = {'userProps': {'userName': self.__getMemberName(memberData)}} return {'dbID': memberDBID, 'userName': self.__getMemberName(memberData), 'post': items.formatField(getter=memberData.getRoleString), 'postIcon': memberData.getRoleIcon(), 'personalRating': items.formatField(getter=memberData.getGlobalRating, formatter=BigWorld.wg_getIntegralFormat), 'battlesCount': items.formatField(getter=memberData.getBattlesCount, formatter=BigWorld.wg_getIntegralFormat), 'wins': items.formatField(getter=memberData.getBattlesPerformanceAvg, formatter=lambda x: BigWorld.wg_getNiceNumberFormat(x) + '%'), 'awgExp': items.formatField(getter=memberData.getBattleXpAvg, formatter=BigWorld.wg_getIntegralFormat), 'daysInClan': items.formatField(getter=memberData.getDaysInClan, formatter=BigWorld.wg_getIntegralFormat), 'canShowContextMenu': memberDBID != getAccountDatabaseID(), 'contactItem': userVO}
def _requestFortLevel(self, callback): strongholdInfo = yield self._clanDossier.requestStrongholdInfo() fortLevel = strongholdInfo.getLevel() fortLevelStr = formatField(getter=strongholdInfo.getLevel, formatter=fort_formatters.getTextLevel) callback((fortLevel, fortLevelStr))
def __getMemberName(self, memberData): return items.formatField(getter=memberData.getDbID, formatter=self.getUserName)
def _updateHeaderState(self): freePlaces = self.clanInfo.getFreePlaces() freePlacesInClanText = text_styles.concatStylesToSingleLine(text_styles.standard(_ms(CLANS.CLANINVITESWINDOW_HEADER_FREEPLACESINCLAN, count=text_styles.main(formatField(getter=self.clanInfo.getFreePlaces))))) if freePlaces == 0: inviteButtonEnabled = False inviteButtonTooltip = _ms(CLANS.CLANINVITESWINDOW_HEADER_TOOLTIPS_NOPLACES) freePlacesInClanText = gui.makeHtmlString('html_templates:lobby/research', 'warningMessage', {'text': freePlacesInClanText}) else: inviteButtonEnabled = True inviteButtonTooltip = _ms(CLANS.CLANINVITESWINDOW_TOOLTIPS_HEADER_INVITEBUTTON) self.as_setHeaderStateS({'inviteButtonEnabled': inviteButtonEnabled, 'inviteButtonText': CLANS.CLANINVITESWINDOW_HEADER_INVITEINCLAN, 'inviteButtonTooltip': makeTooltip(body=inviteButtonTooltip), 'freePlacesInClanText': freePlacesInClanText})
def _makeVO(self, province): result = {'front': '%s %s' % (self.__getFront(province), text_styles.standard(formatField(province.getFrontLevel, formatter=fort_formatters.getTextLevel))), 'province': self.__getProvinceName(province), 'map': self.__getMap(province), 'primeTime': text_styles.main(province.getUserPrimeTime()), 'days': text_styles.main(BigWorld.wg_getIntegralFormat(self.__getDays(province)))} if self.__showTreasuryData: result.update({'income': text_styles.gold(BigWorld.wg_getIntegralFormat(self.__getIncome(province))), 'noIncomeIconVisible': not province.isHqConnected(), 'noIncomeTooltip': CLANS.GLOBALMAPVIEW_NOINCOME_TOOLTIP}) return result
def __getMap(self, province): return formatField(getter=province.getArenaId, formatter=lambda arena_id: getI18ArenaById(arena_id))
def __getMap(self, province): return formatField( getter=province.getArenaId, formatter=lambda arena_id: getI18ArenaById(arena_id))
def __getMap(self, province): return formatField(getter=province.getArenaId, formatter=getI18ArenaById)
def _getHeaderData(self, data): stats = data['stats'] return (PUtils.packLditItemData(formatField(getter=stats.getBattlesCount, formatter=BigWorld.wg_getIntegralFormat), CLANS.GLOBALMAPVIEW_STATS_BATTLES, CLANS.GLOBALMAPVIEW_STATS_BATTLES_TOOLTIP, 'battles40x32.png'), PUtils.packLditItemData(formatField(getter=stats.getWinsEfficiency, formatter=PUtils.formatFloatPercent), CLANS.GLOBALMAPVIEW_STATS_WINS, CLANS.GLOBALMAPVIEW_STATS_WINS_TOOLTIP, 'wins40x32.png'), PUtils.packLditItemData(formatField(getter=stats.getCapturedProvincesCount, formatter=BigWorld.wg_getIntegralFormat), CLANS.GLOBALMAPVIEW_STATS_SEIZED, CLANS.GLOBALMAPVIEW_STATS_SEIZED_TOOLTIP, 'seizedProvinces40x32.png'))
def __getStatsVO(self): notActual = self.__fortStats and self.__fortStats.getFbBattlesCount28d( ) <= 0 hasFortRating = self.__ratings.hasFortRating() if self.__fortLevel is None: self.__getFortLevel() if self.__fortStats is None: self.__getFortStatistics() if not hasFortRating and not self.__has28dFortStatistics(): if self.__fortLevel is None: fortInfo = ( False, CLANS.CLANPROFILE_SUMMARYVIEW_BLOCKLBL_HASNOBATTLES) elif self.__fortLevel > 0: fortInfo = (True, 0) else: fortInfo = (False, CLANS.CLANPROFILE_SUMMARYVIEW_BLOCKLBL_EMPTYFORT) else: fortInfo = (True, '') if self.__fortStats: fsBattleCount28d = formatField( getter=self.__fortStats.getFsBattlesCount28d, formatter=BigWorld.wg_getIntegralFormat) fbBattleCount28d = formatField( getter=self.__fortStats.getFbBattlesCount28d, formatter=BigWorld.wg_getIntegralFormat) else: fsBattleCount28d, fbBattleCount28d = clan_fmts.DUMMY_UNAVAILABLE_DATA, clan_fmts.DUMMY_UNAVAILABLE_DATA return ([{ 'local': 'rageLevel10', 'value': formatField(getter=self.__ratings.getEloRating10, formatter=BigWorld.wg_getIntegralFormat), 'timeExpired': notActual, 'tooltip': CLANS.CLANPROFILE_SUMMARYVIEW_TOOLTIP_FORT_ELO_RAGE_10_BODY }, { 'local': 'rageLevel8', 'value': formatField(getter=self.__ratings.getEloRating8, formatter=BigWorld.wg_getIntegralFormat), 'timeExpired': notActual, 'tooltip': CLANS.CLANPROFILE_SUMMARYVIEW_TOOLTIP_FORT_ELO_RAGE_8_BODY }, { 'local': 'sortiesPerDay', 'value': fsBattleCount28d, 'tooltip': CLANS.CLANPROFILE_SUMMARYVIEW_TOOLTIP_FORT_SORTIE_COUNT_28_BODY }, { 'local': 'battlesPerDay', 'value': fbBattleCount28d, 'tooltip': CLANS.CLANPROFILE_SUMMARYVIEW_TOOLTIP_FORT_BATTLES_COUNT_28_BODY }, { 'local': 'fortLevel', 'value': self.__fortLevelStr, 'tooltip': CLANS.CLANPROFILE_SUMMARYVIEW_TOOLTIP_FORT_LEVEL_BODY }], fortInfo)
def _updateClanInfo(self, clanInfo): creationDate = i18n.makeString(CLANS.CLAN_HEADER_CREATIONDATE, creationDate=items.formatField(getter=clanInfo.getCreatedAt, formatter=BigWorld.wg_getLongDateFormat)) self.as_setClanInfoS({'name': items.formatField(getter=clanInfo.getFullName), 'bgIcon': RES_ICONS.MAPS_ICONS_CLANS_CLAN_CARD_HEADER, 'creationDate': creationDate})