from otree.api import ( models, widgets, BaseConstants, BaseSubsession, BaseGroup, BasePlayer, Currency as c, currency_range, ) import random author = 'Kevin Grubiak' doc = """ Your app description """ class Constants(BaseConstants): name_in_url = 'a_instructions' players_per_group = None num_rounds = 1 class Subsession(BaseSubsession): def creating_session(self): if self.round_number == 1: for p in self.get_players(): p.participant.vars['treatment'] = self.session.config.get('treatment', None) self.session.vars['n_instr_finished'] = 0 class Group(BaseGroup): pass class Player(BasePlayer): def live_wait(self, data): if data["new_arrival"]: if self.session.vars['n_instr_finished'] == len(self.subsession.get_players()): data["all_arrived"] = True else: data["all_arrived"] = False data["%_waiting"] = round(100*(self.session.vars['n_instr_finished']/len(self.subsession.get_players()))) return_data = {"n_waiting": self.session.vars['n_instr_finished'], "%_waiting": data["%_waiting"], "all_arrived": data["all_arrived"]} return {0: return_data} seat_number = models.IntegerField(label="", min=1, max=99)