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)
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')
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))
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)
def of(campaign): costs = db(db.Cost.campaign == campaign).select() return dict(costs=costs)
def users(): response.meta.title = "HFunding | Bakers" users = db(db.User.id > 0).select() return dict(users=users)
def all(): campaigns = db(db.Campaign.start <= request.now).select( orderby=~db.Campaign.start, limitby=(0, 20) ) return dict(campaigns=campaigns, showing='all')