Exemple #1
0
class Conversation(db.Model):
    __tablename__ = 'conversations'
    conversation_id = db.Column(db.Integer, primary_key=True)
    first_user = db.Column(
        db.Integer,
        ForeignKey('user.user_id', ondelete='CASCADE', onupdate="CASCADE"))
    second_user = db.Column(
        db.Integer,
        ForeignKey('user.user_id', ondelete='CASCADE', onupdate="CASCADE"))

    def serialize(self):
        return {
            'conversation_id': self.conversation_id,
            'first_user': self.first_user,
            'second_user': self.second_user
        }

    def insert(self):
        db.session.add(self)
        db.session.commit()

    def update(self):
        db.session.merge(self)
        db.session.commit()

    def delete(self):
        db.session.delete(self)
        db.session.commit()
class GroupDeliverableRelation(db.Model, Base):
    __tablename__ = 'group_deliverable_relation'
    group_id = db.Column(db.Integer,
                         ForeignKey('group_project.group_id',
                                    ondelete='CASCADE',
                                    onupdate="CASCADE"),
                         primary_key=True)
    deliverable_id = db.Column(db.Integer,
                               ForeignKey('deliverable.deliverable_id',
                                          ondelete='CASCADE',
                                          onupdate="CASCADE"),
                               primary_key=True)

    group = relationship("GroupProject", foreign_keys=[group_id])
    deliverable = relationship("Deliverables", foreign_keys=[deliverable_id])

    def serialize(self):
        return {
            "group_id": self.group_id,
            "deliverable_id": self.deliverable_id
        }

    def insert(self):
        db.session.add(self)
        db.session.commit()

    def update(self):
        db.session.merge(self)
        db.session.commit()

    def delete(self):
        db.session.delete(self)
        db.session.commit()
Exemple #3
0
class Exams(db.Model, Base):
    __tablename__ = 'exams'
    exam_id = db.Column(db.Integer, primary_key=True)
    course_id = db.Column(db.String(10), ForeignKey('course.course_code', ondelete='CASCADE', onupdate="CASCADE"),
                         nullable=False)
    exam_duration=db.Column(db.String(50))
    exam_marks = db.Column(db.Integer)

    def serialize(self):
        return {
            "exam_id":self.exam_id,
            "course_id": self.course_id,
            "exam_duration":self.exam_duration,
            'exam_marks':self.exam_marks
        }

    def insert(self):
        db.session.add(self)
        db.session.commit()
        return self.exam_id

    def update(self):
        db.session.merge(self)
        db.session.commit()

    def delete(self):
        db.session.delete(self)
        db.session.commit()
Exemple #4
0
class Post(db.Model, Base):
    __tablename__ = 'post'
    post_id = db.Column(db.Integer, primary_key=True)
    post_writer = db.Column(db.Integer,
                            ForeignKey('user.user_id', onupdate="CASCADE"))
    post_owner = db.Column(
        db.Integer, ForeignKey('post_owner.owner_id', onupdate="CASCADE"))
    post_text = db.Column(db.Text(20000))

    def serialize(self):
        return {
            'post_writer': self.post_writer,
            'post_owner': self.post_owner,
            'post_text': self.post_text,
            'post_id': self.post_id
        }

    def insert(self):
        db.session.add(self)
        db.session.commit()

    def update(self):
        db.session.merge(self)
        db.session.commit()

    def delete(self):
        db.session.delete(self)
        db.session.commit()
class Prerequiste(db.Model,Base):
 __tablename__ = 'Prerequiste'
            
 course_code             =  db.Column(db.String(5),ForeignKey('course.course_code',ondelete='CASCADE',onupdate="CASCADE"),primary_key=True)
 pre_course_id          =  db.Column(db.String(5),ForeignKey('course.course_code',ondelete='CASCADE',onupdate="CASCADE"))

 
Exemple #6
0
class Deliverables_Results(db.Model, Base):
    __tablename__ = 'deliverables_results'
    deliverable_id = db.Column(db.Integer,
                               ForeignKey('deliverable.deliverable_id',
                                          ondelete='CASCADE',
                                          onupdate="CASCADE"),
                               primary_key=True)
    user_id = db.Column(db.Integer,
                        ForeignKey('student.user_id',
                                   ondelete='CASCADE',
                                   onupdate="CASCADE"),
                        primary_key=True)
    mark = db.Column(db.Integer)

    def serialize(self):
        return {
            'deliverable_id': self.deliverable_id,
            'user_id': self.user_id,
            'mark': self.mark
        }

    def insert(self):
        db.session.add(self)
        db.session.commit()

    def update(self):
        db.session.merge(self)
        db.session.commit()

    def delete(self):
        db.session.delete(self)
        db.session.commit()
