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 = """ Explanation of task here: BLABLABLA """ class Constants(BaseConstants): name_in_url = 'Choice_Experiment_4' players_per_group = None num_rounds = 1 instructions_template = 'Choice_Experiment_4/Instructions.html' class Subsession(BaseSubsession): def vars_for_admin_report(self): ch_ = ({'A,C': 0, 'A,D': 0, 'B,C': 0, 'B,D': 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 C': ch_['A,C'] +=1 else: ch_['A,D'] +=1 else: if p.Choice_2 == 'Option C': ch_['B,C'] +=1 else: ch_['B,D'] +=1 cnt = Counter(ch_) ch_1a2a = [cnt['A,C']] ch_1a2b = [cnt['A,D']] ch_1b2a = [cnt['B,C']] ch_1b2b = [cnt['B,D']] series_2 = [] series_2.append({'name': 'A,C', 'data': ch_1a2a}) series_2.append({'name': 'A,D', 'data': ch_1a2b}) series_2.append({'name': 'B,C', 'data': ch_1b2a}) series_2.append({'name': 'B,D', 'data': ch_1b2b}) highcharts_series_2 = safe_json(series_2) return { 'highcharts_series_2': highcharts_series_2 } class Group(BaseGroup): pass #DEFINE ALL CHOICES OF EXPERIMENT class Player(BasePlayer): #FIRST PAGE Choice_1 = models.CharField( choices=['Option A', 'Option B'], verbose_name='1. Which of these two lotteries do you prefer?') #SECOND PAGE Choice_2 = models.CharField( choices=['Option C', 'Option D'], verbose_name='2. Which of these two lotteries do you prefer?')