コード例 #1
0
def stats():
    response.meta.title = "HFunding | Stats"
    money_total = db.Donation.amount.sum()
    campaigns = db(db.Donation.campaign == db.Campaign.id).select(
        db.Campaign.id,
        db.Campaign.title,
        db.Campaign.goal,
        money_total,
        groupby=db.Campaign.id,
        orderby=money_total)
    ## total pledged and campaigns reached 100%
    total_pledged = 0
    success_campaigns = 0
    for row in campaigns:
        total_pledged += row._extra[money_total]
        if row.campaigns.goal <= row._extra[money_total]:
            success_campaigns += 1
    if success_campaigns:
        success_campaigns = float(success_campaigns) / len(campaigns) * 100
    ## most succesful campaigns
    top_campaigns = campaigns[:10]
    return dict(total=total_pledged,
                success=int(round(success_campaigns)),
                top=top_campaigns,
                mt=money_total)
コード例 #2
0
def discover():
    campaigns = db(
        (db.Campaign.start <= request.now) & (db.Campaign.closed == False)
    ).select(
        orderby=~db.Campaign.start,
        limitby=(0, 20)
    )
    return dict(campaigns=campaigns, showing='discover')
コード例 #3
0
def graph_data(campaign):
    donations = db(db.Donation.campaign == campaign.id).select(
        orderby=db.Donation.date)
    costs = db(db.Cost.campaign == campaign.id).select(orderby=db.Cost.date)
    inf = []
    for row in donations:
        inf.append(("don", row))
    for row in costs:
        inf.append(("cos", row))
    inf.sort(key=lambda d: d[1].date)
    countD = 0
    countC = 0
    data = []
    for t, row in inf:
        if t == "don":
            countD += row.amount
            data.append([str(row.date), int(countD),
                         row.donator.first_name, int(countC), ""])
        else:
            countC += row.amount
            data.append([str(row.date), int(countD), "",
                         int(countC), row.name])
    data.append(["", data[-1][1], "", data[-1][3], ""])
    return asis(str(data))
コード例 #4
0
def stats():
    response.meta.title = "HFunding | Stats"
    money_total = db.Donation.amount.sum()
    campaigns = db(db.Donation.campaign == db.Campaign.id).select(
        db.Campaign.id, db.Campaign.title, db.Campaign.goal,
        money_total, groupby=db.Campaign.id, orderby=money_total
    )
    ## total pledged and campaigns reached 100%
    total_pledged = 0
    success_campaigns = 0
    for row in campaigns:
        total_pledged += row._extra[money_total]
        if row.campaigns.goal <= row._extra[money_total]:
            success_campaigns += 1
    if success_campaigns:
        success_campaigns = float(success_campaigns)/len(campaigns)*100
    ## most succesful campaigns
    top_campaigns = campaigns[:10]
    return dict(total=total_pledged, success=int(round(success_campaigns)),
                top=top_campaigns, mt=money_total)
コード例 #5
0
def of(campaign):
    costs = db(db.Cost.campaign == campaign).select()
    return dict(costs=costs)
コード例 #6
0
def users():
    response.meta.title = "HFunding | Bakers"
    users = db(db.User.id > 0).select()
    return dict(users=users)
コード例 #7
0
def all():
    campaigns = db(db.Campaign.start <= request.now).select(
        orderby=~db.Campaign.start,
        limitby=(0, 20)
    )
    return dict(campaigns=campaigns, showing='all')
コード例 #8
0
def users():
    response.meta.title = "HFunding | Bakers"
    users = db(db.User.id > 0).select()
    return dict(users=users)