Exemple #7
0
class Prerequiste(db.Model, Base):
    __tablename__ = 'Prerequiste'

    course_code = db.Column(db.String(10),
                            ForeignKey('course.course_code',
                                       ondelete='CASCADE',
                                       onupdate="CASCADE"),
                            primary_key=True)
    pre_course_id = db.Column(db.String(10),
                              ForeignKey('course.course_code',
                                         ondelete='CASCADE',
                                         onupdate="CASCADE"),
                              primary_key=True)

    def serialize(self):
        return {
            'course_code': self.course_code,
            'pre_course_id': self.pre_course_id
        }

    def insert(self):
        db.session.add(self)
        db.session.commit()

    def update(self):
        db.session.merge(self)
        db.session.commit()

    def delete(self):
        db.session.delete(self)
        db.session.commit()
class Learns_Relation(db.Model, Base):
    __tablename__ = 'learns'
    student_id = db.Column(db.Integer,
                           ForeignKey('student.user_id',
                                      ondelete='CASCADE',
                                      onupdate="CASCADE"),
                           primary_key=True)
    course_code = db.Column(db.String(10),
                            ForeignKey('course.course_code',
                                       ondelete='CASCADE',
                                       onupdate="CASCADE"),
                            primary_key=True)
    mid_term_mark = db.Column(db.Float, default=0)
    final_exam_mark = db.Column(db.Float, default=0)

    def serialize(self):
        return {
            'student_id': self.student_id,
            'course_code': self.course_code,
            'mid_term_mark': self.mid_term_mark,
            'final_exam_mark': self.final_exam_mark
        }

    def insert(self):
        db.session.add(self)
        db.session.commit()

    def update(self):
        db.session.merge(self)
        db.session.commit()

    def delete(self):
        db.session.delete(self)
        db.session.commit()
class Student_Answers(db.Model, Base):
    __tablename__ = 'student_answers'
    student_answer_id = db.Column(db.Integer, primary_key=True)
    student_question_id = db.Column(db.Integer, ForeignKey('student_questions.student_question_id', ondelete='CASCADE',
                                                           onupdate="CASCADE"))
    student_answer = db.Column(db.String(50), nullable=False)
    correct_answer = db.Column(db.Boolean)

    def serialize(self):
        return {
            "student_answer_id": self.student_answer_id,
            "student_question_id": self.student_question_id,
            "student_answer": self.student_answer
        }

    def insert(self):
        db.session.add(self)
        db.session.commit()

    def update(self):
        db.session.merge(self)
        db.session.commit()

    def delete(self):
        db.session.delete(self)
        db.session.commit()
Exemple #10
0
class Student(db.Model, Base):
    __tablename__ = 'student'
    user_id = db.Column(db.Integer,
                        ForeignKey('user.user_id',
                                   ondelete='CASCADE',
                                   onupdate="CASCADE"),
                        nullable=False,
                        primary_key=True)
    student_year = db.Column(db.Integer, nullable=False)

    def serialize(self):
        return {
            'id': self.user_id,
            'student_year': self.student_year,
            #'group_project':self.group_project_id
        }

    def insert(self):
        db.session.add(self)
        db.session.commit()

    def update(self):
        db.session.merge(self)
        db.session.commit()

    def delete(self):
        db.session.delete(self)
        db.session.commit()
Exemple #11
0
class GroupCourseRelation(db.Model, Base):
    __tablename__ = 'group_course_relation'
    group_id = db.Column(db.Integer,
                         ForeignKey('group_project.group_id',
                                    ondelete='CASCADE',
                                    onupdate="CASCADE"),
                         primary_key=True)
    course_id = db.Column(db.String(7),
                          ForeignKey('course.course_code',
                                     ondelete='CASCADE',
                                     onupdate="CASCADE"),
                          primary_key=True)

    group = relationship("GroupProject", foreign_keys=[group_id])
    course = relationship("Course", foreign_keys=[course_id])

    def serialize(self):
        return {"group_id": self.group_id, "course_id": self.course_id}

    def insert(self):
        db.session.add(self)
        db.session.commit()

    def update(self):
        db.session.merge(self)
        db.session.commit()

    def delete(self):
        db.session.delete(self)
        db.session.commit()
