Merge pull request '10-detect-empty-db' (#29) from 10-detect-empty-db into testing
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #29
This commit is contained in:
20
app/app.py
20
app/app.py
@@ -6,6 +6,7 @@ from werkzeug.security import generate_password_hash, check_password_hash
|
||||
from flask_login import (LoginManager, login_user, login_required, logout_user, current_user)
|
||||
from misc import datetime, date, time, currDay, prevDay, ZoneInfo, currVersion, currCommit
|
||||
from db import (db, Period, Task, Event, User)
|
||||
from sqlalchemy import inspect
|
||||
from forms import (TaskForm, EventForm, PeriodForm, SignupForm, LoginForm, SettingsForm)
|
||||
from create_events import createEvents
|
||||
from log import appLogger
|
||||
@@ -82,9 +83,22 @@ def podStatus():
|
||||
return blankPage, 500
|
||||
|
||||
# Index route
|
||||
@app.route('/')
|
||||
@app.route('/', methods=['GET', 'POST'])
|
||||
def index():
|
||||
return redirect('/events')
|
||||
# Check for empty database, go to setup page if not setup
|
||||
global tablesSetup
|
||||
required_tables = ['period', 'task', 'event', 'user']
|
||||
inspector = inspect(db.engine)
|
||||
tables = inspector.get_table_names()
|
||||
tablesSetup = all(table in tables for table in required_tables)
|
||||
if not tablesSetup:
|
||||
# Initial setup page, should only appear if database is ready but not set up
|
||||
db.create_all()
|
||||
logger.info('DB initialized on first run')
|
||||
return redirect(url_for('createAccount'))
|
||||
# Otherwise, redirect to /events
|
||||
else:
|
||||
return redirect('/events')
|
||||
|
||||
# Authentication routes
|
||||
@app.route('/login', methods=['GET', 'POST'])
|
||||
@@ -125,7 +139,7 @@ def createAccount():
|
||||
return redirect(url_for('login'))
|
||||
return render_template('createAccount.html', form=form)
|
||||
else:
|
||||
return 'Account creation is currently disabled'
|
||||
return 'Account creation is currently disabled. <br> Set env var SIGNUP_ENABLED=YES to enable account creation'
|
||||
@app.route('/logout')
|
||||
@login_required
|
||||
def logout():
|
||||
|
Reference in New Issue
Block a user