import random import time from ._builtin import Page, WaitPage class Welcome(Page): form_model = "player" form_fields = ["age", "gender", "phone_number", "i_agree"] def error_message(self, values): display = '' if not values.get('phone_number'): display = '.נא למלא מספר טלפון' if len(values.get('phone_number')) != 10: display = '.מספר טלפון נדרש להיות עם 10 ספרות' return display def before_next_page(self): self.participant.vars["phone_number"] = self.player.phone_number class Instructions1(Page): pass class Instructions2(Page): pass class Instructions3(Page): pass class Instructions4(Page): pass class Instructions5(Page): form_model = "player" form_fields = ["pre_test_q1", "pre_test_q2", "pre_test_q3"] def error_message(self, values): if not (values["pre_test_q1"] == "True" and values["pre_test_q2"] == "True" and values["pre_test_q3"] == "True"): return "אחת מהתשובות לא נכונות, יש לקרוא את ההוראות מחדש ולענות שוב" class InvestRound1(Page): form_model = "player" form_fields = ["invest_amount_r1"] def vars_for_template(self): self.player.start_invest = time.time() return {} def before_next_page(self): player = self.player if random.random() <= 1 / 3: player.earning_from_investment_lat_round = player.invest_amount_r1 * 3.5 player.asset_up_r1 = True else: player.earning_from_investment_lat_round = 0 player.asset_up_r1 = False player.total_score += player.earning_from_investment_lat_round + (100 - player.invest_amount_r1) player.participant.vars["total_score"] = player.total_score class InvestRound1Results(Page): def vars_for_template(self): player = self.player player.finish_invest = time.time() asset_stat = "הנכס הניב רווחים" if player.asset_up_r1 else "הכסף שהושקע הופסד" coins_from_saving = 100 - player.invest_amount_r1 return dict(asset_stat=asset_stat, coins_from_saving=coins_from_saving) class Results(Page): pass page_sequence = [Welcome, Instructions1, Instructions2, Instructions3, Instructions4, Instructions5, InvestRound1, InvestRound1Results]