class Results(db.Model, Base):
    __tablename__ = 'results'
    student_id = db.Column(db.Integer,
                           ForeignKey('student.user_id',
                                      ondelete='CASCADE',
                                      onupdate="CASCADE"),
                           primary_key=True)
    exam_id = db.Column(db.Integer,
                        ForeignKey('exams.exam_id',
                                   ondelete='CASCADE',
                                   onupdate="CASCADE"),
                        primary_key=True)
    mark = db.Column(db.Float, nullable=False)
    out_of_mark = db.Column(db.Float, nullable=False)

    def serialize(self):
        return {
            "student_id": self.student_id,
            "exam_id": self.exam_id,
            "mark": self.mark,
            "out_of_mark": self.out_of_mark
        }

    def insert(self):
        db.session.add(self)
        db.session.commit()

    def update(self):
        db.session.merge(self)
        db.session.commit()

    def delete(self):
        db.session.delete(self)
        db.session.commit()
Exemple #13
0
class Student_Questions(db.Model, Base):
    __tablename__ = 'student_questions'
    student_id = db.Column(
        db.Integer,
        ForeignKey('student.user_id', ondelete='CASCADE', onupdate="CASCADE"))
    question_id = db.Column(
        db.Integer,
        ForeignKey('questions.question_id',
                   ondelete='CASCADE',
                   onupdate="CASCADE"))
    student_question_id = db.Column(db.Integer, primary_key=True)
    db.UniqueConstraint(student_id, question_id)

    def serialize(self):
        return {
            "question_id": self.question_id,
            "student_id": self.student_id,
            "student_question_id": self.student_question_id
        }

    def insert(self):
        db.session.add(self)
        db.session.commit()

    def update(self):
        db.session.merge(self)
        db.session.commit()

    def delete(self):
        db.session.delete(self)
        db.session.commit()
class Professor(db.Model, Base):
    __tablename__ = 'professor'
    user_id = db.Column(db.Integer,
                        ForeignKey('user.user_id',
                                   ondelete='CASCADE',
                                   onupdate="CASCADE"),
                        nullable=False,
                        primary_key=True)
    scientific_degree = db.Column(db.String(50), nullable=False)

    def serialize(self):
        return {
            'id': self.user_id,
            'degree': self.scientific_degree,
        }

    def insert(self):
        db.session.add(self)
        db.session.commit()

    def update(self):
        db.session.merge(self)
        db.session.commit()

    def delete(self):
        db.session.delete(self)
        db.session.commit()
Exemple #15
0
class Messages(db.Model):
    __tablename__ = 'message'
    message_id = db.Column(db.Integer, primary_key=True)
    sender_id = db.Column(
        db.Integer,
        ForeignKey('user.user_id', ondelete='CASCADE', onupdate="CASCADE"))
    receiver_id = db.Column(
        db.Integer,
        ForeignKey('user.user_id', ondelete='CASCADE', onupdate="CASCADE"))
    text = db.Column(db.Text)
    sent_time = db.Column(db.DateTime)
    sender = relationship("User", foreign_keys=[sender_id])
    receiver = relationship("User", foreign_keys=[receiver_id])

    def serialize(self):
        return {
            'message_id ': self.message_id,
            'sender_id ': self.sender_id,
            'receiver_id': self.receiver_id,
            'text': self.text,
            'sent_time': self.sent_time
        }

    def insert(self):
        db.session.add(self)
        db.session.commit()

    def update(self):
        db.session.merge(self)
        db.session.commit()

    def delete(self):
        db.session.delete(self)
        db.session.commit()
class Course(db.Model, Base):
    __tablename__ = 'course'
    course_code = db.Column(db.String(7), primary_key=True)
    course_name = db.Column(db.String(50), nullable=False)
    weekly_hours = db.Column(db.Integer, nullable=False)
    group_number = db.Column(db.Integer, nullable=False, unique=True)
    max_students = db.Column(db.Integer, nullable=False)

    def serialize(self):
        return {
            'course_code': self.course_code,
            'course_name': self.course_name,
            'weekly_hours': self.weekly_hours,
            'group_number': self.group_number,
            'max_students': self.max_students
        }

    def insert(self):
        db.session.add(self)
        db.session.commit()

    def update(self):
        db.session.merge(self)
        db.session.commit()

    def delete(self):
        db.session.delete(self)
        db.session.commit()
