from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants from matplotlib import pyplot as plt from io import BytesIO from base64 import b64encode import urllib ############################################ # TRUSTOR ############################################ class Send(Page): form_model = 'player' form_fields = ['sent_amount'] def is_displayed(self): return self.player.id_in_group != 1 ############################################ # TRUSTEE ############################################ class SendBack(Page): form_model = 'player' form_fields = ['sent_back_amount'] def is_displayed(self): return self.player.id_in_group != 1 def vars_for_template(self): return dict(tripled_amount=self.player.sent_amount * Constants.multiplier) ############################################ # QUESTIONNAIRE ############################################ class Questions(Page): form_model = 'player' form_fields = ['q1', 'q2', 'q3'] def is_displayed(self): return self.player.id_in_group != 1 ############################################ # RESULTS VISIBLE TO ANDREJ ############################################ ####### # INITIAL SCREEN ####### class Results(Page): def is_displayed(self): return self.player.id_in_group == 1 def before_next_page(self): self.player.aggregates() ####### # FIRST RESULTS SCREEN ####### class Results2(Page): # Results can only be observed by Andrej def is_displayed(self): return self.player.id_in_group == 1 # passing of image def vars_for_template(self): return dict(my_img=self.participant.vars['image'], my_img2=self.participant.vars['image2'], my_img3=self.participant.vars['image3'], my_img4=self.participant.vars['image4'], my_img5=self.participant.vars['image5'], my_img6=self.participant.vars['image6'], my_img7=self.participant.vars['image7'], my_img8=self.participant.vars['image8']) def before_next_page(self): self.player.aggregates() ####### # RESULTS SCREEN, REFRESHED 1 ####### class Results3(Page): # Results can only be observed by Andrej def is_displayed(self): return self.player.id_in_group == 1 # passing of image def vars_for_template(self): return dict(my_img=self.participant.vars['image'], my_img2=self.participant.vars['image2'], my_img3=self.participant.vars['image3'], my_img4=self.participant.vars['image4'], my_img5=self.participant.vars['image5'], my_img6=self.participant.vars['image6'], my_img7=self.participant.vars['image7'], my_img8=self.participant.vars['image8']) def before_next_page(self): self.player.aggregates() ####### # RESULTS SCREEN, REFRESHED 2 ####### class Results4(Page): # Results can only be observed by Andrej def is_displayed(self): return self.player.id_in_group == 1 # passing of image def vars_for_template(self): return dict(my_img=self.participant.vars['image'], my_img2=self.participant.vars['image2'], my_img3=self.participant.vars['image3'], my_img4=self.participant.vars['image4'], my_img5=self.participant.vars['image5'], my_img6=self.participant.vars['image6'], my_img7=self.participant.vars['image7'], my_img8=self.participant.vars['image8']) def before_next_page(self): self.player.aggregates() ####### # RESULTS SCREEN, REFRESHED 3 ####### class Results5(Page): # Results can only be observed by Andrej def is_displayed(self): return self.player.id_in_group == 1 # passing of image def vars_for_template(self): return dict(my_img=self.participant.vars['image'], my_img2=self.participant.vars['image2'], my_img3=self.participant.vars['image3'], my_img4=self.participant.vars['image4'], my_img5=self.participant.vars['image5'], my_img6=self.participant.vars['image6'], my_img7=self.participant.vars['image7'], my_img8=self.participant.vars['image8']) def before_next_page(self): self.player.aggregates() ####### # RESULTS SCREEN, REFRESHED 4 ####### class Results6(Page): # Results can only be observed by Andrej def is_displayed(self): return self.player.id_in_group == 1 # passing of image def vars_for_template(self): return dict(my_img=self.participant.vars['image'], my_img2=self.participant.vars['image2'], my_img3=self.participant.vars['image3'], my_img4=self.participant.vars['image4'], my_img5=self.participant.vars['image5'], my_img6=self.participant.vars['image6'], my_img7=self.participant.vars['image7'], my_img8=self.participant.vars['image8']) def before_next_page(self): self.player.aggregates() ####### # RESULTS SCREEN, REFRESHED 5 ####### class Results7(Page): # Results can only be observed by Andrej def is_displayed(self): return self.player.id_in_group == 1 # passing of image def vars_for_template(self): return dict(my_img=self.participant.vars['image'], my_img2=self.participant.vars['image2'], my_img3=self.participant.vars['image3'], my_img4=self.participant.vars['image4'], my_img5=self.participant.vars['image5'], my_img6=self.participant.vars['image6'], my_img7=self.participant.vars['image7'], my_img8=self.participant.vars['image8']) def before_next_page(self): self.player.aggregates() ####### # RESULTS SCREEN, REFRESHED 6 ####### class Results8(Page): # Results can only be observed by Andrej def is_displayed(self): return self.player.id_in_group == 1 # passing of image def vars_for_template(self): return dict(my_img=self.participant.vars['image'], my_img2=self.participant.vars['image2'], my_img3=self.participant.vars['image3'], my_img4=self.participant.vars['image4'], my_img5=self.participant.vars['image5'], my_img6=self.participant.vars['image6'], my_img7=self.participant.vars['image7'], my_img8=self.participant.vars['image8']) def before_next_page(self): self.player.aggregates() page_sequence = [Send, SendBack, Questions, Results, Results2, Results3, Results4, Results5,Results6, Results7, Results8]