from otree.api import ( models, widgets, BaseConstants, BaseSubsession, BaseGroup, BasePlayer, Currency as c, currency_range, safe_json ) from collections import Counter author = 'Your name here' doc = """ Your app description """ class Constants(BaseConstants): name_in_url = 'Choice_Experiment_3' players_per_group = None num_rounds = 1 instructions_template = 'Choice_Experiment_3/Instructions.html' class Subsession(BaseSubsession): def before_session_starts(self): import random for player in self.get_players(): player.color = random.choice(['blue', 'red']) def vars_for_admin_report(self): ch_ = ({'A,A': 0, 'A,B': 0, 'B,A': 0, 'B,B': 0}) # ch_1a2b = {[0]} # ch_1b2a = {[0]} # ch_1b2b = {[0]} for p in self.get_players(): if p.Choice_1 == 'Option A': if p.Choice_2 == 'Option A': ch_['A,A'] += 1 else: ch_['A,B'] += 1 else: if p.Choice_2 == 'Option A': ch_['B,A'] += 1 else: ch_['B,B'] += 1 cnt = Counter(ch_) ch_1a2a = [cnt['A,A']] ch_1a2b = [cnt['A,B']] ch_1b2a = [cnt['B,A']] ch_1b2b = [cnt['B,B']] series_3 = [] series_3.append({'name': 'A,A', 'data': ch_1a2a}) series_3.append({'name': 'A,B', 'data': ch_1a2b}) series_3.append({'name': 'B,A', 'data': ch_1b2a}) series_3.append({'name': 'B,B', 'data': ch_1b2b}) highcharts_series_3 = safe_json(series_3) return { 'highcharts_series_3': highcharts_series_3 } class Group(BaseGroup): pass class Player(BasePlayer): color = models.CharField() #FIRST PAGE Choice_1 = models.CharField( choices=['Option A', 'Option B'], verbose_name='1. Which of these two options do you prefer?') #SECOND PAGE Choice_2 = models.CharField( choices=['Option A', 'Option B'], verbose_name='2. Which of these two options do you prefer?')