def _populatePreviewBlock(self):
        fort = self.fortCtrl.getFort()
        localDateTime = time_utils.getDateTimeInLocal(self.__selectedDate)
        targetDayStartTimestamp, _ = time_utils.getDayTimeBoundsForLocal(self.__selectedDate)
        eventItems, dateInfo, noEventsText = [], None, None
        dateString = _ms(MENU.DATETIME_SHORTDATEFORMATWITHOUTYEAR, weekDay=_ms('#menu:dateTime/weekDays/full/%d' % localDateTime.isoweekday()), monthDay=localDateTime.day, month=toLower(_ms('#menu:dateTime/months/full/%d' % localDateTime.month)))
        if not self._isValidTime(self.__selectedDate):
            noEventsText = _ms(FORTIFICATIONS.FORTCALENDARWINDOW_EVENTSLIST_EMPTY_NOTAVAILABLE)
        else:
            for dayStartTimestamp, battles in self._getBattlesByDay().iteritems():
                if dayStartTimestamp == targetDayStartTimestamp:
                    for battle in sorted(battles):
                        startTimestamp = battle.getStartTime()
                        battleHasEnded = battle.isEnded()
                        opponentsClanInfo = battle.getOpponentClanInfo()
                        if battle.getType() == BATTLE_ITEM_TYPE.ATTACK:
                            if battleHasEnded:
                                icon = RES_ICONS.MAPS_ICONS_LIBRARY_FORTIFICATION_OFFENCEPAST
                            else:
                                icon = RES_ICONS.MAPS_ICONS_LIBRARY_FORTIFICATION_OFFENCEFUTURE
                            titleTpl = _ms(FORTIFICATIONS.FORTCALENDARWINDOW_EVENTSLIST_ITEM_TITLE_OFFENCE)
                        else:
                            if battleHasEnded:
                                icon = RES_ICONS.MAPS_ICONS_LIBRARY_FORTIFICATION_DEFENCEPAST
                            else:
                                icon = RES_ICONS.MAPS_ICONS_LIBRARY_FORTIFICATION_DEFENCEFUTURE
                            titleTpl = _ms(FORTIFICATIONS.FORTCALENDARWINDOW_EVENTSLIST_ITEM_TITLE_DEFENCE)
                        tankIconVO = getDivisionIcon(battle.defenderFortLevel, battle.attackerFortLevel, determineAlert=battle.getType() == BATTLE_ITEM_TYPE.ATTACK)
                        if battle.isWin():
                            background = RES_ICONS.MAPS_ICONS_LIBRARY_FORTIFICATION_BATTLEFORTVICTORY
                            resultLabel = 'win'
                        elif battle.isLose():
                            background = RES_ICONS.MAPS_ICONS_LIBRARY_FORTIFICATION_BATTLEFORTDEFEAT
                            resultLabel = 'lose'
                        else:
                            background, resultLabel = (None, None)
                        eventItem = {'icon': icon,
                         'title': titleTpl % {'clanName': '[%s]' % opponentsClanInfo[1]},
                         'clanID': opponentsClanInfo[0],
                         'direction': _ms(FORTIFICATIONS.GENERAL_DIRECTION, value=_ms('#fortifications:General/directionName%d' % battle.getDirection())),
                         'timeInfo': _ms(FORTIFICATIONS.FORTCALENDARWINDOW_EVENTSLIST_ITEM_TIMEINFO) % {'startTime': BigWorld.wg_getShortTimeFormat(startTimestamp),
                                      'endTime': BigWorld.wg_getShortTimeFormat(startTimestamp + time_utils.ONE_HOUR)},
                         'background': background,
                         'tankIconVO': tankIconVO,
                         'showTankIcon': not battleHasEnded}
                        if battleHasEnded and resultLabel:
                            resultText = makeHtmlString('html_templates:lobby/fortifications', 'battleResult', {'result': _ms(MENU.finalstatistic_commonstats_resultlabel(resultLabel))})
                            eventItem.update({'result': resultText})
                        eventItems.append(eventItem)

            if not len(eventItems):
                if fort.isOnVacationAt(self.__selectedDate):
                    noEventsText = _ms(FORTIFICATIONS.FORTCALENDARWINDOW_EVENTSLIST_EMPTY_VACATION, date=fort.getVacationDateStr())
                else:
                    noEventsText = _ms(FORTIFICATIONS.FORTCALENDARWINDOW_EVENTSLIST_EMPTY_NOEVENTS)
        if len(eventItems) > 0:
            dateInfo = _ms(FORTIFICATIONS.FORTCALENDARWINDOW_EVENTSLIST_INFO_BATTLESCOUNT, eventsCount=len(eventItems))
        self.as_updatePreviewDataS({'dateString': dateString,
         'dateInfo': dateInfo,
         'noEventsText': noEventsText,
         'events': eventItems})
        return
