Advertisement
Guest User

My models

a guest
Oct 18th, 2019
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.52 KB | None | 0 0
  1. from flask_login import UserMixin
  2. from app import db, login_manager
  3. from werkzeug.security import generate_password_hash, check_password_hash
  4.  
  5.  
  6.  
  7. class Employee(UserMixin, db.Model):
  8. # verbose plural
  9. __tablename__ = 'employees'
  10.  
  11. id = db.Column(db.Integer, primary_key=True)
  12. username = db.Column(db.String(80), unique=True, index=True)
  13. first_name = db.Column(db.String(50), index=True)
  14. last_name = db.Column(db.String(50), index=True)
  15. date_of_birth = db.Column(db.DateTime)
  16. date_of_first_appointment = db.Column(db.DateTime)
  17. next_of_kin = db.Column(db.String(50), index=True)
  18. age = db.Column(db.Integer)
  19. department_name = db.Column(db.String(50), db.ForeignKey('departments.name'))
  20. educational_qualification = db.Column(db.String(60))
  21. present_grade_level = db.Column(db.String(60))
  22. post = db.Column(db.String(60), db.ForeignKey('roles.name'))
  23. address = db.Column(db.String(80))
  24. phone_nmuber = db.Column(db.Integer, unique=True)
  25. email = db.Column(db.String(80), index=True, unique=True)
  26. marital_status = db.Column(db.String(40))
  27. password_hash = db.Column(db.String(128))
  28. is_admin = db.Column(db.Boolean, default=False)
  29.  
  30. # Prevent password from being assessed
  31. @property
  32. def password(self):
  33. raise AttributeError("Passowrd is Hidden")
  34.  
  35. @password.setter
  36. def password(self, password):
  37. self.password_hash = generate_password_hash(password)
  38.  
  39. def verify_password(self, password):
  40. return check_password_hash(self.password_hash, password)
  41.  
  42. def __repr__(self):
  43. return '<Employee: {}>'.format(self.username)
  44.  
  45. # sets up the user_loader
  46. @login_manager.user_loader
  47. def load_user(user_id):
  48. return Employee.query.get(int(user_id))
  49.  
  50.  
  51. class Department(db.Model):
  52. __tablename__ = 'departments'
  53. department_id = db.Column(db.Integer, primary_key=True)
  54. name = db.Column(db.String(60), unique=True)
  55. descripttion = db.Column(db.String(300))
  56. employees = db.relationship('Employee', backref='department', lazy='dynamic')
  57.  
  58. def __repr__(self):
  59. return '<Department: {}>'.format(self.name)
  60.  
  61.  
  62. class Role(db.Model):
  63. __tablename__ = 'roles'
  64. role_id = db.Column(db.Integer, primary_key=True)
  65. name = db.Column(db.String(60), unique=True)
  66. descripttion = db.Column(db.String(300))
  67. employees = db.relationship('Employee', backref='role', lazy='dynamic')
  68.  
  69. def __repr__(self):
  70. return '<Role: {}>'.format(self.name)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement