from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants class Send(Page): form_model = 'group' form_fields = ['owner_contract'] def is_displayed(self): return self.player.id_in_group==1 class Penalty(Page): form_model='group' form_fields = ['owner_penalty'] def is_displayed(self): return self.player.id_in_group==1 and self.group.owner_contract=='Fixed Rent' class Discount(Page): form_model = 'group' form_fields = ['owner_discount'] def is_displayed(self): return self.player.id_in_group==1 and self.group.owner_contract=='Fixed Rent with Discount' class SendBack(Page): form_model = 'group' form_fields = ['renter_action'] def is_displayed(self): return self.player.id_in_group==2 and self.group.owner_contract=='Fixed Rent' class SendBack2(Page): form_model = 'group' form_fields = ['renter_action'] def is_displayed(self): return self.player.id_in_group==2 and self.group.owner_contract=='Fixed Rent with Discount' class WaitforP1(WaitPage): body_text = "Waiting for the Owner to make his choice" class WaitforP2(WaitPage): body_text = "Waiting for the Renter to make his choice" class ResultsWaitPag(WaitPage): pass class Results_final(Page): def is_displayed(self): return self.group.owner_contract=='Fixed Rent'and self.group.owner_penalty=='Yes'and self.group.renter_action=='ACTION D' class Results_final_penal(Page): def is_displayed(self): return self.group.owner_contract=='Fixed Rent' and self.group.owner_penalty=='Yes' and self.group.renter_action=='ACTION G' class Results_final_nopenal(Page): def is_displayed(self): return self.group.owner_contract=='Fixed Rent' and self.group.owner_penalty=='No' and self.group.renter_action=='ACTION D' class Results_final_nopenalG(Page): def is_displayed(self): return self.group.owner_contract=='Fixed Rent' and self.group.owner_penalty=='No' and self.group.renter_action=='ACTION G' class Results_final2(Page): def vars_for_template(self): return dict(individual_discount_a=Constants.rentnopenaltyD-self.group.owner_discount, individual_discount_b=Constants.rentnopenalty_D_R+self.group.owner_discount) def is_displayed(self): return self.group.owner_contract=='Fixed Rent with Discount'and self.group.renter_action== 'ACTION D' class Results_final_discount(Page): def is_displayed(self): return self.group.owner_contract=='Fixed Rent with Discount' and self.group.renter_action=='ACTION G' class WaitforQuiz(WaitPage): pass page_sequence = [WaitforQuiz, Send, Penalty, Discount, WaitforP1, SendBack, SendBack2, WaitforP2, ResultsWaitPag, Results_final, Results_final_penal, Results_final_nopenal, Results_final_nopenalG, Results_final2, Results_final_discount]