from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants import random import math class Introduction(Page): pass class q_request(Page): form_model = 'group' form_fields = ['q'] def is_displayed(self): return self.player.role() == 'Buyer' class ResultsWaitPage1(WaitPage): template_name = 'cap_and_trade/ResultsWaitPage1.html' class p_request(Page): form_model = 'group' form_fields = ['p'] def is_displayed(self): return self.player.role() == 'Seller' class ResultsWaitPage2(WaitPage): template_name = 'cap_and_trade/ResultsWaitPage2.html' class a_request(Page): form_model = 'group' form_fields = ['a'] def is_displayed(self): return self.player.role() == 'Buyer' class ResultsWaitPage3(WaitPage): template_name = 'cap_and_trade/ResultsWaitPage3.html' after_all_players_arrive = 'set_payoffs' class ResultsWaitPage4(WaitPage): template_name = 'cap_and_trade/ResultsWaitPage4.html' after_all_players_arrive = 'set_payoffs' class Results(Page): def vars_for_template(self): if self.round_number == 1: permits0 = self.subsession.endowment permits0 = self.subsession.endowment production0 = math.floor(math.sqrt(self.group.get_player_by_id('1').permits)) production0 = math.floor(math.sqrt(self.group.get_player_by_id('2').permits)) return dict( permits0=permits0, production0=production0, ) else: permits0 = self.player.in_round(self.round_number-1).permits production0 = self.player.in_round(self.round_number-1).production return dict( permits0=permits0, production0=production0, ) page_sequence = [ResultsWaitPage4, Introduction, q_request, ResultsWaitPage1, p_request, ResultsWaitPage2,a_request, ResultsWaitPage3, Results]