Files
BellScheduler/app.py
2022-11-12 19:10:48 -05:00

53 lines
1.6 KiB
Python

import os
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['SQLALCHEMY_DATABASE_URI'] =\
'sqlite:///' + os.path.join(basedir, 'database.db')
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)
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'<Period "{self.period}">'
class Task(db.Model):
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(100))
description = db.Column(db.Text)
created_timestamp = db.Column(db.Integer)
due_timestamp = db.Column(db.Integer)
def __repr__(self):
return f'<Task "{self.title}">'
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'<Event "{self.id}">'
@app.route('/')
def index():
events = Event.query.all()
return render_template('index.html', events=events)
@app.route('/task/<int:task_id>/')
def task(task_id):
task = Task.query.get_or_404(task_id)
return render_template('task.html', task=task)