from otree.api import * class C(BaseConstants): NAME_IN_URL = 'ab_test' PLAYERS_PER_GROUP = 2 NUM_ROUNDS = 2 class Subsession(BaseSubsession): pass class Group(BaseGroup): headline = models.StringField(initial='') image_url = models.StringField(initial='') class Player(BasePlayer): is_clicked = models.IntegerField(initial=0) class MarketerPage(Page): form_model = 'group' form_fields = ['headline', 'image_url'] def is_displayed(player): return player.id_in_group == 1 class WaitPage1(WaitPage): title_text = "Please wait..." body_text = "Waiting for marketer to submit..." def is_displayed(player): return player.id_in_group != 1 class ViewPage(Page): def is_displayed(player): return player.id_in_group != 1 def vars_for_template(player): return dict( headline=player.group.headline, image_url=player.group.image_url, ) class MarketerWaitPage(WaitPage): title_text = "Please wait..." body_text = "Waiting for consumers to view your ad..." def is_displayed(player): return player.id_in_group == 1 class Results(Page): pass page_sequence = [MarketerPage, WaitPage1, ViewPage, MarketerWaitPage, Results]