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")
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)
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)
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()))
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)
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)
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)
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)
def curb(experiment): context = {"context": Experiment.curb_treatment().participants[0].diagram_context} context.update(nav(1, experiment=experiment)) return context
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()))