def procResult(self): """結果表示. """ presentidlist = self.__get_present_idlist(True) over = False try: over = bool(int(self.__args.get(1, 0))) except: pass model_mgr = self.getModelMgr() presentlist = BackendApi.get_presents(presentidlist, model_mgr, using=settings.DB_READONLY, received=True) self.html_param['presentreceivedlist'] = [Objects.present(self, presentset) for presentset in presentlist] self.html_param['overlimit'] = over url_reload = self.addIDQuesyParam(UrlMaker.presentresult(over), presentidlist) topic = self.request.get(Defines.URLQUERY_CTYPE) or "" topic = int(topic) if str(topic).isdigit() else Defines.PresentTopic.ALL url_reload = OSAUtil.addQuery(url_reload, Defines.URLQUERY_CTYPE, topic) client = OSAUtil.get_cache_client() v_player = self.getViewerPlayer() sort = client.get(v_player.id, namespace='present:sort') self.putPresentList(url_reload, topic, sort=sort, using=settings.DB_DEFAULT) if not self.response.isEnd: self.writeAppHtml('presentrecieve')
def putPresentList(self, url_reload, topic, page=0, sort="desc", using=settings.DB_READONLY): """プレゼントリストをHTMLに埋め込む. """ model_mgr = self.getModelMgr() # 絞り込みの引数. v_player = self.getViewerPlayer() overlimit = v_player.cardlimit <= BackendApi.get_cardnum(v_player.id, model_mgr, using=settings.DB_READONLY) # プレゼントを取得. offset = page * Defines.PRESENT_PAGE_CONTENT_NUM limit = Defines.PRESENT_PAGE_CONTENT_NUM + 1 presentidlist = BackendApi.get_present_idlist(v_player.id, topic, offset, limit, model_mgr, using=using, desc=sort=="desc") has_next_page = len(presentidlist) == limit presentidlist = presentidlist[:Defines.PRESENT_PAGE_CONTENT_NUM] presentlist = BackendApi.get_presents(presentidlist, model_mgr, using=using) if presentlist is None: # うまく取れなかった.リダイレクトさせておくか. BackendApi._save_presentidlist(v_player.id, model_mgr, topic, using=using) url = url_reload url = OSAUtil.addQuery(url, Defines.URLQUERY_CTYPE, topic) url = OSAUtil.addQuery(url, Defines.URLQUERY_PAGE, page) self.appRedirect(self.makeAppLinkUrlRedirect(url)) return self.html_param['presentlist'] = [Objects.present(self, presentset, overlimit, cur_topic=topic) for presentset in presentlist] # 絞り込み用のURL. url_base = OSAUtil.addQuery(UrlMaker.present(), Defines.URLQUERY_SORTBY, sort) self.html_param['url_all'] = self.makeAppLinkUrl(OSAUtil.addQuery(url_base, Defines.URLQUERY_CTYPE, Defines.PresentTopic.ALL)) self.html_param['url_card'] = self.makeAppLinkUrl(OSAUtil.addQuery(url_base, Defines.URLQUERY_CTYPE, Defines.PresentTopic.CARD)) self.html_param['url_item'] = self.makeAppLinkUrl(OSAUtil.addQuery(url_base, Defines.URLQUERY_CTYPE, Defines.PresentTopic.ITEM)) self.html_param['url_etc'] = self.makeAppLinkUrl(OSAUtil.addQuery(url_base, Defines.URLQUERY_CTYPE, Defines.PresentTopic.ETC)) # ソート切り替え. url_base = OSAUtil.addQuery(UrlMaker.present(), Defines.URLQUERY_CTYPE, topic) self.html_param['url_desc'] = self.makeAppLinkUrl(OSAUtil.addQuery(url_base, Defines.URLQUERY_SORTBY, "desc")) self.html_param['url_asc'] = self.makeAppLinkUrl(OSAUtil.addQuery(url_base, Defines.URLQUERY_SORTBY, "asc")) self.html_param['cur_sort'] = "desc" if sort == "desc" else "asc" # ページ切り替えURL. url_base = OSAUtil.addQuery(url_base, Defines.URLQUERY_SORTBY, sort) if 0 < page: self.html_param['url_prev'] = self.makeAppLinkUrl(OSAUtil.addQuery(url_base, Defines.URLQUERY_PAGE, page - 1)) if has_next_page: self.html_param['url_next'] = self.makeAppLinkUrl(OSAUtil.addQuery(url_base, Defines.URLQUERY_PAGE, page + 1)) # まとめて受け取るUrl. url = UrlMaker.presentdo() url = OSAUtil.addQuery(url, Defines.URLQUERY_CTYPE, topic) url = OSAUtil.addQuery(url, Defines.URLQUERY_SORTBY, sort) self.html_param['url_receive_all'] = self.makeAppLinkUrl(self.addIDQuesyParam(url, presentidlist)) # チェックボックスのキー. self.html_param['key_except_card'] = Defines.URLQUERY_CHECK_CARD self.html_param['key_except_gold'] = Defines.URLQUERY_CHECK_GOLD self.html_param['cur_topic'] = topic client = OSAUtil.get_cache_client() # client.set(v_player.id, topic, namespace='presentbox:topic') client.set(v_player.id, sort, namespace='present:sort')