Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 15 additions & 10 deletions App/models/staff.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,23 @@

class Staff(User):


id = db.Column(db.String(10), db.ForeignKey('user.id'), primary_key=True)
name = db.Column(db.String(50))
dept = db.Column(db.String(120),nullable=False)
faculty = db.Column(db.String(20),nullable=False)


def __init__(self, password, staff_id, name):
super().__init__(staff_id, password)
self.id = staff_id
self.name = name
def __init__(self, username, password, name):
super().__init__(username,password,name)

def set_dept(self,dept):
self.dept = dept
def set_faculty(self,faculty):
self.faculty = faculty

def get_json(self):
def to_json(self):
base = super().to_json()
return{
'staff_id': self.id,
'name': self.name,
base +
"department" : self.dept,
"faculty" : self.faculty
}

77 changes: 59 additions & 18 deletions App/models/student.py
Original file line number Diff line number Diff line change
@@ -1,24 +1,65 @@
from App.models import User
# from App.models import User
from App.database import db
from .user import User

class Student(User):
id = db.Column(db.String(10), db.ForeignKey('user.id'), primary_key=True)
name = db.Column(db.String(50))
program_id = db.Column(db.ForeignKey('program.id'))
__tablename__ = 'Student'
year_of_study = db.Column(db.Integer, nullable=False)
programme = db.Column(db.Integer, db.ForeignKey("programmeID"))
# academicHistory = db.relationship('History', backref=db.backref('Student'), lazy ='joined')
academicHistory = db.relationship('history', backref=db.backref('student'), lazy = 'joined')
academicPlan = db.relationship('CoursePlan', backref=db.backref('student'), lazy = 'joined',uselist=False)
# academicPlan = db.Column(db.Integer, db.ForeignKey("CoursePlanID"))
# id = db.Column(db.String(10), db.ForeignKey('user.id'), primary_key=True)
# name = db.Column(db.String(50))
# program_id = db.Column(db.ForeignKey('program.id'))

associated_program = db.relationship('Program', back_populates='students', overlaps="program")
courses = db.relationship('StudentCourseHistory', backref='student', lazy=True)

def __init__(self, username, password, name, program_id):
super().__init__(username, password)
self.id = username
self.name = name
self.program_id = program_id

def get_json(self):
return{'student_id': self.id,
'name': self.name,
'program' : self.program_id

# associated_program = db.relationship('Program', back_populates='students', overlaps="program")
# courses = db.relationship('StudentCourseHistory', backref='student', lazy=True)

def __init__(self, username, password, name, utype, year):
self.username = username
super.set_password(password)
super.set_name(name)
self.userType = utype
self.year_of_study = year


def get_history(self):
return self.academicHistory

def get_programme(self):
return self.programme

def get_student_curr_year(self):
return self.year_of_study

def enroll_in_programme(self, programme):
self.programme = programme

def create_course_plan(self,coursePlan):
self.academicPlan = coursePlan

def view_course_plan(self):
return self.academicPlan

def add_new_history(self,history):
self.academicHistory.append(history)

# def __repr__(self):
# return f'<User: {self.id}, {self.name}, {self.username}>'

def to_json(self):
base = super().to_json()
prog = self.get_programme().get_degree_name()
return{
base+
"current year of study" : self.get_student_curr_year(),
"programme": prog,
"academic history": self.get_history(),
"academicPlan": self.view_course_plan()

}



33 changes: 26 additions & 7 deletions App/models/user.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,21 +6,40 @@ class User(db.Model, UserMixin):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String, nullable=False, unique=True)
password = db.Column(db.String(120), nullable=False)
name = db.Column(db.String(240), nullable=False)
userType = db.Column(db.String(40), nullable=False)

def __init__(self, username, password):
def __init__(self, username, password, name, utype):
self.username = username
self.set_password(password)
self.set_name(name)
self.userType = utype

def get_json(self):
return{
'id': self.id,
'username': self.username
}

def set_password(self, password):
"""Create hashed password."""
self.password = generate_password_hash(password, method='sha256')


def set_name(self, name):
self.name = name

def check_password(self, password):
"""Check hashed password."""
return check_password_hash(self.password, password)

def get_username(self):
return self.username

def get_usertype(self):
return self.userType

def get_name(self):
return self.name

def to_json(self):
return{
"id": self.id,
"name": self.name,
"username": self.username,
"user_type": self.userType
}