ltx/.lifetracker-python/views.py

68 lines
1.9 KiB
Python

from app import app, db
from flask import render_template, request, jsonify, redirect
from app.models import Day, Hour, Activity
from datetime import datetime, timedelta
@app.route("/import", methods=["GET"])
def import_db():
tracker = app.tracker
tracker.import_codes()
tracker.import_csv()
return redirect("/")
@app.route("/")
def home():
return redirect("/tracker")
@app.route("/tracker", methods=["GET"])
def tracker():
past = datetime.today() - timedelta(days=5)
future = datetime.today() + timedelta(days=1)
days = db.session.query(Day).filter(Day.date >= past,
Day.date <= future).all()
return render_template("table.html", days=days, now=datetime.now())
@app.route("/categories", methods=["GET"])
def categories():
activities = db.session.query(Activity).all()
return render_template("categories.html", activities=activities)
@app.route("/colors.css")
def colors():
return render_template("colors.css"), 200, {'Content-Type': 'text/css; charset=utf-8'}
@app.route("/get-activity-form/<int:hour_id>", methods=["GET"])
def update_entry(hour_id):
hour = db.session.query(Hour).filter(Hour.hour_id == hour_id).first()
return render_template("forms/update-entry.html", hour=hour)
@app.route("/get-color-form/<int:activity_id>", methods=["GET"])
def update_color(activity_id):
activity = db.session.query(Activity).filter(
Activity.activity_id == activity_id).first()
return render_template("forms/select-color.html", activity=activity)
@app.route("/change-color", methods=["POST"])
def change_color():
activity_id = request.form.get("activity_id")
color = request.form.get("color")
activity = db.session.query(Activity).filter(
Activity.activity_id == activity_id).first()
activity.color = color
db.session.commit()
return render_template("/categories.html")