Esempio n. 1
0
 def process(self):
     
     v_player = self.getViewerPlayer()
     
     flags = {}
     flags.update(self.loadCardIds(Defines.URLQUERY_ADD, True))
     flags.update(self.loadCardIds(Defines.URLQUERY_REM, False))
     
     if flags:
         cardsetlist = BackendApi.get_cards(flags.keys(), self.getModelMgr(), using=settings.DB_READONLY)
         tmp_flags = {}
         for cardset in cardsetlist:
             if v_player.id != cardset.card.uid:
                 del flags[cardset.id]
                 if settings_sub.IS_LOCAL:
                     raise CabaretError(u'不正なアクセス')
                 url = UrlMaker.cardbox()
                 self.appRedirect(self.makeAppLinkUrlRedirect(url))
                 return
             tmp_flags[cardset.id] = flags[cardset.id]
         if tmp_flags:
             model_mgr = db_util.run_in_transaction(self.tr_write, tmp_flags)
             model_mgr.write_end()
     url = UrlMaker.cardbox()
     self.appRedirect(self.makeAppLinkUrlRedirect(url))
Esempio n. 2
0
    def writeBoxHtml(self, name):
        """HTML書き出し.
        """
        self.getViewerPlayer()

        _ctype = self.getCtypeOri()
        sortby = self.getSortby()
        page = self.getPage()

        self.html_param[Defines.URLQUERY_CTYPE] = _ctype
        self.html_param[Defines.URLQUERY_SORTBY] = sortby
        self.html_param[Defines.URLQUERY_PAGE] = page

        ctype_items = {'all': u'全て'}
        ctype_items.update(Defines.CharacterType.NAMES)
        self.html_param['ctype_items'] = ctype_items.items()
        self.html_param['sort_items'] = Defines.CardSortType.NAMES.items()

        # タブ切り替え用.
        url = UrlMaker.cardbox()
        url = OSAUtil.addQuery(url, Defines.URLQUERY_CTYPE, _ctype)
        url = OSAUtil.addQuery(url, Defines.URLQUERY_SORTBY, sortby)
        self.html_param['url_cardbox'] = self.makeAppLinkUrl(url)

        url = UrlMaker.sell()
        url = OSAUtil.addQuery(url, Defines.URLQUERY_CTYPE, _ctype)
        url = OSAUtil.addQuery(url, Defines.URLQUERY_SORTBY, sortby)
        self.html_param['url_sell'] = self.makeAppLinkUrl(url)

        self.saveSortParams()

        self.writeAppHtml(name)
Esempio n. 3
0
 def makeUrlSelf(self):
     return UrlMaker.cardbox()
Esempio n. 4
0
    def process(self):

        v_player = self.getViewerPlayer()

        args = self.getUrlArgs('/carddetail/')
        strcardid = args.get(0, None)

        model_mgr = self.getModelMgr()

        cardset = None
        if strcardid and strcardid.isdigit():
            cardid = int(strcardid)
            cardlist = BackendApi.get_cards([cardid],
                                            model_mgr,
                                            using=settings.DB_READONLY)
            if cardlist:
                cardset = cardlist[0]
        if cardset is None or cardset.card.uid != v_player.id:
            raise CabaretError(u'閲覧できないキャストです', CabaretError.Code.ILLEGAL_ARGS)

        if self.getFromPageName() == Defines.FromPages.CARDBOX:
            url = UrlMaker.cardbox()
            args = self.getFromPageArgs()
            if args and len(args) == 3:
                ctype, sortby, page = args
                url = OSAUtil.addQuery(url, Defines.URLQUERY_CTYPE, ctype)
                url = OSAUtil.addQuery(url, Defines.URLQUERY_SORTBY, sortby)
                url = OSAUtil.addQuery(url, Defines.URLQUERY_PAGE, page)
            self.html_param['url_back'] = self.makeAppLinkUrl(
                url, add_frompage=False)
        elif self.getFromPageName() == Defines.FromPages.DECK_RAID:
            url = UrlMaker.deck_raid()
            self.html_param['url_back'] = self.makeAppLinkUrl(
                url, add_frompage=False)
        elif self.getFromPageName() == Defines.FromPages.DECK_NORMAL:
            url = UrlMaker.deck()
            self.html_param['url_back'] = self.makeAppLinkUrl(
                url, add_frompage=False)

        deck = BackendApi.get_deck(v_player.id,
                                   model_mgr,
                                   using=settings.DB_READONLY)
        raid_deck = BackendApi.get_raid_deck(v_player.id,
                                             model_mgr,
                                             using=settings.DB_READONLY)
        cardidlist = []
        cardidlist.extend(deck.to_array())
        cardidlist.extend(raid_deck.to_array())

        self.html_param['card'] = Objects.card(self, cardset, deck=cardidlist)

        is_stockable = False
        is_stock_overlimit = False
        if CardUtil.checkStockable(v_player.id,
                                   deck,
                                   cardset,
                                   raise_on_error=False):
            stocknum_model = BackendApi.get_cardstock(
                model_mgr,
                v_player.id,
                cardset.master.album,
                using=settings.DB_READONLY)
            num = stocknum_model.num if stocknum_model else 0
            is_stock_overlimit = Defines.ALBUM_STOCK_NUM_MAX <= num
            is_stockable = True
        self.html_param['is_stockable'] = is_stockable
        self.html_param['is_stock_overlimit'] = is_stock_overlimit

        self.writeAppHtml('card/carddetail')