from . import models from ._builtin import Page, WaitPage from .functions import slider, tdm9 from otree.api import Currency as c, currency_range from .models import Constants import datetime from time import time import pytz # class SliderStart(WaitPage): # # group_by_arrival_time = True # # # def is_displayed(self): # # return not self.player.participant.vars['inactive'] # # # def get_timeout_seconds(self): # # return self.player.timeout_seconds() # # def before_next_page(self): # # Register timeouts # if self.timeout_happened: # self.player.participant.vars['inactive'] = True class SliderPrimaryContinuous(Page): form_model = models.Player form_fields = ['slider1', 'slider2', 'slider3', 'slider4', 'slider5', 'slider6', ] # timer_text = 'Time left to go through the instructions:' timeout_seconds = 180 # def is_displayed(self): # return not self.player.participant.vars['inactive'] def vars_for_template(self): return { 'slider_items': [1, 2, 3, 4, 5, 6], } def before_next_page(self): # Register timeouts if self.timeout_happened: # self.player.participant.vars['inactive'] = True self.player.slider1 = -1 self.player.slider2 = -1 self.player.slider3 = -1 self.player.slider4 = -1 self.player.slider5 = -1 self.player.slider6 = -1 self.player.participant.vars['payoff_svo'] = 0 else: chosen_values = { 'item1': self.player.slider1, 'item2': self.player.slider2, 'item3': self.player.slider3, 'item4': self.player.slider4, 'item5': self.player.slider5, 'item6': self.player.slider6, } mean_allocations = slider.mean_allocations_continuous(chosen_values) svo_slider_angle = slider.svo_angle(mean_allocations['self'], mean_allocations['other']) self.player.slider_angle = svo_slider_angle self.player.slider_classification = slider.svo_classification(svo_slider_angle) self.player.payoff_precursor() self.player.participant.vars['record_time'] = time() class SliderSecondaryContinuous(Page): form_model = models.Player form_fields = ['slider1', 'slider2', 'slider3', 'slider4', 'slider5', 'slider6', 'slider7', 'slider8', 'slider9', 'slider10', 'slider11', 'slider12', 'slider13', 'slider14', 'slider15', ] # timer_text = 'Time left to go through the instructions:' # def is_displayed(self): # return not self.player.participant.vars['inactive'] def vars_for_template(self): return { 'slider_items': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], } # def get_timeout_seconds(self): # return self.player.timeout_seconds() def before_next_page(self): # Register timeouts if self.timeout_happened: # self.player.participant.vars['inactive'] = True self.player.slider1 = -1 self.player.slider2 = -1 self.player.slider3 = -1 self.player.slider4 = -1 self.player.slider5 = -1 self.player.slider6 = -1 self.player.slider7 = -1 self.player.slider8 = -1 self.player.slider9 = -1 self.player.slider10 = -1 self.player.slider11 = -1 self.player.slider12 = -1 self.player.slider13 = -1 self.player.slider14 = -1 self.player.slider15 = -1 self.player.participant.vars['payoff_svo'] = 0 else: chosen_values = { 'item1': self.player.slider1, 'item2': self.player.slider2, 'item3': self.player.slider3, 'item4': self.player.slider4, 'item5': self.player.slider5, 'item6': self.player.slider6, 'item7': self.player.slider7, 'item8': self.player.slider8, 'item9': self.player.slider9, 'item10': self.player.slider10, 'item11': self.player.slider11, 'item12': self.player.slider12, 'item13': self.player.slider13, 'item14': self.player.slider14, 'item15': self.player.slider15, } mean_allocations = slider.mean_allocations_continuous(chosen_values) svo_slider_angle = slider.svo_angle(mean_allocations['self'], mean_allocations['other']) self.player.slider_angle = svo_slider_angle self.player.slider_classification = slider.svo_classification(svo_slider_angle) self.player.payoff_precursor() self.player.participant.vars['record_time'] = time() class ResultsWaitPage(WaitPage): def after_all_players_arrive(self): self.group.set_payoffs() # def before_next_page(self): # # Register timeouts # if self.timeout_happened: # self.player.participant.vars['inactive'] = True # class Timeout(Page): # def is_displayed(self): # return self.player.participant.vars['dropout'] page_sequence = [ # SliderStart, SliderPrimaryContinuous, ResultsWaitPage, #Timeout, # Results, ]