import os import time from datetime import datetime, date from flask import Flask, render_template, request, redirect, url_for from flask_sqlalchemy import SQLAlchemy basedir = os.path.abspath(os.path.dirname(__file__)) app = Flask(__name__) app.config['SECRET_KEY'] = 'HwG55rpe83jcaglifXm8NuF4WEeXyJV4' app.config['SQLALCHEMY_DATABASE_URI'] =\ 'sqlite:///' + os.path.join(basedir, 'database.db') app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False db = SQLAlchemy(app) from auth import auth as auth_blueprint app.register_blueprint(auth_blueprint) class Period(db.Model): period = db.Column(db.Integer, primary_key=True) periodTime = db.Column(db.Integer) weekendSchedule = db.Column(db.Boolean) def __repr__(self): return f'' class Task(db.Model): id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(100)) description = db.Column(db.Text) is_completed = db.Column(db.Boolean) created_timestamp = db.Column(db.Integer) due_timestamp = db.Column(db.Integer) def __repr__(self): return f'' class Event(db.Model): id = db.Column(db.Integer, primary_key=True) scheduled_date = db.Column(db.String(100)) period = db.relationship(Period, backref='events') tasks = db.relationship(Task, backref='events') period_num = db.Column(db.Integer, db.ForeignKey('period.period')) task_id = db.Column(db.Integer, db.ForeignKey('task.id')) def __repr__(self): return f'' @app.route('/') def index(): return redirect('/events') @app.route('/events') def events(): events = Event.query.all() return render_template('events.html', events=events, datetime=datetime, date=date) @app.route('/tasks') def tasks(): tasks = Task.query.all() return render_template('tasks.html', str=str, tasks=tasks, datetime=datetime, date=date) @app.route('/task/new', methods=('GET', 'POST')) def newTask(): if request.method == 'POST': task = Task(title=request.form['title'], description=request.form['description'], created_timestamp=int(time.time())) db.session.add(task) db.session.commit() return redirect(f'/task/{task.id}') return render_template('newtask.html') @app.route('/task//') def task(task_id): task = Task.query.get_or_404(task_id) return render_template('task.html', str=str, task=task, datetime=datetime, date=date) @app.route('/task//edit', methods=('GET', 'POST')) def editTask(task_id): task = Task.query.get_or_404(task_id) if request.method == 'POST': task.title = request.form['title'] task.description = request.form['description'] db.session.commit() return render_template('edittask.html', str=str, task=task, datetime=datetime, date=date) @app.post('/task//delete') def delete_task(task_id): task = Task.query.get_or_404(task_id) db.session.delete(task) db.session.commit() return redirect('/tasks')