示例#1
0
def process_scenarioResponse():
    sR = scenarioResponseForm()
    if sR.validate_on_submit():
        sid = sR.scenario.data
        qnum = int(sR.question.data)
        resp = sR.response.data
        uid = current_user.id
        # answer checking function in utils
        score = responseCheck(qnum, sid, resp, uid)
        # get attempt number
        att = getAttempt(sid)
        Responses.create(user_id=uid,
                         scenario_id=sid,
                         question=qnum,
                         student_response=resp,
                         points=score,
                         attempt=att)
        if score > 0:
            flash("A CORRECT answer was given for question {0}.".format(qnum))
            return 'utils/student_answer_response.html', score
        else:
            flash(
                "An INCORRECT answer was given for question {0}.".format(qnum))
            return 'utils/student_answer_response.html', score
    else:
        flash_errors(sR)
        return False
示例#2
0
def student_scenario(i):
    # i = scenario_id
    # db_ses = db.session
    if checkEnr(i):
        if checkEx(i):
            status, owner, desc, s_type, s_name, u_name, pw, guide, questions = tempMaker(
                i, "stu")
            # db_ses = db.session
            # query = db_ses.query(User.id)\
            #    .filter(Responses.scenario_id == i).filter(Responses.user_id == User.id).all()
            uid = session.get("_user_id")
            # att = db_ses.query(Scenarios.attempt).filter(Scenarios.id == i).first()
            addresses = identify_state(s_name, status)
            example = None
            # query = db_ses.query(Responses.user_id, Responses.attempt, Responses.question, Responses.points,
            #                     Responses.student_response).filter(Responses.scenario_id == i)\
            #    .filter(Responses.user_id == uid).filter(Responses.attempt == att).all()
            if request.method == "GET":
                scenarioResponder = scenarioResponseForm()
                aList = displayCorrect(s_name, u_name)
                progress = displayProgress(i, uid)
                return render_template("dashboard/student_scenario.html",
                                       id=i,
                                       status=status,
                                       owner=owner,
                                       desc=desc,
                                       s_type=s_type,
                                       s_name=s_name,
                                       u_name=u_name,
                                       pw=pw,
                                       add=addresses,
                                       guide=guide,
                                       questions=questions,
                                       srF=scenarioResponder,
                                       aList=aList,
                                       example=example,
                                       progress=progress)

            elif request.method == "POST":
                ajax = process_request(
                    request.form
                )  # scenarioResponseForm(request.form) # this validates it
                progress = displayProgress(i, uid)
                if ajax:
                    return render_template(
                        "utils/student_answer_response.html",
                        score=ajax[1],
                        progress=progress)

                else:
                    return redirect(url_for("dashboard.student_scenario", i=i))
        else:
            return abort(404)
    else:
        return abort(403)
示例#3
0
def student_scenario(i):
    # db_ses = db.session
    if checkEnr(i):
        if checkEx(i):
            status, owner, desc, s_type, s_name, u_name, pw, guide, questions = tempMaker(
                i, "stu")
            # db_ses = db.session
            # query = db_ses.query(User.id)\
            #    .filter(Responses.scenario_id == i).filter(Responses.user_id == User.id).all()
            # own_id = session.get("_user_id")
            addresses = identify_state(s_name, status)
            aList = displayCorrect(s_name, u_name)
            example = None
            if request.method == "GET":
                scenarioResponder = scenarioResponseForm()
                return render_template("dashboard/student_scenario.html",
                                       id=i,
                                       status=status,
                                       owner=owner,
                                       desc=desc,
                                       s_type=s_type,
                                       s_name=s_name,
                                       u_name=u_name,
                                       pw=pw,
                                       add=addresses,
                                       guide=guide,
                                       questions=questions,
                                       srF=scenarioResponder,
                                       aList=aList,
                                       example=example)

            elif request.method == "POST":
                ajax = process_request(
                    request.form
                )  # scenarioResponseForm(request.form) # this validates it
                return redirect(
                    url_for("dashboard.student_scenario", i=i)
                )  # TODO: work from here to make ajax stop refreshing the page
                # if ajax:  # if forms.py scenarioResponseForm returns true
                #    current_app.logger.info("########Ajax Response is: {} ".format(request.data))
                #    # #query db to convert username to user_id
                #    # form_utils.py/process_scenarioResponse();
                #    # utils.py/responseCheck boolean value then somehow pass back to template.
                # else:
                #    return redirect(url_for("dashboard.student_scenario", i=i))

        else:
            return abort(404)
    else:
        return abort(403)
示例#4
0
def process_scenarioResponse():
    sR = scenarioResponseForm()
    if sR.validate_on_submit():
        sid = sR.scenario.data
        qnum = sR.question.data
        resp = sR.response.data
        uid = current_user.id
        # answer checking function in utils
        gotIt = responseCheck(qnum, sid, resp)
        # get attempt number from somewhere
        att = getAttempt(uid, sid, qnum)
        Responses.create(user_id=uid,
                         scenario_id=sid,
                         question=qnum,
                         student_response=resp,
                         correct=gotIt,
                         attempt=att)
示例#5
0
def process_scenarioResponse():
    sR = scenarioResponseForm()
    if sR.validate_on_submit():
        sid = sR.scenario.data
        qnum = int(sR.question.data)
        resp = sR.response.data
        uid = current_user.id
        # answer checking function in utils
        gotIt = responseCheck(qnum, sid, resp, uid)
        # get attempt number from somewhere
        att = getAttempt(sid)
        Responses.create(user_id=uid,
                         scenario_id=sid,
                         question=qnum,
                         student_response=resp,
                         correct=gotIt,
                         attempt=att)
        if gotIt:
            flash("A CORRECT answer was given for question {0}.".format(qnum))
        else:
            flash(
                "An INCORRECT answer was given for question {0}.".format(qnum))