from sqlalchemy import Column, Integer, ForeignKey, Table from sqlalchemy.orm import relationship from sqlalchemy.sql.expression import null from core.db import Base # XXX: previously needed for storing courses of user, now migrated to storing course in groups # user_course_association_table = Table( # "user_course_association", # Base.metadata, # Column("course_id", Integer, ForeignKey("course.id")), # Column("user_id", Integer, ForeignKey("user.id")), # ) user_class_session_association_table = Table( "user_class_session_association", Base.metadata, Column( "class_session_id", Integer, ForeignKey("class_session.id", ondelete="CASCADE") ), Column("user_id", Integer, ForeignKey("user.id", ondelete="CASCADE")), ) attendant_class_session_association_table = Table( "attendant_class_session_association", Base.metadata, Column( "class_session_id", Integer, ForeignKey("class_session.id", ondelete="CASCADE") ), Column("user_id", Integer, ForeignKey("user.id", ondelete="CASCADE")), ) user_permission_association_table = Table( "user_permission_association", Base.metadata, Column( "permission_id", Integer, ForeignKey("userpermission.id", ondelete="CASCADE") ), Column("user_id", Integer, ForeignKey("user.id", ondelete="CASCADE")), ) group_course_association_table = Table( "group_course_association", Base.metadata, Column("course_id", Integer, ForeignKey("course.id", ondelete="CASCADE")), Column("group_id", Integer, ForeignKey("group.id", ondelete="CASCADE")), ) # teacher_group_association_table = Table( # "teacher_group_association", # Base.metadata, # Column("teacher_id", Integer, ForeignKey("user.id", ondelete="CASCADE")), # Column("group_id", Integer, ForeignKey("group.id", ondelete="CASCADE")), # ) class TeacherGroupCourseAssociation(Base): teacher_id = Column( Integer, ForeignKey("user.id", ondelete="CASCADE"), primary_key=True ) group_id = Column( Integer, ForeignKey("group.id", ondelete="CASCADE"), primary_key=True ) course_id = Column( Integer, ForeignKey("course.id", ondelete="CASCADE"), nullable=False ) group = relationship("Group") teacher = relationship("User") course = relationship("Course") __tablename__ = "teacher_group_course_association" group_quiz_association_table = Table( "group_quiz_association", Base.metadata, Column("group_id", Integer, ForeignKey("group.id", ondelete="CASCADE")), Column("quiz_id", Integer, ForeignKey("quiz.id", ondelete="CASCADE")), ) instructor_quiz_association_table = Table( "instructor_quiz_association", Base.metadata, Column("instructor_id", Integer, ForeignKey("user.id", ondelete="CASCADE")), Column("quiz_id", Integer, ForeignKey("quiz.id", ondelete="CASCADE")), ) assignment_group_association_table = Table( "assignment_group_association", Base.metadata, Column("group_id", Integer, ForeignKey("group.id", ondelete="CASCADE")), Column("assignment_id", Integer, ForeignKey("assignment.id", ondelete="CASCADE")), ) assignment_instructor_association_table = Table( "assignment_instructor_association", Base.metadata, Column("instructor_id", Integer, ForeignKey("user.id", ondelete="CASCADE")), Column("assignment_id", Integer, ForeignKey("assignment.id", ondelete="CASCADE")) )