from otree.api import ( models, widgets, BaseConstants, BaseSubsession, BaseGroup, BasePlayer, Currency as c, currency_range, ) from ._builtin import Page, WaitPage from .models import Constants class experiment_two(Page): def is_displayed(self): return self.round_number == 1 class official_trade_description(Page): def is_displayed(self): return self.round_number == 1 class Join_FC(Page): form_model = 'player' form_fields = ['join_FC'] class Results(Page): def vars_for_template(self): self.player.winlose_return() self.player.participation_return() return { 'notgo': self.player.numticket - self.player.togo, } class trade2a(Page): '''買ったチケットがいけなくなって余った人の画面''' def is_displayed(self): if self.player.join_FC == self.player.numticket and self.player.numticket - self.player.togo == 0: return False else: if self.player.join_FC - self.player.togo >= 1: return True else: return False def vars_for_template(self): return { 'notgo': self.player.join_FC - self.player.togo, } form_model = 'player' form_fields = ['trade2a'] class trade2a_result(Page): '''トレードの結果画面''' def is_displayed(self): if self.player.join_FC == self.player.numticket and self.player.numticket - self.player.togo == 0: return False else: if self.player.join_FC - self.player.togo >= 1: if self.player.trade2a == 0: return False else: return True else: return False def vars_for_template(self): self.player.trade_winlose_return() return { 'notgo2': self.player.numticket - self.player.togo - self.player.numticket_trade, 'notgo': self.player.join_FC - self.player.togo, } class final_result(Page): def vars_for_template(self): self.player.set_payoffs() return { 'notgo': (self.player.join_FC - self.player.togo)*self.player.trade2a, 'notgo1': self.player.numticket - self.player.togo, 'finalnumticket':self.player.numticket_trade + self.player.togo } page_sequence = [experiment_two,official_trade_description, Join_FC, Results, trade2a,trade2a_result, final_result]