from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants from django.shortcuts import redirect import logging logger = logging.getLogger(__name__) def vars_for_all_templates(self): return { 'permit': self.session.config['parking_permit_value'], } class Introduction(Page): timeout_seconds = 60 def is_displayed(self): if(self.subsession.round_number == 1): template_name = 'Parking_game/Introduction.html' return True else: return False class Decide(Page): timeout_seconds = 45 form_model = 'player' form_fields = ['available_lots'] template_name = 'Parking_game/Decide.html' reparking_error = '' def vars_for_template(self): return { 'failed_parking': Decide.reparking_error, 'lot_a_price': '', 'lot_b_price': '', 'lot_c_price': '', 'lot_d_price': '', } def before_next_page(self): if self.timout_happened: self.player.available_lots = self.group.set_random_lot() # Add players to lots: self.group.add_to_lot() # Check if any lots are full: the_chosen = self.group.check_if_full_lot() if self.player.id_in_group in the_chosen: Decide.reparking_error = 'Your lot was full, please park again...' return redirect(Decide) class ResultsWaitPage(WaitPage): body_text = 'Waiting for other players to find parking...' def after_all_players_arrive(self): self.group.set_base_lot_value() self.group.lot_value_adjustment() class Results(Page): timeout_seconds = 15 template_name = 'Parking_game/Results.html' def vars_for_template(self): pass page_sequence = [ Introduction, Decide, ResultsWaitPage, Results, ]