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 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 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 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)