from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants class Introduction(Page): pass class Game(Page): def is_displayed(self): return self.player.color == 'blue' class Form(Page): form_model = "player" form_fields = ["outcome"] class Survey(Page): form_model = "player" def is_displayed(self): return self.player.color == 'blue' def get_form_fields(self): if self.player.color == 'blue': return ['age', 'gender', 'level', 'semester', 'major', 'income', 'income_source', 'risk', 'physical', 'health', 'birth'] class Charity(Page): form_model = "player" form_fields = ["charity"] class Reporting(Page): form_model = "player" form_fields = ["outcome"] def is_displayed(self): return self.player.color == 'blue' def before_next_page(self): if self.player.outcome == 1: self.participant.payoff = self.player.outcome * 2 if self.player.outcome == 2: self.participant.payoff = self.player.outcome * 2 if self.player.outcome == 3: self.participant.payoff = self.player.outcome * 2 if self.player.outcome == 4: self.participant.payoff = self.player.outcome * 2 if self.player.outcome == 5: self.participant.payoff = self.player.outcome * 2 if self.player.outcome == 6: self.participant.payoff = self.player.outcome * 0 class Survey2(Page): form_model = "player" def is_displayed(self): return self.player.color != 'blue' class ResultsWaitPage(WaitPage): def after_all_players_arrive(self): pass class Results(Page): def is_displayed(self): return self.player.color == 'blue' class End(Page): form_model = "player" form_fields = ["HEXACO1", "HEXACO2", "HEXACO3", "HEXACO4", "HEXACO5", "HEXACO6", "HEXACO7", "HEXACO8", "HEXACO9", "HEXACO10"] page_sequence = [Introduction, Survey, Survey2, Game, Reporting, Results, End, Charity]