1.0.1 release #15
@@ -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
14
app/backgroundTasks.py
Normal 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()
|
@@ -9,3 +9,5 @@ def createEvents(db, currDay, Period, Event):
|
||||
)
|
||||
db.session.add(event)
|
||||
db.session.commit()
|
||||
|
||||
print("createEvents script ran successfully")
|
@@ -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
|
||||
|
||||
|
Reference in New Issue
Block a user