from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage import settings from .models import Constants import time import boto3 def vars_for_all_templates(self): return { 'experiment_starting_time': self.session.config.get('experiment_starting_time', ''), } class WorkerID(Page): form_model = 'player' form_fields = ['workerid'] def before_next_page(self): if not self.timeout_happened: if not self.session.config.get('debug',False): access_key_id = self.session.config['access_key_id'] secret_access_key = self.session.config['secret_access_key'] if self.session.config.get('sandbox',False): # sandbox Qid = self.session.config['Qid_qual_sandbox'] mturk = boto3.client( service_name='mturk', aws_access_key_id=access_key_id, aws_secret_access_key=secret_access_key, region_name='us-east-1', endpoint_url="https://mturk-requester-sandbox.us-east-1.amazonaws.com", ) else: # live production Qid = self.session.config['Qid_qual'] mturk = boto3.client( service_name='mturk', aws_access_key_id=access_key_id, aws_secret_access_key=secret_access_key, region_name='us-east-1', ) mturk.associate_qualification_with_worker( QualificationTypeId=Qid, WorkerId=self.player.workerid, IntegerValue=1, # Qid_qual -- qualified to participate in later experiment SendNotification=False ) self.participant.vars['workerid'] = self.player.workerid class EndInfo(Page): pass page_sequence = [ WorkerID, EndInfo, ]