class GroupProject(db.Model, Base):
    __tablename__ = 'group_project'
    group_id = db.Column(db.Integer, primary_key=True)
    group_name = db.Column(db.String(50))
    group_description = db.Column(db.Text(20000))
    post_owner_id = db.Column(
        db.Integer,
        ForeignKey('post_owner.owner_id',
                   onupdate="CASCADE",
                   ondelete='SET NULL'))
    group_pic = db.Column(db.Text(30000))

    def serialize(self):
        return {
            "group_id": self.group_id,
            "group_name": self.group_name,
            "group_description": self.group_description,
            "post_owner_id": self.post_owner_id,
            'group_pic': self.group_pic
        }

    def insert(self):
        db.session.add(self)
        db.session.commit()
        return self.group_id

    def update(self):
        db.session.merge(self)
        db.session.commit()

    def delete(self):
        db.session.delete(self)
        db.session.commit()
Exemple #18
0
class User(db.Model):
    id = db.Column(db.Integer,
                   primary_key=True)  # autoincrement=True by default
    name = db.Column(db.String(100), nullable=False)
    email = db.Column(db.String(200), unique=True, nullable=False)
    avatar = db.Column(db.String(200),
                       nullable=False,
                       default='images/default-avatar.png')
    password = db.Column(db.String(150), nullable=False)
    mnemonic = db.Column(db.String(500), nullable=False)
    identity = db.Column(db.Integer, nullable=False)
    title = db.Column(db.String(100))
    subscription = db.Column(db.DateTime)
    createdAt = db.Column(db.DateTime,
                          nullable=False,
                          default=datetime.now().astimezone)

    media = db.relationship('Media',
                            backref=db.backref('user', lazy='joined'),
                            lazy='select')
    auctions = db.relationship('Auction',
                               backref=db.backref('user', lazy='joined'),
                               lazy='select')
    owns = db.relationship('Ownership',
                           backref=db.backref('user', lazy='joined'),
                           lazy='select')

    def __repr__(self):
        return '<User {self.id} (name={self.name!r}\temail={self.email!r})>'.format(
            self=self)
class StudentGroupRelation(db.Model, Base):
    __tablename__ = 'student_group_relation'
    group_id = db.Column(db.Integer, ForeignKey('group_project.group_id', ondelete='CASCADE', onupdate="CASCADE"),
                         primary_key=True)
    student_id = db.Column(db.Integer,
                               ForeignKey('student.user_id', ondelete='CASCADE', onupdate="CASCADE"),
                               primary_key=True)

    group = relationship("GroupProject", foreign_keys=[group_id])
    student = relationship("Student", foreign_keys=[student_id])

    def serialize(self):
        return {
            "group_id": self.group_id,
            "student_id": self.student_id
        }

    def insert(self):
        db.session.add(self)
        db.session.commit()

    def update(self):
        db.session.merge(self)
        db.session.commit()

    def delete(self):
        db.session.delete(self)
        db.session.commit()
class Post_liker_relation(db.Model, Base):
    __tablename__ = 'post_liker'
    liker_id = db.Column(db.Integer, ForeignKey('user.user_id', onupdate="CASCADE"),
                         primary_key=True)
    post_id = db.Column(db.Integer, ForeignKey('post.post_id', ondelete='CASCADE', onupdate="CASCADE"),
                        primary_key=True)
    created_date = db.Column(db.DateTime, default=datetime.datetime.utcnow)

    def serialize(self):
        return {
            'liker_id': self.liker_id,
            'post_id': self.post_id,
        }

    def insert(self):
        db.session.add(self)
        db.session.commit()

    def update(self):
        db.session.merge(self)
        db.session.commit()

    def delete(self):
        db.session.delete(self)
        db.session.commit()
Exemple #21
0
class Teaches_Relation(db.Model, Base):
    __tablename__ = 'teaches'
    professor_id = db.Column(db.Integer,
                             ForeignKey('professor.user_id',
                                        ondelete='CASCADE',
                                        onupdate="CASCADE"),
                             primary_key=True)
    course_code = db.Column(db.String(7),
                            ForeignKey('course.course_code',
                                       ondelete='CASCADE',
                                       onupdate="CASCADE"),
                            primary_key=True)

    def serialize(self):
        return {
            'professor_id': self.professor_id,
            'course_code': self.course_code
        }

    def insert(self):
        db.session.add(self)
        db.session.commit()

    def update(self):
        db.session.merge(self)
        db.session.commit()

    def delete(self):
        db.session.delete(self)
        db.session.commit()
class Questions(db.Model, Base):
    __tablename__ = 'questions'
    question_id = db.Column(db.Integer, primary_key=True)
    question = db.Column(db.String(500), nullable=False)
    mark = db.Column(db.Integer)
    exam_id = db.Column(db.Integer, ForeignKey('exams.exam_id', ondelete='CASCADE', onupdate="CASCADE"),
                        nullable=False)
    db.UniqueConstraint(question, exam_id)

    def serialize(self):
        return {
            "question_id": self.question_id,
            "question": self.question,
            "mark": self.mark,
            'exam_id':self.exam_id
        }

    def insert(self):
        db.session.add(self)
        db.session.commit()
        return self.question_id

    def update(self):
        db.session.merge(self)
        db.session.commit()

    def delete(self):
        db.session.delete(self)
        db.session.commit()
