def process(self): # 現在時刻. self.__now = OSAUtil.get_now() # ModelRequestMgr. model_mgr = self.getModelMgr() # ユーザ情報. v_player = self.getViewerPlayer() uid = v_player.id # 店舗のマスターデータ. args = self.getUrlArgs('/cabaclubcastselect/') mid = args.getInt(0) master = None if mid: master = BackendApi.get_cabaretclub_store_master( model_mgr, mid, using=settings.DB_READONLY) if master is None: self.appRedirect( self.makeAppLinkUrlRedirect(UrlMaker.cabaclubtop())) return self.__mid = master.id # 削除するID. cardid = args.getInt(1) card = None obj_card = None if cardid: cardlist = BackendApi.get_cards([cardid], model_mgr, using=settings.DB_READONLY) if not cardlist or cardlist[0].card.uid != uid: # カードの指定おかしい. self.appRedirect( self.makeAppLinkUrlRedirect(UrlMaker.cabaclubstore(mid))) return card = cardlist[0] obj_card = Objects.card(self, card) obj_card['url_remove'] = self.makeAppLinkUrl( UrlMaker.cabaclubcastremove(mid, cardid)) self.__cardid = cardid or 0 # 絞り込みのパラメータ. self.loadSortParams(default_sortby=Defines.CardSortType.COST_REV, default_ckind_type=Defines.CardKind.NORMAL, default_maxrare=Defines.Rarity.LIST[-1]) # カード情報埋め込み. self.putCardList() # HTML書き出し. self.html_param.update( current_card=obj_card, url_store=self.makeAppLinkUrl(UrlMaker.cabaclubstore(mid)), ) self.writeBoxHtml('cabaclub/castselect')
def __process_store(self, cabaclub_store_set): """店舗画面. """ uid = cabaclub_store_set.playerdata.uid store_mid = cabaclub_store_set.master.id if cabaclub_store_set.playerdata.is_open and cabaclub_store_set.get_current_eventmaster( self.__now): # 最後に閲覧した時間. data = CabaClubRecentlyViewedTime.get(uid, store_mid) if data and data.vtime < cabaclub_store_set.playerdata.etime: # 前回見たのがイベント発生前. self.appRedirect( self.makeAppLinkUrlRedirect( UrlMaker.cabaclubeventanim(store_mid))) return # 店舗情報. obj_cabaclubstore = Objects.cabaclubstore(self, cabaclub_store_set, self.__now) # アイテム. obj_cabaclubitemdata = Objects.cabaclubitemdata( self, cabaclub_store_set, self.__now) # 配置されているキャスト. cardlist = self.getStoreCastList(store_mid) # 経営スキル cardlist_has_skill = BackendApi.filter_has_cabaclubskill(cardlist) cabaclub_skills = Counter() if cardlist_has_skill: for card in cardlist_has_skill: skill = card.master.getSkill() cabaclub_skills[skill.name] += 1 self.html_param['cabaclub_skills'] = cabaclub_skills obj_cardlist = [] for card in cardlist: obj_card = Objects.card(self, card) obj_card['url_change'] = self.makeAppLinkUrl( UrlMaker.cabaclubcastselect(store_mid, card.id)) obj_card['url_remove'] = self.makeAppLinkUrl( UrlMaker.cabaclubcastremove(store_mid, card.id)) obj_cardlist.append(obj_card) # キャスト追加リンク. url_addmember = None if len(cardlist) < cabaclub_store_set.master.cast_num_max: url_addmember = self.makeAppLinkUrl( UrlMaker.cabaclubcastselect(store_mid)) # 店舗に設定可能なキャストを習得する setable_cardlist = BackendApi.get_cabaclub_setable_cardlist( self.getModelMgr(), uid, self.__now, using=settings.DB_READONLY) # HTML書き込み. url = UrlMaker.cabaclubdeckselect(self.__mid) self.html_param.update( cabaclubstore=obj_cabaclubstore, cabaclubitemdata=obj_cabaclubitemdata, cardlist=obj_cardlist, url_addmember=url_addmember, ctype=self.__ctype, cast_set=True if cardlist else False, cast_add=True if setable_cardlist else False, url_cabaclub_deckselect_add=self.makeAppLinkUrl(url), url_cabaclub_deckselect_remove=self.makeAppLinkUrl( OSAUtil.addQuery(url, Defines.URLQUERY_REM, 'rem')), ) if cabaclub_store_set.playerdata.is_open: # 閲覧時間の更新. CabaClubRecentlyViewedTime.create(uid, store_mid, self.__now).save() self.writeAppHtml('cabaclub/store_opened') else: # 使用できるアイテム. self.setFromPage(Defines.FromPages.CABACLUB_STORE, store_mid) BackendApi.put_cabaclubitem_uselead_info(self, cabaclub_store_set, self.__now) self.writeAppHtml('cabaclub/store_closed')