Пример #1
0
 def add_coin(self, data):
     query = Query(CoinDimRow, session=self.DBSession())
     query.add_columns(CoinDimRow.trade_symbol)
     res = query.all()
     res = list(set([coin.trade_symbol for coin in res]))
     for coin in data:
         if coin.strip() in res:
             pass
         else:
             row = CoinDimRow()
             row.trade_symbol = coin.strip()
             self.DBSession.add(row)
             self.DBSession.commit()
Пример #2
0
def overview():
    q = Query(CsdcContestant)
    sc = onetimescorecard().subquery()
    q = q.outerjoin(sc, CsdcContestant.player_id == sc.c.player_id)
    totalcols = []
    wktotal = []
    wkbonuses = []
    for col in ("fifteenrune", "sub40k", "zig", "lowxlzot", "nolairwin", "asceticrune"):
        totalcols.append(func.ifnull(getattr(sc.c, col), 0))
        q = q.add_column(getattr(sc.c, col).label(col))
    for wk in weeks:
        a = wk.sortedscorecard().subquery()
        totalcols.append(func.ifnull(a.c.total, 0))
        wktotal.append(a.c.total)
        wkbonuses.append(func.ifnull(a.c.bonusone, 0) + func.ifnull(a.c.bonustwo, 0))
        q = q.outerjoin(a, CsdcContestant.player_id == a.c.player_id
                ).add_column( a.c.total.label("wk" + wk.number))

    return q.add_columns(
            sc.c.account_id.label("account_id"),
            sum(totalcols).label("grandtotal"),
            sum(wkbonuses).label("tiebreak"),
            sc.c.hiscore.label("hiscore"),
            (func.coalesce(*wktotal) != None).label("played")
        ).order_by(desc("grandtotal"),desc("tiebreak"),desc("hiscore"),desc("played"))
Пример #3
0
 def get_coins(self):
     query = Query(CoinDimRow, session=self.DBSession())
     query.add_columns(CoinDimRow.trade_symbol, CoinDimRow.id)
     res = query.all()
     return [[coin.trade_symbol, coin.id] for coin in res]