Exemplo n.º 2
0
    def _populatePreviewBlock(self):
        fort = self.fortCtrl.getFort()
        localDateTime = time_utils.getDateTimeInLocal(self.__selectedDate)
        targetDayStartTimestamp, _ = time_utils.getDayTimeBoundsForLocal(self.__selectedDate)
        eventItems, dateInfo, noEventsText = [], None, None
        dateString = _ms(MENU.DATETIME_SHORTDATEFORMATWITHOUTYEAR, weekDay=_ms('#menu:dateTime/weekDays/full/%d' % localDateTime.isoweekday()), monthDay=localDateTime.day, month=toLower(_ms('#menu:dateTime/months/full/%d' % localDateTime.month)))
        if fort.isOnVacationAt(self.__selectedDate):
            noEventsText = _ms(FORTIFICATIONS.FORTCALENDARWINDOW_EVENTSLIST_EMPTY_VACATION, date=fort.getVacationDateStr())
        elif not self._isValidTime(self.__selectedDate):
            noEventsText = _ms(FORTIFICATIONS.FORTCALENDARWINDOW_EVENTSLIST_EMPTY_NOTAVAILABLE)
        else:
            for dayStartTimestamp, battles in self._getBattlesByDay().iteritems():
                if dayStartTimestamp == targetDayStartTimestamp:
                    for battle in sorted(battles):
                        startTimestamp = battle.getStartTime()
                        battleHasEnded = battle.isEnded()
                        opponentsClanInfo = battle.getOpponentClanInfo()
                        if battle.getType() == BATTLE_ITEM_TYPE.ATTACK:
                            if battleHasEnded:
                                icon = RES_ICONS.MAPS_ICONS_LIBRARY_FORTIFICATION_OFFENCEPAST
                            else:
                                icon = RES_ICONS.MAPS_ICONS_LIBRARY_FORTIFICATION_OFFENCEFUTURE
                            titleTpl = _ms(FORTIFICATIONS.FORTCALENDARWINDOW_EVENTSLIST_ITEM_TITLE_OFFENCE)
                        else:
                            if battleHasEnded:
                                icon = RES_ICONS.MAPS_ICONS_LIBRARY_FORTIFICATION_DEFENCEPAST
                            else:
                                icon = RES_ICONS.MAPS_ICONS_LIBRARY_FORTIFICATION_DEFENCEFUTURE
                            titleTpl = _ms(FORTIFICATIONS.FORTCALENDARWINDOW_EVENTSLIST_ITEM_TITLE_DEFENCE)
                        tankIconVO = getDivisionIcon(battle.defenderFortLevel, battle.attackerFortLevel, determineAlert=battle.getType() == BATTLE_ITEM_TYPE.ATTACK)
                        if battle.isWin():
                            background = RES_ICONS.MAPS_ICONS_LIBRARY_FORTIFICATION_BATTLEFORTVICTORY
                            resultLabel = 'win'
                        elif battle.isLose():
                            background = RES_ICONS.MAPS_ICONS_LIBRARY_FORTIFICATION_BATTLEFORTDEFEAT
                            resultLabel = 'lose'
                        else:
                            background, resultLabel = (None, None)
                        eventItem = {'icon': icon,
                         'title': titleTpl % {'clanName': '[%s]' % opponentsClanInfo[1]},
                         'clanID': opponentsClanInfo[0],
                         'direction': _ms(FORTIFICATIONS.GENERAL_DIRECTION, value=_ms('#fortifications:General/directionName%d' % battle.getDirection())),
                         'timeInfo': _ms(FORTIFICATIONS.FORTCALENDARWINDOW_EVENTSLIST_ITEM_TIMEINFO) % {'startTime': BigWorld.wg_getShortTimeFormat(startTimestamp),
                                      'endTime': BigWorld.wg_getShortTimeFormat(startTimestamp + time_utils.ONE_HOUR)},
                         'background': background,
                         'tankIconVO': tankIconVO,
                         'showTankIcon': not battleHasEnded}
                        if battleHasEnded and resultLabel:
                            resultText = makeHtmlString('html_templates:lobby/fortifications', 'battleResult', {'result': _ms(MENU.finalstatistic_commonstats_resultlabel(resultLabel))})
                            eventItem.update({'result': resultText})
                        eventItems.append(eventItem)

            if not len(eventItems):
                noEventsText = _ms(FORTIFICATIONS.FORTCALENDARWINDOW_EVENTSLIST_EMPTY_NOEVENTS)
        if len(eventItems) > 0:
            dateInfo = _ms(FORTIFICATIONS.FORTCALENDARWINDOW_EVENTSLIST_INFO_BATTLESCOUNT, eventsCount=len(eventItems))
        self.as_updatePreviewDataS({'dateString': dateString,
         'dateInfo': dateInfo,
         'noEventsText': noEventsText,
         'events': eventItems})