コード例 #1
0
 def role_by_id(role_id: int):
     from private.db.models import init_session
     info = []
     with init_session() as ss:
         rs = ss.query(Role) \
                 .filter(Role.id == role_id).first()
     return rs
コード例 #2
0
ファイル: education.py プロジェクト: DWhistle/virus-hack
 def lesson_info_by_id(lesson_id: int):
     from private.db.models import init_session
     info = []
     with init_session() as ss:
         rs = ss.query(Lesson) \
                .filter(Lesson.id == lesson_id).first()
     return rs
コード例 #3
0
ファイル: calendar.py プロジェクト: DWhistle/virus-hack
def get_by_id():
    teacher_id = int(request.args.get('teacher_id') or 0)
    class_id = int(request.args.get('class_id') or 0)
    event_id = int(request.args.get('id') or 0)
    events = []
    with init_session() as ss:
        filters = []
        filters.append(User.id == Event.teacher_id)
        filters.append(Lesson.id == Event.lesson_id)
        if event_id:
            filters.append(Event.id == event_id)
        if class_id:
            filters.append(Event.class_id == class_id)
        if teacher_id:
            filters.append(Event.id == teacher_id)
        rs = ss.query(Event, User, Lesson).filter(*filters).all()
    for event, user, lesson in rs:
        events.append({
            "id": event.id,
            "teacher_name": user.name,
            "lesson": lesson.name,
            "description": event.description,
            "begin_time": event.begin_time,
            "end_time": event.end_time,
            "homework": "Страница 1, з. 2"
        })

    return {"lessons": events}
コード例 #4
0
 def user_info_all():
     from private.db.models import init_session
     info = []
     with init_session() as ss:
         rs = ss.query(User, Profile)\
             .filter(User.id == Profile.user_id)\
                 .all()
     return rs
コード例 #5
0
 def user_info_by_id(user_id: int):
     from private.db.models import init_session
     info = []
     with init_session() as ss:
         rs = ss.query(User, Profile, UniversityRecommendation)\
             .filter(User.id == Profile.user_id)\
                 .filter(User.id == user_id) \
                 .filter(User.id == UniversityRecommendation.user_id).first()
     return rs
コード例 #6
0
ファイル: education.py プロジェクト: DWhistle/virus-hack
 def lessons_for_student(user_id: int, class_id: int, event_id: int):
     from private.db.models import init_session
     filters = []
     filters.append(Event.class_id == class_id)
     filters.append(Lesson.id == Event.lesson_id)
     filters.append(User.id == Event.teacher_id)
     if event_id != 0:
         filters.append(Event.id == event_id)
         with init_session() as ss:
             assignments = ss.query(Assignment, Task) \
                 .filter(Assignment.event_id == event_id) \
                 .filter(Assignment.task_id == Task.id) \
                 .filter(Assignment.assignee_user_id == user_id).all()
     with init_session() as ss:
         rs = ss.query(Event, Lesson, User) \
             .filter(*filters).all()
     print(rs, assignments)
     return rs, assignments
コード例 #7
0
 def class_by_id(class_id: int):
     from private.db.models import init_session
     info = []
     with init_session() as ss:
         rs = ss.query(Class, Role) \
                 .filter(Class.id == class_id) \
                 .filter(Class.roles == Role.id) \
                 .first()
     return rs
コード例 #8
0
ファイル: education.py プロジェクト: DWhistle/virus-hack
 def pins_add(pins: list):
     from private.db.models import init_session
     with init_session() as ss:
         for pin in pins:
             pin = Pin(assignment_id=pin['assignment_id'],
                       coord_x=pin['coord_x'],
                       coord_y=pin['coord_y'],
                       message=pin['message'])
             ss.add(pin)
     return True
コード例 #9
0
 def register_user(name:str, email:str, password:str, age:int, phone:str, gender:int, class_id:int, username: str):
     from private.db.models import init_session
     with init_session() as ss:
         user = User(name=name, username=username, password=password, class_id=class_id)
         ss.add(user)
         ss.flush()
         profile = Profile(user_id=user.id, age=age, gender=gender, phone=phone, email=email)
         ss.add(profile)
     return user.id
         
コード例 #10
0
ファイル: education.py プロジェクト: DWhistle/virus-hack
 def task_add(task_name: str, lesson_id: int, assignment: str,
              assignment_type: str):
     from private.db.models import init_session
     with init_session() as ss:
         task = Task(name=task_name,
                     lesson_id=lesson_id,
                     assignment=assignment,
                     assignment_type=assignment_type)
         ss.add(task)
     return task.id
コード例 #11
0
 def check_rights(class_id: int, role: str):
     from private.db.models import init_session
     with init_session() as ss:
         rs = ss.query(Class, Role) \
             .filter(Class.id == class_id) \
                 .filter(Class.roles == Role.id) \
                     .filter(Role.name == role).first()
         if not rs:
             from private.db.models import DbValueNotFoundError
             raise DbValueNotFoundError("Роли не существует!")
