Пример #1
0
class Course(db.Model):
    __tablename__ = 'courses'
    id = db.Column(db.String(12), primary_key=True, nullable=False)  # CSEE3827
    subject_id = db.Column(db.String(6),
                           db.ForeignKey('subjects.id'),
                           nullable=False)  # CSEE
    number = db.Column(db.String(6), nullable=False)  # 3827
    name = db.Column(db.String(100),
                     nullable=False)  # Fundamentals of Computer Systems
    department_id = db.Column(db.String(6),
                              db.ForeignKey('departments.id'),
                              nullable=False)  # COMS

    def __init__(self,
                 id=None,
                 subject=None,
                 number=None,
                 name=None,
                 department=None):
        db.Model.__init__(self,
                          id=id,
                          subject=subject,
                          number=number,
                          name=name,
                          department=department)

    def __repr__(self):
        return '<Course %r>' % self.id
Пример #2
0
class Membership(db.Model):
    __tablename__ = 'memberships'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    user_id = db.Column(db.String(40),
                        db.ForeignKey('users.id'),
                        nullable=False)
    role_id = db.Column(db.Integer, db.ForeignKey('roles.id'), nullable=False)
    __table_args__ = (db.UniqueConstraint('user_id',
                                          'role_id',
                                          name='_memberships_uc'), )

    def __repr__(self):
        return '<Membership %r>' % self.id
Пример #3
0
class Teaching(db.Model):
    __tablename__ = 'teachings'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)  # 1
    course_id = db.Column(db.String(12),
                          db.ForeignKey('courses.id'),
                          nullable=False)  # CSEE3827
    course = db.relation(Course, backref='teachings', lazy=True)
    professor_uni = db.Column(db.String(8),
                              db.ForeignKey('professors.uni'),
                              nullable=False)  # Ewan Lowe
    professor = db.relation(Professor, backref='teachings', lazy=True)
    comments = db.relationship('Comment', backref='teaching', lazy=True)
    __table_args__ = (db.UniqueConstraint('course_id',
                                          'professor_uni',
                                          name='_teachings_uc'), )
Пример #4
0
class Professor(db.Model):
    __tablename__ = 'professors'
    uni = db.Column(db.String(8), primary_key=True, nullable=False)  # etl2115
    name = db.Column(db.String(100), nullable=False)  # Ewan Lowe
    department_id = db.Column(db.String(6),
                              db.ForeignKey('departments.id'),
                              nullable=False)  # COMS
    department = db.relationship('Department', backref='professors', lazy=True)
    avatar = db.Column(db.String(200))  # Avatar
    url = db.Column(db.String(200))  # Personal website

    def __init__(self,
                 uni=None,
                 name=None,
                 department=None,
                 avatar='',
                 url=''):
        db.Model.__init__(self,
                          uni=uni,
                          name=name,
                          department=department,
                          avatar=avatar,
                          url=url)

    def __repr__(self):
        return '<Professor %r>' % self.name
Пример #5
0
class Comment(db.Model):
    __tablename__ = 'comments'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)  # 1
    teaching_id = db.Column(db.Integer,
                            db.ForeignKey('teachings.id'),
                            nullable=False)
    title = db.Column(db.String(100))  # Great course
    content = db.Column(db.Text)  # A very good teacher
    term_id = db.Column(db.String(12),
                        db.ForeignKey('terms.id'),
                        nullable=False)
    term = db.relation(Term, backref='comments', lazy=True)
    rating = db.Column(db.Integer, nullable=False)  # 5
    workload = db.Column(db.Integer, nullable=False)  # 1
    grade = db.Column(db.String(2), nullable=False)  # A+
    user_id = db.Column(db.String(40),
                        db.ForeignKey('users.id'),
                        nullable=False)
    user = db.relation(User, backref='comments', lazy=True)
    timestamp = db.Column(db.DateTime, default=datetime.utcnow, nullable=False)
    tags = db.relationship('Tag',
                           secondary=comments_tags,
                           lazy='subquery',
                           backref=db.backref('comments', lazy=True))
Пример #6
0
    comments = db.relationship('Comment', backref='teaching', lazy=True)
    __table_args__ = (db.UniqueConstraint('course_id',
                                          'professor_uni',
                                          name='_teachings_uc'), )


class Term(db.Model):
    __tablename__ = 'terms'
    id = db.Column(db.String(12), primary_key=True, nullable=False)


comments_tags = db.Table(
    'comments_tags',
    db.Column('comment',
              db.Integer,
              db.ForeignKey('comments.id'),
              primary_key=True),
    db.Column('tag', db.Integer, db.ForeignKey('tags.id'), primary_key=True))


class Comment(db.Model):
    __tablename__ = 'comments'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)  # 1
    teaching_id = db.Column(db.Integer,
                            db.ForeignKey('teachings.id'),
                            nullable=False)
    title = db.Column(db.String(100))  # Great course
    content = db.Column(db.Text)  # A very good teacher
    term_id = db.Column(db.String(12),
                        db.ForeignKey('terms.id'),
                        nullable=False)