Пример #1
0
class Attachment(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String())
    ext = db.Column(db.String(10))
    link = db.Column(db.String())
    coursenote_id = db.Column(db.Integer, db.ForeignKey('coursenotes.id'))
    assignment_id = db.Column(db.Integer, db.ForeignKey('assignments.id'))
    submission_id = db.Column(db.Integer, db.ForeignKey('submission.id'))
    discussionpost_id = db.Column(db.Integer,
                                  db.ForeignKey('discussionposts.id'))
    request_id = db.Column(db.Integer, db.ForeignKey('request.id'))

    def __init__(self,
                 name,
                 ext,
                 link,
                 coursenote_id=None,
                 assignment_id=None,
                 submission_id=None,
                 request_id=None,
                 discussionpost_id=None):
        self.name = name
        self.ext = ext
        self.link = link
        self.coursenote_id = coursenote_id
        self.assignment_id = assignment_id
        self.submission_id = submission_id
        self.request_id = request_id
        self.discussionpost_id = discussionpost_id
Пример #2
0
class MedicalRecord(db.Model):
    __tablename__ = 'medical_records'
    id = db.Column(db.Integer, primary_key=True)
    patient_id = db.Column(db.Integer,
                           db.ForeignKey('patients.id'),
                           nullable=False)
    doctor_id = db.Column(db.Integer,
                          db.ForeignKey('users.id'),
                          nullable=False)
    findings_id = db.Column(db.Integer,
                            db.ForeignKey('findings.id'),
                            nullable=False)
    lab_exam_id = db.Column(db.Integer,
                            db.ForeignKey('lab_exams.id'),
                            nullable=False)
    date = db.Column(db.DateTime, nullable=False, default=datetime.now)
    height = db.Column(db.String(7), nullable=False)
    weight = db.Column(db.String(7), nullable=False)
    temperature = db.Column(db.String(7), nullable=False)
    paid = db.Column(db.Boolean, nullable=False, default=False)

    # patient = db.relationship('MedicalRecord',
    #   back_populates='medical_records')
    findings = db.relationship('Findings',
                               backref='medical_records',
                               cascade='all, delete')
    symptoms = db.relationship('Symptom',
                               backref='medical_records',
                               cascade='all, delete')
    lab_exam = db.relationship('LabExam',
                               backref='medical_records',
                               cascade='all, delete')
    doctor = db.relationship('User', backref='medical_records')
Пример #3
0
class DiscussionPost(db.Model):
    __tablename__ = 'discussionposts'
    id = db.Column(db.Integer, primary_key=True)
    discussion_id = db.Column(db.Integer,
                              db.ForeignKey('discussionthreads.id'))
    user_id = db.Column(db.Integer, db.ForeignKey('users.id'))
    title = db.Column(db.String())
    details = db.Column(db.String())
    timeofpost = db.Column(db.DateTime, nullable=False, default=datetime.now)
    attachments = db.relationship('Attachment', backref='post')
