def process(self): model_mgr = self.getModelMgr() config = BackendApi.get_current_battleeventconfig( model_mgr, using=settings.DB_READONLY) eventmaster = None if config.mid: eventmaster = BackendApi.get_battleevent_master( model_mgr, config.mid, using=settings.DB_READONLY) if eventmaster is None: self.redirectToTop() return v_player = self.getViewerPlayer() uid = v_player.id page = int(self.request.get(Defines.URLQUERY_PAGE) or 0) nummax = BackendApi.get_battleevent_battlelog_num( model_mgr, uid, using=settings.DB_READONLY) offset = page * Defines.GAMELOG_PAGE_CONTENT_NUM loglist = BackendApi.get_battleevent_battlelog_list( model_mgr, uid, Defines.GAMELOG_PAGE_CONTENT_NUM, offset, using=settings.DB_READONLY) infolist = BackendApi.make_battleevent_battleloginfo(self, loglist) self.html_param['battleloglist'] = infolist self.putPagenation(UrlMaker.battleevent_loglist(), page, nummax, Defines.GAMELOG_PAGE_CONTENT_NUM) self.putEventTopic(eventmaster.id) if eventmaster.is_goukon: self.writeAppHtml('gcevent/battlelog') else: self.writeAppHtml('btevent/battlelog')
def process(self): self.__execute_end_worklist = [] model_mgr = self.getModelMgr() config = BackendApi.get_current_battleeventconfig( model_mgr, using=settings.DB_READONLY) args = self.getUrlArgs('/battleeventtop/') eventid = str(args.get(0)) eventmaster = None if eventid and eventid.isdigit(): eventid = int(eventid) elif config: eventid = config.mid if eventid: eventmaster = BackendApi.get_battleevent_master( model_mgr, eventid, using=settings.DB_READONLY) if eventmaster is None: raise CabaretError(u'Event Closed.', CabaretError.Code.EVENT_CLOSED) return self.__eventmaster = eventmaster eventid = eventmaster.id cur_eventmaster = self.getCurrentBattleEvent(quiet=True) v_player = self.getViewerPlayer() uid = v_player.id is_open = cur_eventmaster and eventid == cur_eventmaster.id self.setFromPage(Defines.FromPages.BATTLEEVENT, eventid) if is_open: # 開催中. if self.isBattleOpen(): # バトルが開いている時. self.procOpened() else: # バトルが閉じている時. self.procBattleClosed() # イベント参加KPI保存. BackendApi.save_kpi_battleevent_join(uid, self.is_pc) else: self.procClosed() if self.response.isEnd: return self.html_param['player'] = Objects.player(self, v_player) # イベント情報. battleevent = Objects.battleevent(self, eventmaster) self.html_param['battleevent'] = battleevent # バトルチケットの使用期限 if is_open: self.html_param[ 'battle_ticket_expiry_date'] = self.get_battle_ticket_expiry_date( config.ticket_endtime) BackendApi.check_battleevent_piececollection_userdata_and_create( model_mgr, uid, eventid) self.html_param['allrarity_piece'] = self.create_piece_image_paths( uid, eventid) # トピック. self.putEventTopic(eventid) # バトル履歴. if not eventmaster.is_goukon: loglist = BackendApi.get_battleevent_battlelog_list( model_mgr, uid, limit=1, using=settings.DB_READONLY) if loglist: func_battleloginfo = BackendApi.make_battleevent_battleloginfo( self, loglist, do_execute=False) if func_battleloginfo: def put_battleloginfo(): self.html_param['battleloglist'] = func_battleloginfo() self.addExecuteApiWork(put_battleloginfo) # バトル履歴のリンク. self.html_param['url_battleevent_battlelog'] = self.makeAppLinkUrl( UrlMaker.battleevent_loglist()) tradeshop_urlparam = OSAUtil.addQuery( UrlMaker.trade(), Defines.URLQUERY_CTYPE, Defines.GachaConsumeType.GachaTopTopic.TICKET) self.html_param['url_battleticket_trade'] = self.makeAppLinkUrl( tradeshop_urlparam) battleticket = BackendApi.get_additional_gachaticket_nums( model_mgr, v_player.id, [Defines.GachaConsumeType.GachaTicketType.BATTLE_TICKET], using=settings.DB_READONLY) if battleticket: battle_ticket_num = battleticket[ Defines.GachaConsumeType.GachaTicketType.BATTLE_TICKET].num else: battle_ticket_num = 0 self.html_param['battleticket'] = { 'name': Defines.GachaConsumeType.NAMES[ Defines.GachaConsumeType.BATTLE_TICKET], 'num': battle_ticket_num, 'unit': Defines.ItemType.UNIT[Defines.ItemType.ADDITIONAL_GACHATICKET], } # グループ履歴のリンク. self.html_param['url_battleevent_grouplog'] = self.makeAppLinkUrl( UrlMaker.battleevent_grouploglist(eventid)) if not self.html_param.has_key('battleevent_rank'): # ランク情報がないのでデフォルトのを設定. if config.isFirstDay(): rankmaster = BackendApi.get_battleevent_rankmaster( model_mgr, eventid, eventmaster.rankstart, using=settings.DB_READONLY) else: rankmaster = BackendApi.get_battleevent_rankmaster( model_mgr, eventid, eventmaster.rankbeginer, using=settings.DB_READONLY) self.html_param['battleevent_rank'] = Objects.battleevent_rank( self, None, rankmaster, None) self.executeApiWithWork() # 初心者フラグ. is_beginer = BackendApi.check_battleevent_beginer( model_mgr, uid, eventmaster, config, using=settings.DB_READONLY) self.html_param['is_beginer'] = is_beginer # ユーザーデータのチェック, カウントの取得 user_cvictory_count = self.check_user_continue_victory_data( uid, eventid) self.put_user_continue_victory_data(user_cvictory_count) # ランキング. view_myrank = False view_beginer = self.request.get(Defines.URLQUERY_BEGINER) == "1" if not view_beginer or is_beginer: view_myrank = self.request.get(Defines.URLQUERY_FLAG) == "1" url_ranking = OSAUtil.addQuery(UrlMaker.battleevent_top(eventid), Defines.URLQUERY_FLAG, "0") url_myrank = OSAUtil.addQuery(UrlMaker.battleevent_top(eventid), Defines.URLQUERY_FLAG, "1") self.putRanking(uid, eventid, view_myrank, url_ranking, url_myrank, view_beginer=view_beginer) if eventmaster.is_goukon: self.writeAppHtml('gcevent/top') else: self.writeAppHtml('btevent/top')