from otree.api import * c = cu doc = '' class C(BaseConstants): PLAYERS_PER_GROUP = None NUM_ROUNDS = 1 NAME_IN_URL = 'instruction' class Subsession(BaseSubsession): pass class Group(BaseGroup): pass class Player(BasePlayer): consent = models.IntegerField(choices=[[1, '1']]) begin1 = models.FloatField(initial=0) begin2 = models.FloatField(initial=0) begin3 = models.FloatField(initial=0) begin4 = models.FloatField(initial=0) begin5 = models.FloatField(initial=0) begin6 = models.FloatField(initial=0) begin7 = models.FloatField(initial=0) begin8 = models.FloatField(initial=0) spend1 = models.FloatField() spend2 = models.FloatField() spend3 = models.FloatField() spend4 = models.FloatField() spend5 = models.FloatField() spend6 = models.FloatField() spend7 = models.FloatField() spend8 = models.FloatField() spendTotal = models.FloatField() def custom_export(players): import datetime yield ["session", "participant_code", "id_in_group", "participant._current_page_name", "participant._index_in_pages", "participant._max_page_index", "round_number", "player.consent", "player.begin1", "player.spend1", "player.begin2", "player.spend2", "player.begin3", "player.spend3", "player.begin4", "player.spend4", "player.begin5", "player.spend5", "player.begin6", "player.spend6", "player.begin7", "player.spend7", "player.begin8", "player.spend8", "player.spendTotal"] for p in players: participant = p.participant session = p.session yield [session.code, participant.code, p.id_in_group, participant._current_page_name, participant._index_in_pages, participant._max_page_index, p.round_number, p.consent, datetime.datetime.fromtimestamp(int(p.begin1)), p.spend1, datetime.datetime.fromtimestamp(int(p.begin2)), p.spend2, datetime.datetime.fromtimestamp(int(p.begin3)), p.spend3, datetime.datetime.fromtimestamp(int(p.begin4)), p.spend4, datetime.datetime.fromtimestamp(int(p.begin5)), p.spend5, datetime.datetime.fromtimestamp(int(p.begin6)), p.spend6, datetime.datetime.fromtimestamp(int(p.begin7)), p.spend7, datetime.datetime.fromtimestamp(int(p.begin8)), p.spend8, p.spendTotal] class Welcome(Page): form_model = 'player' form_fields = ['consent'] @staticmethod def vars_for_template(player: Player): import time player.begin1 = time.time() return dict() @staticmethod def before_next_page(player: Player, timeout_happened): import time player.spend1 = time.time() - player.begin1 player.spendTotal = player.spend1 class Instruction(Page): form_model = 'player' @staticmethod def vars_for_template(player: Player): import time player.begin2 = time.time() return dict() @staticmethod def before_next_page(player: Player, timeout_happened): import time player.spend2 = time.time() - player.begin2 player.spendTotal += player.spend2 class Screen(Page): form_model = 'player' @staticmethod def vars_for_template(player: Player): import time player.begin3 = time.time() return dict() @staticmethod def before_next_page(player: Player, timeout_happened): import time player.spend3 = time.time() - player.begin3 player.spendTotal += player.spend3 class Chart(Page): form_model = 'player' @staticmethod def vars_for_template(player: Player): import time player.begin4 = time.time() return dict() @staticmethod def before_next_page(player: Player, timeout_happened): import time player.spend4 = time.time() - player.begin4 player.spendTotal += player.spend4 class Information(Page): form_model = 'player' @staticmethod def vars_for_template(player: Player): import time player.begin5 = time.time() return dict() @staticmethod def before_next_page(player: Player, timeout_happened): import time player.spend5 = time.time() - player.begin5 player.spendTotal += player.spend5 class Order(Page): form_model = 'player' @staticmethod def vars_for_template(player: Player): import time player.begin6 = time.time() return dict() @staticmethod def before_next_page(player: Player, timeout_happened): import time player.spend6 = time.time() - player.begin6 player.spendTotal += player.spend6 class Performance(Page): form_model = 'player' @staticmethod def vars_for_template(player: Player): import time player.begin7 = time.time() return dict() @staticmethod def before_next_page(player: Player, timeout_happened): import time player.spend7 = time.time() - player.begin7 player.spendTotal += player.spend7 class Trial(Page): form_model = 'player' @staticmethod def vars_for_template(player: Player): import time player.begin8 = time.time() return dict() @staticmethod def before_next_page(player: Player, timeout_happened): import time player.spend8 = time.time() - player.begin8 player.spendTotal += player.spend8 page_sequence = [Welcome, Instruction, Screen, Chart, Information, Order, Performance, Trial]