forked from Ugric/Komodo-Hub
79 lines
2.5 KiB
Python
79 lines
2.5 KiB
Python
from flask import render_template, Blueprint, g, request, redirect, url_for
|
|
from database.db_connection import get_db
|
|
|
|
page = Blueprint('activities', __name__, url_prefix='/activities')
|
|
|
|
@page.route('/', methods=['GET', 'POST'])
|
|
def home():
|
|
if request.method == 'POST':
|
|
if g.user and g.user["account_type"] == "admin":
|
|
with get_db() as conn:
|
|
conn.execute("""
|
|
INSERT INTO activities
|
|
(title, description, species, due_date, difficulty)
|
|
VALUES (?, ?, ?, ?, ?)
|
|
""", (
|
|
request.form['title'],
|
|
request.form['description'],
|
|
request.form['species'],
|
|
request.form['due_date'],
|
|
request.form['difficulty']
|
|
))
|
|
return redirect(url_for('activities.home'))
|
|
|
|
with get_db() as conn:
|
|
activities = conn.execute("SELECT * FROM activities").fetchall()
|
|
|
|
started_ids = []
|
|
if g.user:
|
|
started = conn.execute("""
|
|
SELECT activity_id FROM user_activities
|
|
WHERE user_id = ?
|
|
""", (g.user["user_id"],)).fetchall()
|
|
|
|
started_ids = [row["activity_id"] for row in started]
|
|
|
|
return render_template(
|
|
'activities/activities.jinja',
|
|
activities=activities,
|
|
started_ids=started_ids
|
|
)
|
|
|
|
|
|
@page.route('/start/<int:activity_id>')
|
|
def start_activity(activity_id):
|
|
if not g.user:
|
|
return redirect(url_for('login.login'))
|
|
|
|
with get_db() as conn:
|
|
exists = conn.execute("""
|
|
SELECT * FROM user_activities
|
|
WHERE user_id = ? AND activity_id = ?
|
|
""", (g.user["user_id"], activity_id)).fetchone()
|
|
|
|
if not exists:
|
|
conn.execute("""
|
|
INSERT INTO user_activities (user_id, activity_id)
|
|
VALUES (?, ?)
|
|
""", (g.user["user_id"], activity_id))
|
|
|
|
return redirect(url_for('activities.home'))
|
|
|
|
|
|
@page.route('/my-activities')
|
|
def my_activities():
|
|
if not g.user:
|
|
return redirect(url_for('login.login'))
|
|
|
|
with get_db() as conn:
|
|
activities = conn.execute("""
|
|
SELECT a.*, ua.started_at, ua.completed
|
|
FROM user_activities ua
|
|
JOIN activities a ON ua.activity_id = a.activity_id
|
|
WHERE ua.user_id = ?
|
|
""", (g.user["user_id"],)).fetchall()
|
|
|
|
return render_template(
|
|
'activities/my_activities.jinja',
|
|
activities=activities
|
|
) |