from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants class ExchangeTreatments(WaitPage): form_model = 'group' form_fields = ['treatment','request','accept'] after_all_players_arrive ='set_treatment' class ExchangeOffer(Page): timeout_seconds = 100 form_model = 'group' form_fields = ['request'] def is_displayed(self): if self.player.round_number % 2 == 0: return self.player.id_in_group == 1 else: return self.player.id_in_group == 2 class ExchangeOfferWaitPage(WaitPage): pass class ExchangeAccept(Page): timeout_seconds = 100 form_model = 'group' form_fields = ['accept'] def vars_for_template(self): return dict(offer=Constants.endowment - self.group.request) def is_displayed(self): if self.group.treatment == "reciprocal": return None elif self.player.round_number % 2 == 0: return self.player.id_in_group == 2 else: return self.player.id_in_group == 1 class ResultsWaitPage(WaitPage): after_all_players_arrive = 'set_payoffs' class ExchangeResults(Page): form_model = 'group' form_fields = ['treatment','request','accept'] def vars_for_template(self): return dict(offer=Constants.endowment - self.group.request) class NextRoundWaitPage(WaitPage): pass #the page order #ExchangeTreatments, page_sequence = [ExchangeTreatments, ExchangeOffer, ExchangeOfferWaitPage, ExchangeAccept, ResultsWaitPage, ExchangeResults, NextRoundWaitPage]