from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants class Kacheln_a(Page): form_model = 'player' form_fields = ['buttons_clicked'] def is_displayed(self): return( ((self.participant.vars['groups'] == "group1")|(self.participant.vars['groups'] == "group2"))&(self.participant.vars['articles_left'] > 0) & ( self.participant.vars['end'] == 0) ) def vars_for_template(self): if(self.round_number==1): noch = '' weiteren = '' else: noch = ' noch' weiteren = ' weiteren' return { 'round1': self.player.in_round(1).buttons_clicked, 'round2': self.player.in_round(2).buttons_clicked, 'round3': self.player.in_round(3).buttons_clicked, 'round4': self.player.in_round(4).buttons_clicked, 'round5': self.player.in_round(5).buttons_clicked, 'round6': self.player.in_round(6).buttons_clicked, 'round7': self.player.in_round(7).buttons_clicked, 'round8': self.player.in_round(8).buttons_clicked, 'round9': self.player.in_round(9).buttons_clicked, 'round10': self.player.in_round(10).buttons_clicked, 'round11': self.player.in_round(11).buttons_clicked, 'round12': self.player.in_round(12).buttons_clicked, 'kacheln_num': self.participant.vars['articles_left'], 'noch': noch, 'weiteren': weiteren } def before_next_page(self): if(self.player.buttons_clicked==0): self.participant.vars['end'] = 1 article_data = self.player.current_article() self.player.category = article_data['category'] self.player.short_title = article_data['short_title'] self.player.title = article_data['title'] self.player.subtitle = article_data['subtitle'] self.player.picture = article_data['picture'] self.player.subtitle_picture = article_data['subtitle_picture'] self.player.text = article_data['text'] class Kacheln_c(Page): form_model = 'player' form_fields = ['buttons_clicked'] def is_displayed(self): return( ((self.participant.vars['groups'] == "group3")|(self.participant.vars['groups'] == "group4"))&(self.participant.vars['articles_left'] > 0) & ( self.participant.vars['end'] == 0) ) def vars_for_template(self): if(self.round_number==1): import random noch = '' weiteren = '' random_list = random.sample(range(1,13), 12-self.participant.vars['articles_left']) self.participant.vars['random_list'] = random_list else: noch = ' noch' weiteren = 'weiteren' return { 'round1': self.player.in_round(1).buttons_clicked, 'round2': self.player.in_round(2).buttons_clicked, 'round3': self.player.in_round(3).buttons_clicked, 'round4': self.player.in_round(4).buttons_clicked, 'round5': self.player.in_round(5).buttons_clicked, 'round6': self.player.in_round(6).buttons_clicked, 'round7': self.player.in_round(7).buttons_clicked, 'round8': self.player.in_round(8).buttons_clicked, 'round9': self.player.in_round(9).buttons_clicked, 'round10': self.player.in_round(10).buttons_clicked, 'round11': self.player.in_round(11).buttons_clicked, 'round12': self.player.in_round(12).buttons_clicked, 'kacheln_num': self.participant.vars['num_articles'], 'list': self.participant.vars['random_list'], 'noch': noch, 'weiteren': weiteren } def before_next_page(self): if(self.player.buttons_clicked==0): self.participant.vars['end'] = 1 article_data = self.player.current_article() self.player.category = article_data['category'] self.player.short_title = article_data['short_title'] self.player.title = article_data['title'] self.player.subtitle = article_data['subtitle'] self.player.picture = article_data['picture'] self.player.subtitle_picture = article_data['subtitle_picture'] self.player.text = article_data['text'] class Artikel(Page): form_model = 'player' form_fields = ['like_button'] def is_displayed(self): return( (self.participant.vars['articles_left'] > 0) & ( self.participant.vars['end'] == 0) ) def before_next_page(self): self.participant.vars['articles_left'] = self.participant.vars['articles_left'] - 1 # alles gelesen G1 class Page0_a(Page): form_model = 'player' form_fields = ['interesse', 'zahlen'] def is_displayed(self): return( (self.participant.vars['groups'] == "group1") & (self.participant.vars['articles_left'] == 0) ) def vars_for_template(self): return { 'round1': self.player.in_round(1).buttons_clicked, 'round2': self.player.in_round(2).buttons_clicked, 'round3': self.player.in_round(3).buttons_clicked, 'round4': self.player.in_round(4).buttons_clicked, 'round5': self.player.in_round(5).buttons_clicked, 'round6': self.player.in_round(6).buttons_clicked, 'round7': self.player.in_round(7).buttons_clicked, 'round8': self.player.in_round(8).buttons_clicked, 'round9': self.player.in_round(9).buttons_clicked, 'round10': self.player.in_round(10).buttons_clicked, 'round11': self.player.in_round(11).buttons_clicked, 'round12': self.player.in_round(12).buttons_clicked, } def before_next_page(self): self.participant.vars['end'] = 2 self.participant.vars['articles_left'] = -1 # alles gelesen G2 class Page0_a2(Page): form_model = 'player' form_fields = ['interesse', 'zahlen'] def is_displayed(self): return( (self.participant.vars['groups'] == "group2") & (self.participant.vars['articles_left'] == 0) ) def vars_for_template(self): return { 'round1': self.player.in_round(1).buttons_clicked, 'round2': self.player.in_round(2).buttons_clicked, 'round3': self.player.in_round(3).buttons_clicked, 'round4': self.player.in_round(4).buttons_clicked, 'round5': self.player.in_round(5).buttons_clicked, 'round6': self.player.in_round(6).buttons_clicked, 'round7': self.player.in_round(7).buttons_clicked, 'round8': self.player.in_round(8).buttons_clicked, 'round9': self.player.in_round(9).buttons_clicked, 'round10': self.player.in_round(10).buttons_clicked, 'round11': self.player.in_round(11).buttons_clicked, 'round12': self.player.in_round(12).buttons_clicked, } def before_next_page(self): self.participant.vars['end'] = 2 self.participant.vars['articles_left'] = -1 #alles gelesen G3, G4 class Page0_b(Page): form_model = 'player' form_fields = ['interesse', 'zahlen'] def is_displayed(self): return( ((self.participant.vars['groups'] == "group3") | (self.participant.vars['groups'] == "group4")) & (self.participant.vars['articles_left'] == 0) ) def vars_for_template(self): return { 'round1': self.player.in_round(1).buttons_clicked, 'round2': self.player.in_round(2).buttons_clicked, 'round3': self.player.in_round(3).buttons_clicked, 'round4': self.player.in_round(4).buttons_clicked, 'round5': self.player.in_round(5).buttons_clicked, 'round6': self.player.in_round(6).buttons_clicked, 'round7': self.player.in_round(7).buttons_clicked, 'round8': self.player.in_round(8).buttons_clicked, 'round9': self.player.in_round(9).buttons_clicked, 'round10': self.player.in_round(10).buttons_clicked, 'round11': self.player.in_round(11).buttons_clicked, 'round12': self.player.in_round(12).buttons_clicked, 'list': self.participant.vars['random_list'] } def before_next_page(self): self.participant.vars['end'] = 2 self.participant.vars['articles_left'] = -1 #abgebrochen G1, G2 class Page0_c(Page): form_model = 'player' form_fields = ['interesse', 'zahlen'] def is_displayed(self): return( ((self.participant.vars['groups'] == "group1") | (self.participant.vars['groups'] == "group2")) & (self.participant.vars['end'] == 1) ) def vars_for_template(self): return { 'round1': self.player.in_round(1).buttons_clicked, 'round2': self.player.in_round(2).buttons_clicked, 'round3': self.player.in_round(3).buttons_clicked, 'round4': self.player.in_round(4).buttons_clicked, 'round5': self.player.in_round(5).buttons_clicked, 'round6': self.player.in_round(6).buttons_clicked, 'round7': self.player.in_round(7).buttons_clicked, 'round8': self.player.in_round(8).buttons_clicked, 'round9': self.player.in_round(9).buttons_clicked, 'round10': self.player.in_round(10).buttons_clicked, 'round11': self.player.in_round(11).buttons_clicked, 'round12': self.player.in_round(12).buttons_clicked } def before_next_page(self): self.participant.vars['end'] = 2 self.participant.vars['articles_left'] = -1 #abgebrochen G3, G4 class Page0_d(Page): form_model = 'player' form_fields = ['interesse', 'zahlen'] def is_displayed(self): return( ((self.participant.vars['groups'] == "group3") | (self.participant.vars['groups'] == "group4")) & (self.participant.vars['end'] == 1) ) def vars_for_template(self): return { 'round1': self.player.in_round(1).buttons_clicked, 'round2': self.player.in_round(2).buttons_clicked, 'round3': self.player.in_round(3).buttons_clicked, 'round4': self.player.in_round(4).buttons_clicked, 'round5': self.player.in_round(5).buttons_clicked, 'round6': self.player.in_round(6).buttons_clicked, 'round7': self.player.in_round(7).buttons_clicked, 'round8': self.player.in_round(8).buttons_clicked, 'round9': self.player.in_round(9).buttons_clicked, 'round10': self.player.in_round(10).buttons_clicked, 'round11': self.player.in_round(11).buttons_clicked, 'round12': self.player.in_round(12).buttons_clicked, 'list': self.participant.vars['random_list'] } def before_next_page(self): self.participant.vars['end'] = 2 self.participant.vars['articles_left'] = -1 page_sequence = [ Kacheln_a, Kacheln_c, Artikel, Page0_a, Page0_a2, Page0_b, Page0_c, Page0_d ]