1.0.1 release #15

Merged
williamp merged 35 commits from testing into master 2023-03-21 18:10:14 +00:00
16 changed files with 147 additions and 22 deletions
Showing only changes of commit bbd44e9ec6 - Show all commits

View File

@@ -6,6 +6,7 @@ from flask_login import (LoginManager, login_user, login_required, logout_user,
from misc import datetime, date, time, currDay, ZoneInfo, currVersion, currCommit
from db import (db, Period, Task, Event, User)
from forms import (TaskForm, EventForm, PeriodForm, SignupForm, LoginForm, SettingsForm)
from backgroundTasks import scheduleCreateEvents
from create_events import createEvents
basedir = os.path.abspath(os.path.dirname(__file__))
@@ -21,6 +22,10 @@ db.init_app(app)
migrate = Migrate()
migrate.init_app(app, db)
# Schedule creation of events every hour
with app.app_context():
scheduleCreateEvents(app, db, currDay, Period, Event, createEvents)
# Authentication stuff
login_manager = LoginManager()
@@ -47,7 +52,6 @@ def injectVerCommit():
# Index route
@app.route('/')
def index():
createEvents(db, currDay, Period, Event)
return redirect('/events')
# Authentication routes
@@ -120,7 +124,6 @@ def newPeriod():
)
db.session.add(period)
db.session.commit()
createEvents(db, currDay, Period, Event)
return redirect(f'/period/edit/{period.period}')
return render_template('newPeriod.html', form=form)
@@ -152,7 +155,6 @@ def delete_period(periodNum):
def events():
events = Event.query.all()
periods = Period.query.all()
createEvents(db, currDay, Period, Event)
return render_template('events.html', events=events, periods=periods, datetime=datetime, date=date, ZoneInfo=ZoneInfo)

14
app/backgroundTasks.py Normal file
View File

@@ -0,0 +1,14 @@
from apscheduler.schedulers.background import BackgroundScheduler
from apscheduler.triggers.cron import CronTrigger
def scheduleCreateEvents(app, db, currDay, Period, Event, createEvents):
# create events upon application launch
createEvents(db, currDay, Period, Event)
# schedule createEvents task every hour
sched = BackgroundScheduler()
def eventsTask():
with app.app_context():
createEvents(db, currDay, Period, Event)
sched.add_job(eventsTask, CronTrigger.from_crontab('00 * * * *'))
sched.start()

View File

@@ -9,3 +9,5 @@ def createEvents(db, currDay, Period, Event):
)
db.session.add(event)
db.session.commit()
print("createEvents script ran successfully")

View File

@@ -20,6 +20,9 @@ Flask-User==1.0.2.2
# WTForms Extensions
WTForms-SQLAlchemy==0.3.0
# APScheduler automated scheduler
APScheduler==3.9.1.post1
# Python Time packages
pytz==2022.6