-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmodels.py
More file actions
71 lines (55 loc) · 2.95 KB
/
Copy pathmodels.py
File metadata and controls
71 lines (55 loc) · 2.95 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
from app import db
class User(db.Model):
__tablename__ = 'User'
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(30), unique=True, nullable=False)
email = db.Column(db.String(30), unique=True, nullable=False)
password = db.Column(db.String(20), nullable=False)
type = db.Column(db.String(20), nullable=False)
# first_name = db.Column(db.String(30))
# last_name = db.Column(db.String(30))
def __repr__(self):
return f"User('{self.username}', '{self.email}')"
class Student(db.Model):
__tablename__ = 'Student'
id = db.Column(db.Integer, primary_key=True)
student_id = db.Column(db.Integer, db.ForeignKey('User.id'), nullable=False)
instructor_id = db.Column(db.Integer, db.ForeignKey('Instructor.id'), nullable=False)
user = db.relationship('User', backref=db.backref('student', uselist=False))
instructor = db.relationship('Instructor', backref=db.backref('students', lazy=True))
def __repr__(self):
return f"Student('{self.user.id}', '{self.user.username}')"
class Instructor(db.Model):
__tablename__ = 'Instructor'
id = db.Column(db.Integer, primary_key=True)
instructor_id = db.Column(db.Integer, db.ForeignKey('User.id'), nullable=False)
user = db.relationship('User', backref=db.backref('instructor', uselist=False))
def __repr__(self):
return f"Instructor('{self.user.username}')"
class Assignment(db.Model):
__tablename__ = 'Assignment'
id = db.Column(db.Integer, primary_key=True)
number = db.Column(db.Integer, nullable=False)
student_id = db.Column(db.Integer, db.ForeignKey('Student.id'), nullable=False)
grade = db.Column(db.Integer)
regrade_requested = db.Column(db.Boolean, default=False)
requested_new_grade = db.Column(db.Integer)
description = db.Column(db.Text)
student = db.relationship('Student', backref=db.backref('assignments', lazy=True))
def __repr__(self):
return f"Assignment(id={self.id}, number={self.number}, student_id={self.student_id}, regrade_requested={self.regrade_requested}, description={self.description}, reqested_new_grade={self.requested_new_grade})"
class Feedback(db.Model):
__tablename__ = 'Feedback'
id = db.Column(db.Integer, primary_key=True)
instructor_id = db.Column(db.Integer, db.ForeignKey('Instructor.id'), nullable=False)
question_1 = db.Column(db.Text)
question_2 = db.Column(db.Text)
question_3 = db.Column(db.Text)
question_4 = db.Column(db.Text)
submitted = db.Column(db.Boolean, default=False) # boolean
instructor = db.relationship('Instructor', backref=db.backref('feedback_received', uselist=False))
def __repr__(self):
return f"Feedback(id={self.id}, instructor_id={self.instructor_id}, " \
f"question_1='{self.question_1}', question_2='{self.question_2}', " \
f"question_3='{self.question_3}', question_4='{self.question_4}', " \
f"submitted={self.submitted})"