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_date': self.session.config.get('experiment_starting_time', ''), } class Recruitment(Page): live_method = 'live_method' form_model = 'player' form_fields = ['t1','t2','t3','t4'] def js_vars(self): return dict( data_received=self.player.data_received, ) def before_next_page(self): if not self.timeout_happened: user_agent_string = self.request.META['HTTP_USER_AGENT'] self.player.agent_string = user_agent_string print('User agent string:', user_agent_string) # This part checks for the operating system if 'Macintosh' in user_agent_string: self.player.machine = 'Macintosh' elif 'Windows' in user_agent_string: self.player.machine = 'Windows' else: self.player.machine = 'Other' # This part checks for the browser if 'Chrome' in user_agent_string: self.player.browser = 'Chrome' elif 'Edge' in user_agent_string: self.player.browser = 'Edge' elif 'Firefox' in user_agent_string: self.player.browser = 'Firefox' elif 'Safari' in user_agent_string and 'Chrome' not in user_agent_string and 'Edge' not in user_agent_string: self.player.browser = 'Safari' elif 'MSIE' in user_agent_string: self.player.browser = 'InternetExplorer' else: self.player.browser = 'Other' print('setting consent: ',self.player.consent) self.player.consent = True print('after setting consent: ',self.player.consent) class EndInfo(Page): form_model = 'player' form_fields = ['t1','t2','t3','t4'] def js_vars(self): return dict( data_received=self.player.data_received, ) page_sequence = [ Recruitment, EndInfo, ]