|  |  | @ -1,16 +1,44 @@ | 
			
		
	
		
			
				
					|  |  |  | import os | 
			
		
	
		
			
				
					|  |  |  | from flask import Flask, render_template, session, redirect, url_for, flash | 
			
		
	
		
			
				
					|  |  |  | from flask_bootstrap import Bootstrap | 
			
		
	
		
			
				
					|  |  |  | from flask_moment import Moment | 
			
		
	
		
			
				
					|  |  |  | from flask_wtf import FlaskForm | 
			
		
	
		
			
				
					|  |  |  | from wtforms import StringField, SubmitField | 
			
		
	
		
			
				
					|  |  |  | from wtforms.validators import DataRequired | 
			
		
	
		
			
				
					|  |  |  | from flask_sqlalchemy import SQLAlchemy | 
			
		
	
		
			
				
					|  |  |  |  | 
			
		
	
		
			
				
					|  |  |  |  | 
			
		
	
		
			
				
					|  |  |  | basedir = os.path.abspath(os.path.dirname(__file__)) | 
			
		
	
		
			
				
					|  |  |  |  | 
			
		
	
		
			
				
					|  |  |  | app = Flask(__name__) | 
			
		
	
		
			
				
					|  |  |  | app.config['SECRET_KEY'] = 'hard to guess string' | 
			
		
	
		
			
				
					|  |  |  | app.config['SQLALCHEMY_DATABASE_URI'] = \ | 
			
		
	
		
			
				
					|  |  |  | 'sqlite:///' + os.path.join(basedir, 'data.sqlite') | 
			
		
	
		
			
				
					|  |  |  | app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False | 
			
		
	
		
			
				
					|  |  |  |  | 
			
		
	
		
			
				
					|  |  |  | bootstrap = Bootstrap(app) | 
			
		
	
		
			
				
					|  |  |  | moment = Moment(app) | 
			
		
	
		
			
				
					|  |  |  | db = SQLAlchemy(app) | 
			
		
	
		
			
				
					|  |  |  |  | 
			
		
	
		
			
				
					|  |  |  |  | 
			
		
	
		
			
				
					|  |  |  | class Role(db.Model): | 
			
		
	
		
			
				
					|  |  |  | __tablename__ = 'roles' | 
			
		
	
		
			
				
					|  |  |  | id = db.Column(db.Integer, primary_key=True) | 
			
		
	
		
			
				
					|  |  |  | name = db.Column(db.String(64), unique=True) | 
			
		
	
		
			
				
					|  |  |  | users = db.relationship('User', backref='role') | 
			
		
	
		
			
				
					|  |  |  |  | 
			
		
	
		
			
				
					|  |  |  | def __repr__(self): | 
			
		
	
		
			
				
					|  |  |  | return '<Role %r>' % self.name | 
			
		
	
		
			
				
					|  |  |  |  | 
			
		
	
		
			
				
					|  |  |  |  | 
			
		
	
		
			
				
					|  |  |  | class User(db.Model): | 
			
		
	
		
			
				
					|  |  |  | __tablename__ = 'users' | 
			
		
	
		
			
				
					|  |  |  | id = db.Column(db.Integer, primary_key=True) | 
			
		
	
		
			
				
					|  |  |  | username = db.Column(db.String(64), unique=True, index=True) | 
			
		
	
		
			
				
					|  |  |  | role_id = db.Column(db.Integer, db.ForeignKey('roles.id')) | 
			
		
	
		
			
				
					|  |  |  |  | 
			
		
	
		
			
				
					|  |  |  | def __repr__(self): | 
			
		
	
		
			
				
					|  |  |  | return '<User %r>' % self.username | 
			
		
	
		
			
				
					|  |  |  |  | 
			
		
	
		
			
				
					|  |  |  |  | 
			
		
	
		
			
				
					|  |  |  | class NameForm(FlaskForm): | 
			
		
	
	
		
			
				
					|  |  | 
 |