コード例 #1
0
def get_personality_analysis(test_id, date):
    if not Corporate.can_access_test(CookieHelper.get_corporate_id(),
                                     test_id):
        return Error("No access", 403)()

    return (Corporate.get_personality_analysis(CookieHelper.get_corporate_id(),
                                               test_id, date))
コード例 #2
0
def get_tab_change(test_id, date):
    if not Corporate.can_access_test(CookieHelper.get_corporate_id(),
                                     test_id):
        return Error("No access", 403)()

    return (Corporate.get_tab_change(CookieHelper.get_corporate_id(),
                                               test_id, date))
コード例 #3
0
def get_overview(test_id, date):
    if not Corporate.can_access_test(CookieHelper.get_corporate_id(),
                                     test_id):
        return Error("No access", 403)()

    return (Corporate.get_test_performance(CookieHelper.get_corporate_id(),
                                           test_id, date))
コード例 #4
0
def get_test_attempt_report(test_id, user_id):
    if (not Corporate.can_access_test(CookieHelper.get_corporate_id(), test_id)
            or not Corporate.can_access_user(CookieHelper.get_corporate_id(),
                                             user_id)
    ):
        return Error("No access", 403)()

    report = (TestAttemptReport
              .query
              .join(TestAttempt,
                    and_(TestAttemptReport.test_attempt_id == TestAttempt.id,
                         TestAttempt.test_id == test_id,
                         TestAttempt.user_id == user_id))
              .one()
              )
    test_attempt = (TestAttempt.query
                    .filter(TestAttempt.test_id == test_id)
                    .filter(TestAttempt.user_id == user_id)
                    .one())

    report = report.todict()
    report['tab_change_count'] = test_attempt.focus_lost_count

    del report['test_attempt_id']
    del report['domain_based_ability']
    del report['paragraph_writing_ability']

    return report
コード例 #5
0
def update_question_attempt_score(test_attempt_id, section_attmpt_id,
                                  question_id):
    req = request.json

    test_attempt = (
        TestAttempt.query
            .filter(TestAttempt.id == test_attempt_id)
            .join(CorporateApplicants,
                  and_(CorporateApplicants.user_id == TestAttempt.user_id,
                       CorporateApplicants.corporate_id == CookieHelper.get_corporate_id()
                       )
                  )
            .join(SectionAttempt,
                  and_(SectionAttempt.test_attempt_id == TestAttempt.id,
                       SectionAttempt.id == section_attmpt_id))
            .join(QuestionAttempt,
                  and_(QuestionAttempt.section_attempt_id == SectionAttempt.id,
                       QuestionAttempt.question_id == question_id))
            .options(contains_eager(TestAttempt.section_attempts)
                     .contains_eager(SectionAttempt.question_attempts))
            .one()
    )

    score_diff = (
            req['score'] - test_attempt.section_attempts[0].question_attempts[
        0].score)

    test_attempt.section_attempts[0].score += score_diff
    test_attempt.section_attempts[0].question_attempts[0].score += score_diff
    test_attempt.score += score_diff

    db.session.commit()
コード例 #6
0
def get_test_dates(test_id):
    from sqlalchemy import func
    if not Corporate.can_access_test(CookieHelper.get_corporate_id(),
                                     test_id):
        return Error("No access", 403)()

    test_attempts = (
        TestAttempt.query
            .options(load_only(TestAttempt.date))
            .filter(TestAttempt.test_id == test_id)
            .filter(TestAttempt.is_complete == True)
            .filter(

                TestAttempt.user_id.in_(
                        db.session.query(
                                CorporateApplicants.user_id)
                            .filter(
                                CorporateApplicants.corporate_id == CookieHelper.get_corporate_id())
                )

        )

            .group_by(
                func.YEAR(func.CONVERT_TZ(TestAttempt.date,
                                          "+00:00",
                                          "-05:30")),
                func.MONTH(func.CONVERT_TZ(TestAttempt.date,
                                           "+00:00",
                                           "-05:30")),

                func.DAY(func.CONVERT_TZ(TestAttempt.date,
                                         "+00:00",
                                         "-05:30"))

        )

            .all())

    # print(test_attempts

    return test_attempts
コード例 #7
0
def get_test_attempt_psych_report(test_id, user_id):
    if (not Corporate.can_access_test(CookieHelper.get_corporate_id(), test_id)
            or not Corporate.can_access_user(CookieHelper.get_corporate_id(),
                                             user_id)
    ):
        return Error("No access", 403)()

    try:

        report = (SixteenPReport
                  .query
                  .join(TestAttempt,
                        and_(SixteenPReport.test_attempt_id == TestAttempt.id,
                             TestAttempt.test_id == test_id,
                             TestAttempt.user_id == user_id))
                  .one()
                  )

    except NoResultFound:
        return Error("Not Found", 404)()

    report = report.todict()

    return report
コード例 #8
0
def bulk_update_user_status():
    req = request.json
    user_ids = req['user_ids']
    new_status = req['status']

    applications = (CorporateApplicants.query
                    .filter(CorporateApplicants.user_id.in_(user_ids))
                    .filter(CorporateApplicants.corporate_id
                            == CookieHelper.get_corporate_id()
                            )
                    .all())

    for application in applications:
        application.type = ApplicationStatusTypes[new_status]

    db.session.commit()

    return applications
コード例 #9
0
def update_question_attempt(test_attempt_id, section_attmpt_id,
                            question_id):
    test_attempt = (
        TestAttempt.query
            .filter(TestAttempt.id == test_attempt_id)
            .join(TestAttempt,
                  and_(CorporateApplicants.user_id == TestAttempt.user_id,
                       CorporateApplicants.corporate_id == CookieHelper.get_corporate_id()
                       )
                  )
            .join(SectionAttempt,
                  and_(SectionAttempt.test_attempt_id == TestAttempt.id,
                       SectionAttempt.id == section_attmpt_id))
            .join(QuestionAttempt,
                  and_(QuestionAttempt.section_attempt_id == SectionAttempt.id,
                       QuestionAttempt.question_id == question_id))
            .options(contains_eager(TestAttempt.section_attempts)
                     .contains_eager(SectionAttempt.question_attempts))
            .one()
    )