Example #1
0
def plot_date(d):
    """Sum amounts and group by dates. """
    query = db_session.query(
        Entry.date,
        func.sum(Entry.amount)
    ).filter(
        (extract('year', Entry.date) == d.year) &
        (extract('month', Entry.date) == d.month)
    ).group_by(Entry.date).order_by(Entry.date)
    series = [(str(d), '%.2f' % s) for d, s in query]
    return jsonify(series=series)
Example #2
0
def plot_bar(d):
    """Sum amounts and group by tags."""
    query = db_session.query(
        Tag.name,
        func.sum(Entry.amount)
    ).outerjoin(Entry.tags).filter(
        (extract('year', Entry.date) == d.year) &
        (extract('month', Entry.date) == d.month)
    ).group_by(Tag.name).order_by(Tag.name)
    series = [(t or '(no tag)', '%.2f' % s) for t, s in query]
    return jsonify(series=series)
Example #3
0
File: tags.py Project: xamox/beans
 def post(self):
     """Create tag."""
     data = TagSchema().deserialize(request.json)
     tag_exists = db_session.query(exists().where(
         Tag.name == data['name']
     )).scalar()
     if tag_exists:
         abort(409)
     tag = Tag()
     tag.name = data['name']
     db_session.add(tag)
     db_session.commit()
     return jsonify(id=tag.id)