|
|
@ -1,10 +1,12 @@ |
|
|
|
from flask import render_template, flash, abort |
|
|
|
from flask import render_template, flash, abort |
|
|
|
|
|
|
|
from flask_login import current_user, login_user, logout_user, login_required |
|
|
|
from biscd import app |
|
|
|
from biscd import app |
|
|
|
from .models import Project |
|
|
|
from .models import Project |
|
|
|
from .froms import NewProjectForm |
|
|
|
from .froms import NewProjectForm, LoginForm |
|
|
|
|
|
|
|
|
|
|
|
@app.route('/', methods=['GET', 'POST']) |
|
|
|
@app.route('/', methods=['GET', 'POST']) |
|
|
|
@app.route('/index', methods=['GET', 'POST']) |
|
|
|
@app.route('/index', methods=['GET', 'POST']) |
|
|
|
|
|
|
|
@login_required |
|
|
|
def index(): |
|
|
|
def index(): |
|
|
|
form = NewProjectForm() |
|
|
|
form = NewProjectForm() |
|
|
|
if form.validate_on_submit(): |
|
|
|
if form.validate_on_submit(): |
|
|
@ -14,7 +16,45 @@ def index(): |
|
|
|
project_names = Project.list() |
|
|
|
project_names = Project.list() |
|
|
|
return render_template('index.html', form=form, project_names=project_names) |
|
|
|
return render_template('index.html', form=form, project_names=project_names) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@app.route('/login', methods=['GET', 'POST']) |
|
|
|
|
|
|
|
def login(): |
|
|
|
|
|
|
|
if current_user.is_authenticated: |
|
|
|
|
|
|
|
return redirect(url_for('index')) |
|
|
|
|
|
|
|
form = LoginForm() |
|
|
|
|
|
|
|
if form.validate_on_submit(): |
|
|
|
|
|
|
|
user = User.query.filter_by(username=form.username.data).first() |
|
|
|
|
|
|
|
if user is None or not user.check_password(form.password.data): |
|
|
|
|
|
|
|
flash('Invalid username or password') |
|
|
|
|
|
|
|
return redirect(url_for('login')) |
|
|
|
|
|
|
|
login_user(user, remember=form.remember_me.data) |
|
|
|
|
|
|
|
next_page = request.args.get('next') |
|
|
|
|
|
|
|
if not next_page or url_parse(next_page).netloc != '': |
|
|
|
|
|
|
|
next_page = url_for('index') |
|
|
|
|
|
|
|
return redirect(next_page) |
|
|
|
|
|
|
|
return render_template('login.html', title='Sign In', form=form) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@app.route('/logout') |
|
|
|
|
|
|
|
def logout(): |
|
|
|
|
|
|
|
logout_user() |
|
|
|
|
|
|
|
return redirect(url_for('index')) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@app.route('/register', methods=['GET', 'POST']) |
|
|
|
|
|
|
|
def register(): |
|
|
|
|
|
|
|
if current_user.is_authenticated: |
|
|
|
|
|
|
|
return redirect(url_for('index')) |
|
|
|
|
|
|
|
form = RegistrationForm() |
|
|
|
|
|
|
|
if form.validate_on_submit(): |
|
|
|
|
|
|
|
user = User(username=form.username.data, email=form.email.data) |
|
|
|
|
|
|
|
user.set_password(form.password.data) |
|
|
|
|
|
|
|
db.session.add(user) |
|
|
|
|
|
|
|
db.session.commit() |
|
|
|
|
|
|
|
flash('Congratulations, you are now a registered user!') |
|
|
|
|
|
|
|
return redirect(url_for('login')) |
|
|
|
|
|
|
|
return render_template('register.html', title='Register', form=form) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@app.route('/project/<project_name>', methods=['GET', 'POST']) |
|
|
|
@app.route('/project/<project_name>', methods=['GET', 'POST']) |
|
|
|
|
|
|
|
@login_required |
|
|
|
def project_dashboard(project_name): |
|
|
|
def project_dashboard(project_name): |
|
|
|
print(project_name) |
|
|
|
print(project_name) |
|
|
|
project = Project.get(project_name) |
|
|
|
project = Project.get(project_name) |
|
|
|