class Alumni(db.Model): __tablename__ = 'alumni' id = db.Column(db.String(11), primary_key=True) school_type = db.Column(db.String(10), nullable=False) gender = db.Column(db.String(1), nullable=False) school_city = db.Column(db.String(10), nullable=False) ket_lulus = db.Column(db.String(20), nullable=False) nilai = db.relationship('Nilai', backref='alumni', lazy=True, uselist=False)
class Training(db.Model): __tablename__ = 'training' id = db.Column(db.String(11), primary_key=True) school_type = db.Column(db.String(10), nullable=False) gender = db.Column(db.String(1), nullable=False) school_city = db.Column(db.String(10), nullable=False) semester_1 = db.Column(db.Float, nullable=False) semester_2 = db.Column(db.Float, nullable=False) semester_3 = db.Column(db.Float, nullable=False) semester_4 = db.Column(db.Float, nullable=False) ipk = db.Column(db.Float, nullable=False) ket_lulus = db.Column(db.String(20), nullable=False)
class Testing(db.Model): __tablename__ = 'testing' id = db.Column(db.String(11), primary_key=True) school_type = db.Column(db.String(10), nullable=False) gender = db.Column(db.String(10), nullable=False) school_city = db.Column(db.String(10), nullable=False) semester_1 = db.Column(db.Float, nullable=False) semester_2 = db.Column(db.Float, nullable=False) semester_3 = db.Column(db.Float, nullable=False) semester_4 = db.Column(db.Float, nullable=False) ipk = db.Column(db.Float, nullable=False) result = db.relationship('Hasil', backref='testing', lazy=True, uselist=False)
class Nilai(db.Model): __tablename__ = 'nilai' id = db.Column(db.Integer, primary_key=True, autoincrement=True) id_alumni = db.Column(db.String(11), db.ForeignKey('alumni.id')) semester_1 = db.Column(db.Float, nullable=False) semester_2 = db.Column(db.Float, nullable=False) semester_3 = db.Column(db.Float, nullable=False) semester_4 = db.Column(db.Float, nullable=False) ipk = db.Column(db.Float, nullable=False)
class User(db.Model, UserMixin): __tablename__ = 'user' id = db.Column(db.Integer, primary_key=True, autoincrement=True) email = db.Column(db.String(100), nullable=False, unique=True) hash_password = db.Column(db.String(100), nullable=False) first_name = db.Column(db.String(50), nullable=False) last_name = db.Column(db.String(50), nullable=False) registered_on = db.Column(db.DateTime, nullable=False) phone_number = db.Column(db.String(25)) role = db.Column(db.String(5), nullable=False, default=False) @property def password(self): raise AttributeError('password: write-only field') @password.setter def password(self, password): self.hash_password = flask_bcrypt.generate_password_hash( password).decode('utf-8') def check_admin(self, role): return role == 'Admin' def check_password(self, password): return flask_bcrypt.check_password_hash(self.hash_password, password) def __repr__(self): return "User {}".format(self.email)
class Hasil(db.Model): __tablename__ = 'hasil' id = db.Column(db.Integer, primary_key=True, autoincrement=True) id_testing = db.Column(db.String(11), db.ForeignKey('testing.id')) result = db.Column(db.String(20), nullable=False)