Exemplo n.º 1
0
    def post(self, data: dict, auth: Auth, **kwargs):
        print('new_professor')
        session = Session()
        duplicate_login = session.query(Auth).filter(
            Auth.login == data['login']).all()

        if len(duplicate_login) == 1:
            raise Exception('login')

        professor = Professor.new(session,
                                  first_name=data['first_name'],
                                  last_name=data['last_name'],
                                  middle_name=data['middle_name'])

        contact = ContactInfo.new(session, email=data['email'])

        professor.contact = contact

        session.commit()

        auth = Auth.new(session,
                        login=data['login'],
                        password=data['password'],
                        user_type=UserType.PROFESSOR,
                        user_id=professor.id)

        session.commit()

        return {'ok': 'ok'}
Exemplo n.º 2
0
    def new_professor():
        print('new_professor')
        response = Response('new_professor')
        data = JsonParser.read(request.data.decode('utf8').replace("'", '"'))
        session = Session()
        duplicate_login = session.query(Auth).filter(
            Auth.login == data['data']['login']).all()

        if len(duplicate_login) == 1:
            response.set_error('login')
            return response()

        professor = Professor.new(session,
                                  first_name=data['data']['first_name'],
                                  last_name=data['data']['last_name'],
                                  middle_name=data['data']['middle_name'])

        contact = ContactInfo.new(session, email=data['data']['email'])

        professor.contact = contact

        session.commit()

        auth = Auth.new(session,
                        login=data['data']['login'],
                        password=data['data']['password'],
                        user_type=UserType.PROFESSOR,
                        user_id=professor.id)

        session.commit()

        response.set_data({'ok': 'ok'}, NewProfessorResponse)
        return response()
Exemplo n.º 3
0
    def on_response(self, received_data: Dict, progress_bar):
        def create_row(item_data: Dict, class_: Type[_DBObject]):
            if not class_.get(session, **item_data):
                class_.new(session, **item_data)
                session.flush()
            progress_bar.increment()

        session = Session()
        received_data = ServerFirstLoadData(**received_data)

        TOTAL_LENGTH = progress_bar.last()
        progress_bar.set_part(TOTAL_LENGTH, len(received_data.data), "Загрузка данных")

        received_data.data.foreach(create_row)

        Auth.new(session, **received_data.auth)
        professor = Professor.new(session, **Map.item_type(received_data.professor[0], Professor))
        professor._last_update_in = datetime.now()
        professor._last_update_out = datetime.now()

        session.commit()
Exemplo n.º 4
0
        def apply(data):
            def create_row(item_data: Dict, class_: Type[_DBObject]):
                if not class_.get(session, **item_data):
                    class_.new(session, **item_data)
                    session.flush()

            received_data = ServerFirstLoadData(**data)

            session = Session()
            auth = Auth.new(session, **received_data.auth)

            received_data.data.foreach(create_row)

            professor = Professor.new(
                session, **Map.item_type(received_data.professor[0],
                                         Professor))
            professor._last_update_in = datetime.now()
            professor._last_update_out = datetime.now()

            session.commit()

            if on_finish:
                on_finish()