Structure of the Novaland stay pagesΒΆ

After receiving the information and passing the comprehension checks in the introductory part, participants began their stay in Novaland. For an overview of the fictional stay, please refer to the flowchart of the Novaland stay.

Before we discuss how the experience on each page was created, we first have to take a step back and talk about the underlying logic of the main app. While participants experience their fictional stay as one continuous trip, the app does not run only once. Instead, oTree runs the main app seven rounds. The flow of the Novaland stay is created by defining for each page in which round it is displayed. The different rounds of the main app contain the following pages:

  1. Round: NovalandIntro Pages, Comprehension Page, IntroVignette Page, First Smokescreen Page

  2. Round: Quiz Page, Quiz Results Page

  3. Round: First Vignette Page, First Vignette Results Page

  4. Round: Second Vignette Page, Second Vignette Results Page

  5. Round: Second Smokescreen Page

  6. Round: Third Vignette Page, Third Vignette Results Page

  7. Round: Fourth Vignette Page, Fourth Vignette Results Page, Pollster Pages, Pollster Results Page

Order of the smokescreens and vignettes

This order is defined in the timeline variable in creating_session function. By using the list objects for the order of the smokescreens and vignettes, we can define the order in which they are displayed to the participants. Each entry of the list contains a string that identifies the corresponding vignette or smokescreen scenario. This part of the creating_session is executed only once at the beginning of the first round. We will discuss the functionality of these pages in more detail below.

1p.vars['timeline'] = (
2        [p.vars['smokescreen_order'][0]] +  # note that the quiz page comes after the first smokescreen
3        [p.vars['quiz_page'][0]] +  # quiz page
4        p.vars['vignette_order'][0:2] +  # the first two vignettes
5        [p.vars['smokescreen_order'][1]] +  # the second smokescreen
6        p.vars['vignette_order'][2:4]  # the last two vignettes
7)

The second part of the creating_session function is executed at the beginning of each round. Here, we access the order of vignettes, smokescreens, and dependent variables for each player. This is done by accessing the Participant object and storing the name of the current scenario in the current_scenario variable. This variable is then used to determine which page should be displayed to the participant in the current round. This process allows us to only have one page for the smokescreens and one for the vignettes, which are then dynamically filled with the content of the current scenario. This is done by using the current_scenario variable in the vars_for_template method of the respective page class.