Advertisement
Guest User

Untitled

a guest
Dec 1st, 2017
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 6.42 KB | None | 0 0
  1. class User(db.Model):
  2.     __tablename__ = 'User'
  3.     can_create = False
  4.     id = db.Column('id', db.Integer, primary_key=True)
  5.     first = db.Column('first', db.String(15), nullable=False)
  6.     last = db.Column('last', db.String(25), nullable=False)
  7.     username = db.Column('username', db.String(80), unique=True, nullable=False)
  8.     password = db.Column('password', db.String(80), nullable=False)
  9.     phonenumber = db.Column('phonenumber', db.String(45), nullable=False)
  10.     dob = db.Column('dob', db.DateTime, nullable=False)
  11.     admin = db.Column('isadmin', db.Boolean, default=False, nullable=False)
  12.  
  13.     def __init__(self, first=None, last=None, username=None, password=None, phonenumber=None, dob=None):
  14.         self.first = first
  15.         self.last = last
  16.         self.username = username
  17.         self.password = password
  18.         self.phonenumber = phonenumber
  19.         self.dob = dob
  20.  
  21.     def type_formatter(view, value):
  22.         pass
  23.  
  24.     def is_authenticated(self):
  25.         return True
  26.  
  27.     def is_active(self):
  28.         return True
  29.  
  30.     def is_anonymous(self):
  31.         return False
  32.  
  33.     def get_id(self):
  34.         return unicode(self.id)
  35.  
  36.     def __repr__(self):
  37.         return self.username
  38.  
  39.  
  40. class JSONMixin(object):
  41.  
  42.     def _asdict(self):
  43.         result = OrderedDict()
  44.         for key in self.__mapper__.c.keys():
  45.             result[key] = getattr(self, key)
  46.         return result
  47.  
  48.  
  49. class Contact(JSONMixin, db.Model):
  50.     __tablename__ = 'Contact'
  51.     id = db.Column('id', db.Integer, primary_key=True)
  52.     first = db.Column('first', db.String(15), nullable=False)
  53.     last = db.Column('last', db.String(25), nullable=False)
  54.     street = db.Column('street', db.String(80), nullable=False)
  55.     city = db.Column('city', db.String(80), nullable=False)
  56.     state = db.Column('state', db.String(80), nullable=False)
  57.     zipcode = db.Column('zipcode', db.String(80), nullable=False)
  58.     phonenumber = db.Column('phonenumber', db.String(45), nullable=False)
  59.  
  60.     def __repr__(self):
  61.         return self.first
  62.  
  63.  
  64. class Policy(JSONMixin, db.Model):
  65.     __tablename__ = 'Policy'
  66.     id = db.Column('id', db.Integer, primary_key=True)
  67.     policy_number = db.Column('policy_number', db.Integer)
  68.     policy_type = db.Column('policy_type', db.String(25))
  69.     contact_id = db.Column(db.Integer, db.ForeignKey('Contact.id'))
  70.     contact = db.relationship('Contact', backref='policies')
  71.  
  72.     def __repr__(self):
  73.         return str(self.id)
  74.  
  75.  
  76. class Letter(db.Model):
  77.     __tablename__ = 'Letter'
  78.     id = db.Column('id', db.Integer, primary_key=True)
  79.     title = db.Column('title', db.String(25))
  80.     description = db.Column('description', db.String(80))
  81.     template = db.Column('template', db.Text)
  82.  
  83.     def __repr__(self):
  84.         return self.id
  85.  
  86.  
  87. class ContactView(ModelView):
  88.     form_excluded_columns = ('policies')
  89.  
  90.  
  91. admin.add_view(ModelView(User, db.session))
  92. admin.add_view(ContactView(Contact, db.session))
  93. admin.add_view(ModelView(Policy, db.session))
  94. admin.add_view(ModelView(Letter, db.session))
  95.  
  96.  
  97. @login_manager.user_loader
  98. def load_user(id):
  99.     return User.query.get(int(id))
  100.  
  101.  
  102. @app.route('/')
  103. @login_required
  104. def index():
  105.     return render_template('index.html')
  106.  
  107.  
  108. @app.route('/reports', methods=['GET','POST'])
  109. @login_required
  110. def reports():
  111.     if request.method == "GET":
  112.         return render_template('reports.html')
  113.     letter = Letter.query.get(1)
  114.     first = request.form['searchFirst']
  115.     last = request.form['searchLast']
  116.     phone = request.form['searchPhone']
  117.     contacts = Contact.query.filter(Contact.first.contains(first), Contact.last.contains(last), Contact.phonenumber.contains(phone)).all()
  118.     return jsonify([contacts])
  119.  
  120.  
  121.  
  122.  
  123. @app.route('/process', methods=['GET', 'POST'])
  124. def process():
  125.     return render_template('knockouttest.html')
  126.  
  127. @app.route('/results', methods=['GET','POST'])
  128. @login_required
  129. def results():
  130.     return render_template('results.html')
  131.  
  132.  
  133. @app.route('/management', methods=['GET', 'POST'])
  134. @login_required
  135. def management():
  136.     return render_template('management.html')
  137.  
  138.  
  139. @app.route('/history')
  140. @login_required
  141. def history():
  142.     return render_template('history.html')
  143.  
  144.  
  145. @app.route('/settings')
  146. @login_required
  147. def settings():
  148.     return render_template('settings.html')
  149.  
  150.  
  151. @app.route('/test')
  152. def test():
  153.     return render_template('knockouttest.html')
  154.  
  155.  
  156. @app.route('/login', methods=['GET','POST'])
  157. def login():
  158.     if request.method == 'GET':
  159.         return render_template('login.html')
  160.     username = request.form['inputEmail']
  161.     password = request.form['inputPassword']
  162.     remember_me = False
  163.     if 'remember_me' in request.form:
  164.         remember_me = True
  165.     registered_user = User.query.filter_by(username=username, password=password).first()
  166.     if registered_user is None:
  167.         flash('Username or Password is invalid', 'error')
  168.         return redirect(url_for('login'))
  169.     login_user(registered_user, remember=remember_me)
  170.     flash('Logged in Successfully')
  171.     return redirect(request.args.get('next') or url_for('index'))
  172.  
  173.  
  174. @app.route('/logout')
  175. def logout():
  176.     logout_user()
  177.     return redirect(url_for('index'))
  178.  
  179.  
  180. @app.route('/signup', methods=['GET', 'POST'])
  181. def signup():
  182.     if request.method == 'GET':
  183.         return render_template('signup.html')
  184.     user = User(request.form['inputFirst'], request.form['inputLast'], request.form['inputEmail'], request.form['dob'], request.form['inputPassword', request.form['inputStreet'],request.form['inputState'],request.form['inputCity'],request.form['inputZip'],request.form['inputPhone']])
  185.     db.session.add(user)
  186.     db.session.commit()
  187.     flash('User successfully created!')
  188.     return redirect(url_for('login'))
  189.  
  190.  
  191. @app.route('/profile/<name>')
  192. @login_required
  193. def profile():
  194.     return render_template('profile.html', name=name)
  195.  
  196.  
  197. @app.route('/admin')
  198. @login_required
  199. def admin():
  200.     return render_template('admin.html')
  201.  
  202.  
  203.  
  204. @app.route('/genreport')
  205. def pdf_template():
  206.     lid = request.args.get('lid')
  207.     pid = request.args.get('policyId')
  208.     policy = Policy.query.get(pid)
  209.     letter = Letter.query.get(lid)
  210.     rendered = render_template_string(letter.template, policy=policy)
  211.     pdf = pdfkit.from_string(rendered, False)
  212.    
  213.     response = make_response(pdf)
  214.     response.headers['Content-Type'] = 'application/pdf'
  215.     response.headers['Content-Disposition'] = 'inline; filename=output.pdf'
  216.  
  217.     return response
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement