oTree Forum >

Set treatment correctly

#1 by mvogeley

Hi, 
I have a problem with my treatment & control group. I have a simple real effort task with two Treatment and one control group. I want to provide a progress bar for the two treatment groups and not the control group. However, after long trial and error, i don't find the problem. maybe someone faced the same problem- 

In my __init__.py I set the creating_session function the following:
def creating_session(subsession: Subsession):
    if subsession.round_number == 1:
        for player in subsession.get_players():
            participant = player.participant
            participant.treatment = random.choice(['Control Group', 'Treatment1', 'Treatment2'])

The progress bar has been implemented in the Start(Page):
class Start(Page):
    form_model = "player"
    form_fields = ["number_entered"]
    timeout_seconds = 60  #Für Control- und Treatmentgruppe 1 nicht anzeigen

    @staticmethod
    def vars_for_template(player: Player):
      if player.matrix == "":
        matrix_size = 5
        random_matrix = [[random.randint(0, 1) for _ in range(matrix_size)] for _ in range(matrix_size)]
        correct_sum = sum(sum(row) for row in random_matrix)
        player.matrix = json.dumps(random_matrix)  # This converts the matrix to a string
        player.sum_of_numbers = correct_sum
        #Load the matrix from the player's field
        matrix_to_display = json.loads(player.matrix)
        progress_percent = (player.round_number / C.NUM_ROUNDS) * 100
        treatment = player.participant.treatment if 'treatment' in player.participant.vars else None
      return {
        'matrix': matrix_to_display,
        'progress_percent': progress_percent,
        'treatment': treatment,
      }

Start.html: 
{% if treatment == 'Treatment1' or treatment == 'Treatment2' %}
    <div id="progress-container">
        <div id="progress-bar" style="width: {{ progress_percent }}%;"></div>
    </div>
{% endif %}

I hope someone can help
Many thanks

#2 by mvogeley

My session config is the following:
SESSION_CONFIGS = [
    dict(
        name='control',
        display_name="Control Group",
        app_sequence=['count'],
        num_demo_participants=1,
        treatment='control',
    ),
    dict(
        name='treatment1',
        display_name="Treatment 1",
        app_sequence=['count'],
        num_demo_participants=1,
        treatment='treatment1',
    ),
    dict(
        name='treatment2',
        display_name="Treatment 2",
        app_sequence=['count'],
        num_demo_participants=1,
        treatment='treatment2',
    ),
    # ... other session configurations ...
]

It still creates the treatments randomly, but i actually want to choose explicitly which treatment to play

Write a reply

Set forum username