Пример #4
0
class Result(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    section = db.Column(db.String(5), nullable=False)
    marks = db.Column(db.Integer, nullable=False)
    grade = db.Column(db.String(10), nullable=False)

    entered_by = db.Column(db.Integer, db.ForeignKey('teacher.id'))
    obtained_by = db.Column(db.Integer, db.ForeignKey('student.id'))
    course = db.Column(db.Integer, db.ForeignKey('course.id'))

    def __repr__(self):
        return f'Result :  {self.id} , {self.marks}'
Пример #5
0
class Submission(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(100))
    details = db.Column(db.String(100))
    time = db.Column(db.DateTime, nullable=False, default=datetime.now)
    attachments = db.relationship('Attachment', backref='submissions')
    assignment_id = db.Column(db.Integer, db.ForeignKey('assignments.id'))
    user_id = db.Column(db.Integer, db.ForeignKey('users.id'))
    def __init__(self, title, details, assignment_id,user_id):
        self.title = title
        self.details = details
        self.assignment_id = assignment_id
        self.user_id=user_id
Пример #6
0
class QuizResponse(db.Model):
    __tablename__ = 'quizresponses'
    id = db.Column(db.Integer, primary_key=True)
    user_id = db.Column(db.Integer, db.ForeignKey('users.id'))
    quiz_id = db.Column(db.Integer, db.ForeignKey('quizzes.id'))
    quizQuestionResponses = db.relationship('quizQuestionResponse',
                                            backref='quiz_response')

    @property
    def marks(self):
        ans = 0
        for qqr in self.quizQuestionResponses:
            ans += qqr.marks
        return ans
Пример #7
0
class Symptom(db.Model):
    __tablename__ = 'symptoms'
    id = db.Column(db.Integer, primary_key=True)
    medical_record_id = db.Column(db.Integer,
                                  db.ForeignKey('medical_records.id'),
                                  nullable=False)
    symptom = db.Column(db.String(100), nullable=False)
Пример #8
0
class Request(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    user_id = db.Column(db.Integer, db.ForeignKey('users.id'))
    course_id = db.Column(db.Integer, db.ForeignKey('courses.id'))
    title = db.Column(db.String(100))
    details = db.Column(db.String(100))
    time = db.Column(db.DateTime, nullable=False, default=datetime.now)
    attachments = db.relationship('Attachment', backref='request')
    status = db.Column(db.Integer,default=0)#0 for pending 1 for accepted 2 for declined
    def __init__(self, user_id, course_id,title,details):
        self.user_id = user_id
        self.course_id = course_id
        self.title = title
        self.details = details

    pass
Пример #9
0
class Option(db.Model):
    __tablename__ = 'options'
    id = db.Column(db.Integer, primary_key=True)
    question_id = db.Column(db.Integer, db.ForeignKey('questions.id'))
    option = db.Column(db.String, nullable=False)
    is_right = db.Column(db.Boolean,
                         default=False)  #for partial marking support
Пример #10
0
class Course(db.Model):
    __tablename__ = 'courses'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String())
    details = db.Column(db.String())
    prof_id = db.Column(db.Integer,
                        db.ForeignKey('professors.id'),
                        nullable=False)
    course_code = db.Column(db.String(), unique=True)
    branches = db.relationship('Branch',
                               secondary=branch_helper,
                               backref=db.backref('courses'))
    can_apply = db.Column(db.Boolean)
    courseNotes = db.relationship('courseNote',
                                  backref='Course',
                                  order_by="desc(courseNote.time)")
    assignments = db.relationship('Assignment',
                                  backref='Course',
                                  order_by="desc(Assignment.time)")
    requests = db.relationship('Request', backref='course')
    quizzes = db.relationship('Quiz', backref='course')

    def __init__(
        self,
        name,
        course_code,
        details,
        prof_id,
        can_apply,
    ):
        self.name = name
        self.course_code = course_code
        self.details = details
        self.prof_id = prof_id
        self.can_apply = can_apply
Пример #11
0
class DiscussionThread(db.Model):
    __tablename__ = 'discussionthreads'
    id = db.Column(db.Integer, primary_key=True)
    course_id = db.Column(db.Integer, db.ForeignKey('courses.id'))
    title = db.Column(db.String())
    details = db.Column(db.String())
    posts = db.relationship('DiscussionPost', backref='quiz_response')
Пример #12
0
class LabExam(db.Model):
    __tablename__ = 'lab_exams'
    id = db.Column(db.Integer, primary_key=True)
    cbc_exam_id = db.Column(db.Integer,
                            db.ForeignKey('cbc_exams.id'),
                            nullable=False)
    stool_exam = db.Column(db.String(10))
    cbc_exam = db.relationship('CBCExam',
                               backref='lab_exams',
                               cascade='delete')
Пример #13
0
class User(db.Model, UserMixin):
    __tablename__ = 'users'
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(50), unique=True, nullable=False)
    name = db.Column(db.String(50), nullable=False)
    position = db.Column(db.String(50), nullable=False)
    password = db.Column(db.String(255), nullable=False)
    patient_id = db.Column(db.Integer,
                           db.ForeignKey('patients.id'),
                           nullable=False,
                           default=0)