Exemple #23
0
class Bid(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    bid = db.Column(db.Float, nullable=False)
    uid = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)
    aid = db.Column(db.Integer, db.ForeignKey('auction.id'), nullable=False)

    def __repr__(self):
        return '<Bid {self.id} (amount={self.amount!r}\tuser={self.uid}\tauction {self.aid})>'.format(
            self=self)
class Student(db.Model, Base):
    __tablename__ = 'student'
    user_id = db.Column(db.Integer,
                        ForeignKey('user.user_id',
                                   ondelete='CASCADE',
                                   onupdate="CASCADE"),
                        nullable=False,
                        primary_key=True)
    student_year = db.Column(db.Integer, nullable=False)
Exemple #25
0
class Listener(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    date = db.Column(db.DateTime,
                     nullable=False,
                     default=datetime.now().astimezone)
    uid = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)
    mid = db.Column(db.Integer, db.ForeignKey('media.id'), nullable=False)

    def __repr__(self):
        return '<Listener {self.id} (user={self.uid!r}\tmedia={self.mid!r})>'.format(
            self=self)
class Deliverables(db.Model, Base):
    __tablename__ = 'deliverable'
    deliverable_id = db.Column(db.Integer, primary_key=True)
    deliverable_name = db.Column(db.String(50), nullable=False)
    deadline = db.Column(db.DateTime, nullable=False)
    course_deliverables = db.Column(db.String(5),
                                    ForeignKey('course.course_code',
                                               ondelete='CASCADE',
                                               onupdate="CASCADE"),
                                    nullable=False)
    students_number = db.Column(db.Integer, nullable=False)
class Events(db.Model, Base):
    __tablename__ = 'events'
    event_id = db.Column(db.Integer, primary_key=True)
    event_name = db.Column(db.String(50), nullable=False)
    event_date = db.Column(db.Date, nullable=False)
    course_code = db.Column(db.String(50),
                            ForeignKey('course.course_code',
                                       ondelete='CASCADE',
                                       onupdate="CASCADE"),
                            nullable=False)
    max_students = db.Column(db.Integer, nullable=False)
Exemple #28
0
class Finished(db.Model, Base):
    __tablename__ = 'finish'

    course_code = db.Column(db.String(5),
                            ForeignKey('course.course_code',
                                       ondelete='CASCADE',
                                       onupdate="CASCADE"),
                            primary_key=True)
    student_id = db.Column(db.Integer,
                           ForeignKey('student.user_id',
                                      ondelete='CASCADE',
                                      onupdate="CASCADE"),
                           primary_key=True)
Exemple #29
0
class Professor(db.Model,Base):
 __tablename__ = 'professor'
 user_id            =  db.Column(db.Integer, ForeignKey('user.user_id',ondelete='CASCADE',onupdate="CASCADE"), nullable=False, primary_key=True)
 scientific_degree  =  db.Column(db.String(50),nullable=False)
 

 def serialize(self):
        return {
            'id': self.user_id,
            'name': self.name
        }

 def get(self,user_id):
     user = self.query.filter_by(user_id=user_id).one()
     return user.serialize()
class Events(db.Model, Base):
    __tablename__ = 'events'
    event_id = db.Column(db.Integer, primary_key=True)
    event_name = db.Column(db.String(50), nullable=False)
    event_date = db.Column(db.DateTime, nullable=False)
    course_code = db.Column(db.String(50), ForeignKey('course.course_code', ondelete='CASCADE', onupdate="CASCADE"),
                            nullable=False)
    event_type = db.Column(db.String(50), nullable=False)
    event_duration = db.Column(db.Integer, nullable=False)
    event_description = db.Column(db.Text)

    def serialize(self):
        return {
            "event_id": self.event_id,
            "event_name": self.event_name,
            "event_date": json.dumps(self.event_date,indent=4, sort_keys=True,default=str).replace("\"",""),
            "course_code": self.course_code,
            "event_duration": self.event_duration,
            "event_type": self.event_type,
            "event_description":self.event_description
        }

    def insert(self):
        db.session.add(self)
        db.session.commit()

    def update(self):
        db.session.merge(self)
        db.session.commit()

    def delete(self):
        db.session.delete(self)
        db.session.commit()