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}
Exemple #2
0
 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}
Exemple #3
0
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)
Exemple #5
0
 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
Exemple #6
0
 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 __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, 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)}
Exemple #10
0
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 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
 def __getMemberRole(self, memberData):
     if not items.isValueAvailable(memberData.getRole):
         return len(_CLAN_MEMBERS_SORT_INDEXES)
     return _CLAN_MEMBERS_SORT_INDEXES.index(memberData.getRole())
Exemple #19
0
 def __isRobbed(self, province):
     isRobbed = False
     if isValueAvailable(province.getPillageCooldown):
         isRobbed = bool(province.pillage_cooldown)
     return isRobbed