from . import models from ._builtin import Page, WaitPage from otree.api import Currency as c, currency_range ##from .forms import PFormset from .models import Constants, Player from otree.constants import timeout_happened class Beginpage(Page): def is_displayed(self): return self.subsession.round_number == 1 class Intro(Page): template_name = 'pggfg_wopunishment/Introduction.html' def is_displayed(self): return self.subsession.round_number == 1 class Contribute(Page): timeout_seconds = 30 form_model = 'player' form_fields = ['contribution'] class AfterContribWP(WaitPage): def after_all_players_arrive(self): self.group.set_pd_payoffs() for p in self.group.get_players(): p.set_payoff() #for p in self.group.get_players(): #p.set_punishment_endowment() class Bridgepage(Page): def is_displayed(self): return self.subsession.round_number == Constants.num_rounds class BetweenPage(WaitPage): wait_for_all_groups = True title_text = "Please wait" body_text = "Now we're regrouping you into another group." def is_displayed(self): return self.subsession.round_number == Constants.num_rounds """class Punishment(Page): timeout_seconds = 30 def vars_for_template(self): return {'formset': PFormset(instance=self.player)} def post(self): context = super().get_context_data() auto_submitted = self.request.POST.get(timeout_happened) if not auto_submitted: formset = PFormset(self.request.POST, instance=self.player) context['formset'] = formset context['form'] = self.get_form() if formset.is_valid(): allpuns = formset.save(commit=True) else: return self.render_to_response(context) return super().post() def before_next_page(self): if self.timeout_happened: self.player.punishments_sent.all().update(amount=0) class AfterPunishmentWP(WaitPage): def after_all_players_arrive(self): self.group.set_punishments() for p in self.group.get_players(): p.set_payoff() """ class Results(Page): ... page_sequence = [ Beginpage, Intro, Contribute, AfterContribWP, #Punishment, #AfterPunishmentWP, Results, Bridgepage, BetweenPage, ]