Пример #14
0
class Appointment(db.Model):
    __tablename__ = 'appointents'
    id = db.Column(db.Integer, primary_key=True)
    patient_id = db.Column(db.Integer,
                           db.ForeignKey('patients.id'),
                           nullable=False)
    doctor_id = db.Column(db.Integer,
                          db.ForeignKey('users.id'),
                          nullable=False)
    date = db.Column(db.DateTime, nullable=False)
    created_on = db.Column(db.DateTime, nullable=False, default=datetime.now)
    status = db.Column(db.String(10), default='pending')
    doctor = db.relationship('User',
                             backref='appointments',
                             lazy=True,
                             cascade='delete')
    patient = db.relationship('Patient',
                              backref='appointments',
                              lazy=True,
                              cascade='delete')
Пример #15
0
class Question(db.Model):
    __tablename__ = 'questions'
    id = db.Column(db.Integer, primary_key=True)
    quiz_id = db.Column(db.Integer, db.ForeignKey('quizzes.id'))
    question = db.Column(db.String(), nullable=False)
    options = db.relationship('Option', backref='question')
    ans = db.Column(db.String(), nullable=False)
    marks = db.Column(db.Integer, nullable=False, default=1)
    is_multicorrect = db.Column(db.Boolean, default=False)
    responses = db.relationship('quizQuestionResponse', backref='question')
    is_partial = db.Column(db.Boolean, default=False)
Пример #16
0
class courseNote(db.Model):
    __tablename__='coursenotes'
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(100))
    details = db.Column(db.String(100))
    time=db.Column(db.DateTime,nullable=False,default=datetime.now)
    attachments=db.relationship('Attachment',backref='coursenote')
    course_id = db.Column(db.Integer, db.ForeignKey('courses.id'))
    def __init__(self,title,details,course_id):
        self.title=title
        self.details=details
        self.course_id=course_id
Пример #17
0
class Course(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(50), nullable=False)
    crd_hrs = db.Column(db.Integer)
    no_of_student_taken = db.Column(db.Integer, default=0)
    status = db.Column(db.String(10))

    assign_to = db.Column(db.Integer, db.ForeignKey('teacher.id'))
    enrollments = db.relationship('Student',
                                  secondary=Enrollments,
                                  backref=db.backref('courses'))

    def __repr__(self):
        return f'Course :  {self.id} , {self.name}'
Пример #18
0
class Professor(db.Model, UserMixin):
    __tablename__ = 'professors'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String())
    email = db.Column(db.String(64), unique=True, index=True)
    branch_id = db.Column(db.Integer, db.ForeignKey('branches.id'))
    courses = db.relationship('Course', backref='professor', lazy=True)
    password_hash = db.Column(db.String(128))

    def __init__(self, name, email, password, branch_id):
        self.email = email
        self.name = name
        self.password_hash = generate_password_hash(password)
        self.branch_id = branch_id
Пример #19
0
class quizQuestionResponse(db.Model):
    __tablename__ = 'quizquestionresponses'
    id = db.Column(db.Integer, primary_key=True)
    user_id = db.Column(db.Integer, db.ForeignKey('users.id'))
    question_id = db.Column(db.Integer, db.ForeignKey('questions.id'))
    quiz_id = db.Column(db.Integer, db.ForeignKey('quizzes.id'))
    response = db.Column(db.String(), nullable=False)
    quiz_response_id = db.Column(db.Integer, db.ForeignKey('quizresponses.id'))

    @property
    def isCorrect(self):
        print(self.response, self.question.ans)
        return sorted(self.response.split(',')) == sorted(
            self.question.ans.split(','))

    @property
    def marks(self):
        if self.isCorrect:
            return self.question.marks
        else:
            if self.question.is_partial:
                ans = 0
                for resp_id_string in self.response.split(','):
                    print(resp_id_string, self.question.ans.split(','),
                          self.response)
                    if resp_id_string in self.question.ans.split(','):
                        ans += 1
                    else:
                        return 0
                return ans * self.question.marks / len(
                    self.question.ans.split(','))
            else:
                return 0

    @property
    def attemptlist(self):
        return self.response.split(',')
Пример #20
0
class Quiz(db.Model):
    __tablename__ = 'quizzes'
    id = db.Column(db.Integer, primary_key=True)
    course_id = db.Column(db.Integer, db.ForeignKey('courses.id'))
    name = db.Column(db.String(), nullable=False)
    start_time = db.Column(db.DateTime, nullable=False, default=datetime.now)
    end_time = db.Column(db.DateTime, nullable=False, default=datetime.now)
    questions = db.relationship('Question', backref='quiz')
    responses = db.relationship('QuizResponse', backref='quiz')

    @property
    def marks(self):
        ans = 0
        for q in self.questions:
            ans += q.marks
        return ans
Пример #21
0
class Assignment(db.Model):
    __tablename__ = 'assignments'
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String())
    details = db.Column(db.String())
    time = db.Column(db.DateTime, nullable=False, default=datetime.now)
    attachments = db.relationship('Attachment', backref='assignment')
    submissions = db.relationship('Submission', backref='assignment')
    deadline = db.Column(db.DateTime)
    course_id = db.Column(db.Integer, db.ForeignKey('courses.id'))

    def __init__(self, title, details, deadline, course_id):
        self.title = title
        self.details = details
        self.deadline = deadline
        self.course_id = course_id
Пример #22
0
class User(db.Model, UserMixin):
    __tablename__ = 'users'
    name = db.Column(db.String(100), nullable=False)
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(100))
    email = db.Column(db.String(64), unique=True, index=True)
    password_hash = db.Column(db.String(128))
    year = db.Column(db.Integer())
    branch_id = db.Column(db.Integer,
                          db.ForeignKey('branches.id'),
                          nullable=False)
    courses = db.relationship('Course',
                              secondary=course_helper,
                              backref=db.backref('students'))
    submissions = db.relationship('Submission', backref='user')
    requests = db.relationship('Request', backref='user')
    quiz_responses = db.relationship('QuizResponse', backref='user')

    def __init__(self, name, email, password, year, branch_id):
        self.name = name
        self.email = email
        self.password_hash = generate_password_hash(password)
        self.year = year
        self.branch_id = branch_id

    def to_dict(self):
        return {
            'id': self.id,
            'Name': self.name,
            'E-Mail': self.email,
            'Year': self.year,
            'Branch': self.branch.name
        }

    def check_password(self, password):
        return check_password_hash(self.password_hash, password)

    @property
    def requested_courses(self):
        req_courses = []
        for request in self.requests:
            req_courses.append(request.course)
        return req_courses
Пример #23
0
from enum import unique
# from cms.core.views import index
from cms import db,login_manager
from werkzeug.security import generate_password_hash,check_password_hash
from flask_login import UserMixin
from datetime import datetime

@login_manager.user_loader
def load_user(user_id):
    return Professor.query.get(user_id)


course_helper=db.Table('course_helper',
                        db.Column('user_id',db.Integer,db.ForeignKey('users.id')),
                        db.Column('course_id',db.Integer,db.ForeignKey('courses.id'))
                        )
branch_helper=db.Table('branch_helper',
                        db.Column('course_id',db.Integer,db.ForeignKey('courses.id')),
                        db.Column('branch_id',db.Integer,db.ForeignKey('branches.id'))
                        )
class Branch(db.Model):
    __tablename__='branches'
    id= db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(100), nullable=False)
    students= db.relationship('User', backref='branch', lazy=True)
    professors= db.relationship('Professor', backref='branch', lazy=True)
    def __init__(self,name):
        self.name = name
    def __repr__(self)-> str:
        return self.name
class User(db.Model,UserMixin):
Пример #24
0
from cms import db

Enrollments = db.Table('enrollment',
                       db.Column("course_id", db.Integer, db.ForeignKey("course.id"), primary_key=True),
                       db.Column("student_id", db.Integer, db.ForeignKey("student.id"), primary_key=True)
                       )