from otree.api import ( models, widgets, BaseConstants, BaseSubsession, BaseGroup, BasePlayer, Currency as c, currency_range, safe_json ) from collections import Counter #from collections import ( _count_elements, Counter) author = 'Jesper Hansen' doc = """ Simple choice task on risk aversion. If subject chooses 'Option A', then she exhibits risk aversion since 'Option B' has a higher expected value. """ class Constants(BaseConstants): name_in_url = 'Choice_Experiment_1' players_per_group = None num_rounds = 1 instructions_template = 'Choice_Experiment_1/Instructions.html' class Subsession(BaseSubsession): def vars_for_admin_report(self): series_ = [] choices_report = list([p.Choice for p in self.get_players()]) cnt = Counter(choices_report) ch_a = [cnt['Option A']] ch_b = [cnt['Option B']] series_.append({'name':'Option A', 'data':ch_a}) series_.append({'name':'Option B', 'data':ch_b}) #highcharts_data_a = safe_json(ch_a) #highcharts_data_b = safe_json(ch_b) highcharts_series_ = safe_json(series_) return { 'highcharts_series_': highcharts_series_ } class Group(BaseGroup): pass #DEFINE ALL CHOICES OF EXPERIMENT class Player(BasePlayer): #FIRST PAGE Choice = models.CharField( choices=[ ('Option A'), ('Option B')] )