def user():
if "uid" in session:
uid = session["uid"]
+ counts = db.drink_count(uid, 0)
return render_template('user.html',
name=db.get_name(uid),
flavors=[_name for (_name, _ord) in db.flavors()],
- count=db.coffee_count(uid, 0),
+ count=counts.get("Coffee", 0),
+ count_mate=counts.get("Club-Mate", 0),
stamp=time.time()
)
# TODO: Replace stamp parameter with proper cache control HTTP
def coffee_count():
start = request.args.get("start")
stop = request.args.get("stop")
- return str(db.coffee_count(session.get("uid"), start, stop))
+ return str(db.drink_count(session.get("uid"), start, stop).get("Coffee", 0))
@app.route('/js')
close_db(conn)
return res
-def coffee_count(uid=None, start=None, stop=None):
+def drink_count(uid=None, start=None, stop=None):
conn, c = open_db()
args = []
if stop is not None:
clauses.append("date(time, 'localtime') <= date('now', 'localtime', '-%d days')" % int(stop))
- for count, in c.execute(
- "select count(*) from coffees where " +
- " and ".join(clauses)
- , args):
- res = count
-
- if not res:
- res = "0"
-
- return res
+ return dict(c.execute("SELECT CASE WHEN flavor LIKE 'Club%' THEN 'Club-Mate' ELSE 'Coffee' END AS drink,COUNT() FROM coffees where " + " and ".join(clauses) + " GROUP BY drink", args))
<p id="nextStep"></p>
- {% if count %}
- <p>You've had {{ count }} coffee{% if count != 1 %}s{% endif %} today.</p>
+ {% if count or count_mate%}
+ <p>You've had {{ count }} coffee{% if count != 1 %}s{% endif %} and {{ count_mate }} Club-Mate today.</p>
{% endif %}
<img src="{{ url_for('coffee_graph_history', _external=True, stamp=stamp) }}">