コード例 #12
0
ファイル: education.py プロジェクト: DWhistle/virus-hack
 def assignment_add(teacher_id: int, assignee_class_id: int,
                    assingment_id: int, event_id: int):
     from private.db.models import init_session
     with init_session() as ss:
         assignment = Assignment(teacher_id=teacher_id,
                                 assignee_user_id=assignee_class_id,
                                 task_id=assingment_id,
                                 event_id=event_id,
                                 mark=0)
         ss.add(assignment)
     return assignment.id
コード例 #13
0
ファイル: education.py プロジェクト: DWhistle/virus-hack
    def get_full_assignment_info(assignment_id: int):
        from private.db.models import init_session
        with init_session() as ss:
            assignment, task = ss.query(Assignment, Task) \
            .filter(Assignment.task_id == Task.id) \
            .filter(Assignment.id == assignment_id).first()

            pins = ss.query(Pin) \
            .filter(Pin.assignment_id == assignment_id) \
            .all()
        return assignment, task, pins
コード例 #14
0
ファイル: education.py プロジェクト: DWhistle/virus-hack
 def insert_poll_result(teacher_id, student, question, answers, mark,
                        poll_time):
     from private.db.models import init_session
     with init_session() as ss:
         poll = Poll(teacher_id=teacher_id,
                     student=student,
                     question=question,
                     answers=answers,
                     mark=mark,
                     poll_time=poll_time)
         ss.add(poll)
     return True
コード例 #15
0
ファイル: base_test.py プロジェクト: DWhistle/virus-hack
 def add_multiple_calendars(self):
     with init_session() as ss:
         for i in range(2, 10):
             day = randint(1, 7)
             event = Event(id=i,
                           teacher_id=1,
                           lesson_id=1,
                           class_id=1,
                           description='Урок ' + str(i),
                           begin_time=datetime.now() + timedelta(days=day),
                           end_time=datetime.now() + timedelta(days=day) +
                           timedelta(minutes=40))
             ss.add(event)
コード例 #16
0
ファイル: base_test.py プロジェクト: DWhistle/virus-hack
 def test_db_tables(self):
     def_class = Class(id=1, grade=1, roles=123, specialization='A')
     def_user = User(id=1,
                     name="Ольга Петровна",
                     username='******',
                     password='******',
                     class_id=1)
     def_recommendation = UniversityRecommendation(
         id=1,
         university='НИУ ВШЭ',
         specialization='гуманитарий',
         user_id=1)
     def_profile = Profile(id=1,
                           user_id=1,
                           age=23,
                           gender=1,
                           phone='123213',
                           email='sdsds@sds',
                           birthday=datetime.now())
     def_lesson = Lesson(id=1, name="Математика")
     def_event = Event(id=1,
                       teacher_id=1,
                       lesson_id=1,
                       class_id=1,
                       description='Урок1',
                       begin_time=datetime.now() + timedelta(days=3),
                       end_time=datetime.now() + timedelta(days=3) +
                       timedelta(minutes=40))
     with init_session() as ss:
         ss.add(def_recommendation)
     with init_session() as ss:
         ss.add(def_class)
     with init_session() as ss:
         ss.add(def_user)
     with init_session() as ss:
         ss.add(def_profile)
         ss.add(def_lesson)
     with init_session() as ss:
         ss.add(def_event)
コード例 #17
0
ファイル: base_test.py プロジェクト: DWhistle/virus-hack
 def add_classes_and_roles(self):
     teacher_role = Role(name="Учитель", mask=2)
     director_role = Role(name="Директор", mask=3)
     student_role = Role(name="Ученик", mask=4)
     with init_session() as ss:
         ss.add(teacher_role)
         ss.add(director_role)
         ss.add(student_role)
         ss.flush()
         teacher_class = Class(grade=100,
                               roles=teacher_role.id,
                               specialization='Учитель математики')
         student_class = Class(grade=6,
                               roles=student_role.id,
                               specialization='6-Б класс')
         director_class = Class(grade=242423123,
                                roles=teacher_role.id,
                                specialization='Директор школы')
         ss.add(teacher_class)
         ss.add(student_class)
         ss.add(director_class)
コード例 #18
0
 def check_user_identity(username: str, password: str):
     from private.db.models import init_session
     with init_session() as ss:
         user = ss.query(User) \
             .filter(User.username == username, User.password == password).first()
     return user
コード例 #19
0
 def get_all_classes():
     from private.db.models import init_session
     with init_session() as ss:
         rs = ss.query(Class, Role) \
                 .filter(Class.roles == Role.id).all()
     return rs
コード例 #20
0
ファイル: education.py プロジェクト: DWhistle/virus-hack
 def lesson_add(name: str):
     from private.db.models import init_session
     info = []
     with init_session() as ss:
         ss.add_all([Lesson(name=name)])
         ss.commit()