Exemplo n.º 1
0
 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')
Exemplo n.º 2
0
    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')