Ejemplo n.º 1
0
def queue(request, p_id, focus):
	p = Participant.objects.get(id=p_id)
	refresh = False
	if p.group == 'mturk':
		exp = Experiment.mturk()
	elif p.group == 'coop':
		exp = Experiment.coop()
	else:
		print "Incorrect Queue init"
		return redirect('portal')
	if p.treatment:
		refresh = True
	n = p.checkin(exp,focus)
	return HttpResponse(simplejson.dumps({'n': n, 'refresh': refresh}),  content_type="application/json")
Ejemplo n.º 2
0
def portal(request):
    # Mturk
    p = None
    records = get_worker(request)
    if records:
        verified = check_records(records, "portal", noRedirect=True)
        if "redirect" in verified:
            return verified["redirect"]
        else:
            p = verified["participant"]

    hitId = request.GET.get(u"hitId")
    assignmentId = request.GET.get(u"assignmentId")
    workerId = request.GET.get(u"workerId")
    turkSubmitTo = request.GET.get(u"turkSubmitTo")
    if bool(hitId and assignmentId and workerId):
        if not p:
            p = Participant.create(
                group="mturk", hitId=hitId, assignmentId=assignmentId, workerId=workerId, turkSubmitTo=turkSubmitTo
            )
            p.save()
            request.session["part_num"] = p.id
        return render(request, "mturk_form.html", {"p": p})
    else:
        context = curb(Experiment.mturk())
        context["disabled"] = True
        return render(request, "portal.html", context)
Ejemplo n.º 3
0
def basic(request):
    parts = []
    for i in range(3):
        p = Participant()
        p.save()
        parts.append(p)
    request.session["part_num"] = parts[0].pk

    exp = Experiment(time_limit=30)
    exp.save()
    treat = exp.new_treatment(parts)
    turn = parts[0].turn
    context = {}
    for i, p in enumerate(parts):
        context["context" + str(i)] = p.diagram_context
        context["form" + str(i)] = p.form_context
    return render(request, "main.html", context)
Ejemplo n.º 4
0
def mturk(request, workerId):
    records = check_init(request, "mturk")
    if "redirect" in records and records["redirect"] != None:
        return records["redirect"]
    p = records["participant"]
    now = datetime.utcnow().replace(tzinfo=utc)
    p.started = now
    p.save()
    return render(request, "portal.html", curb(Experiment.mturk()))
Ejemplo n.º 5
0
def start(request):
    records = check_init(request, "start")
    if "redirect" in records and records["redirect"] != None:
        return records["redirect"]
    p = records["participant"]
    if p.group == "mturk":
        exp = Experiment.mturk()
    elif p.group == "e327":
        exp = Experiment.e327()
    elif p.group == "coop":
        exp = Experiment.coop()
    else:
        return not_configured_error(request, p)
    exp.queued.add(p)
    exp.save()
    context = nav(6, p=p)
    context["pk"] = p.pk
    context["turkSubmitTo"] = p.turkSubmitTo
    context["assignmentId"] = p.assignmentId
    return render(request, "start.html", context)
Ejemplo n.º 6
0
def practice(request):
    records = check_init(request, "pretest")
    if "redirect" in records and records["redirect"] != None:
        return records["redirect"]
    treat = Experiment.fake_treatment(conditions=["global_control"], time=30, group="practice")
    context = {}
    for i, p in enumerate(treat.participants):
        context["context" + str(i)] = p.diagram_context
        context["form" + str(i)] = p.form_context
    context.update(nav(4, p=records["participant"]))
    return render(request, "practice.html", context)
Ejemplo n.º 7
0
def pretest(request):
    records = check_init(request, "pretest")
    if "redirect" in records and records["redirect"] != None:
        return records["redirect"]
    part = records["participant"]
    form = QuizForm()
    if request.method == "POST":
        form = QuizForm(request.POST)
        if form.is_valid():
            part.passed_quiz = True
            part.save()
        else:
            part.pretest_tries += 1
            part.save()

    if part.passed_quiz:
        return redirect("start")
    else:
        context = {"context": Experiment.quiz_treatment().condition.p1.diagram_context, "form": form}
        context.update(nav(5, p=part))
        return render(request, "pretest.html", context)
Ejemplo n.º 8
0
def dev_survey(request):
    treat = Experiment.fake_treatment()
    treat.advance_to_end()
    context = {"context": treat.condition.p0.form_context}
    return render(request, "survey.html", context)
Ejemplo n.º 9
0
def curb(experiment):
    context = {"context": Experiment.curb_treatment().participants[0].diagram_context}
    context.update(nav(1, experiment=experiment))
    return context
Ejemplo n.º 10
0
def coop(request):
    now = datetime.utcnow().replace(tzinfo=utc)
    p = Participant(group="coop", started=now)
    p.save()
    request.session["part_num"] = p.id
    return render(request, "coop.html", curb(Experiment.coop()))