from otree.api import (
models, widgets, BaseConstants, BaseSubsession, BaseGroup, BasePlayer,
Currency as c, currency_range
)
from django.utils.safestring import mark_safe
import csv
author = 'Abdul Qadir Ibrahim'
doc = """
Stated Preferences
"""
class Constants(BaseConstants):
name_in_url = 'stated_preferences'
players_per_group = None
with open('StatedPreferences/questions.csv') as questions_file:
questions = list(csv.DictReader(questions_file, delimiter=';'))
num_rounds = len(questions)
CHOICES_A = (
('Mädchen sind begabter', mark_safe('👩
Mädchen sind begabter
')), ('Mädchen sind etwas begabter', mark_safe('👩Mädchen sind etwas begabter
')), ('Beide gleich', mark_safe('👩👱Beide gleich
')), ('Burschen sind etwas begabter', mark_safe('👱Burschen sind etwas begabter
')), ('Burschen sind begabter', mark_safe('👱Burschen sind begabter
')), ) CHOICES_B = ( ('Mädchen mehr', mark_safe('👩Mädchen mehr
')), ('Mädchen etwas mehr', mark_safe('👧Mädchen etwas mehr
')), ('Beide gleich', mark_safe('👩👱Beide gleich
')), ('Burschen etwas mehr', mark_safe('👱Burschen etwas mehr
')), ('Burschen mehr', mark_safe('👱Burschen mehr
')), ) CHOICES_C = ( ('Nie', mark_safe('🙁Nie
')), ('Eher selten', mark_safe('😕Eher selten
')), ('Manchmal', mark_safe('😐Manchmal
')), ('Oft', mark_safe('😊Oft
')), ('limmer', mark_safe('😀limmer
')), ) CHOICES_D = ( ('Nein gar nicht', mark_safe('🙁Nein gar nicht
')), ('Eher nein', mark_safe('😕Eher nein
')), ('Etwas', mark_safe('😐Etwas
')), ('Eher ja', mark_safe('😊Eher ja
')), ('Ja sehr', mark_safe('😀Ja sehr
')), ) CHOICES_E = ( ('Nein gar nicht', mark_safe('🙁Nein gar nicht
')), ('Eher nein', mark_safe('😕Eher nein
')), ('Manchmal', mark_safe('😐Manchmal
')), ('Eher ja', mark_safe('😊Eher ja
')), ('Ja sehr', mark_safe('😀Ja sehr
')), ) list_a = [1, 4] list_b = [2, 3, 5, 6] list_c = [7] list_d = [8, 9, 12, 13, 15, 16, 19, 20, 14, 21] list_e = [10, 11, 17, 18] class Subsession(BaseSubsession): def creating_session(self): if self.round_number == 1: self.session.vars['questions'] = Constants.questions.copy() self.session.vars['choices_a'] = Constants.CHOICES_A self.session.vars['choices_b'] = Constants.CHOICES_B self.session.vars['choices_c'] = Constants.CHOICES_C self.session.vars['choices_d'] = Constants.CHOICES_D self.session.vars['choices_e'] = Constants.CHOICES_E for p in self.get_players(): question_data = p.current_question() p.question_id = question_data['id'] p.question = question_data['question'] class Group(BaseGroup): pass class Player(BasePlayer): question_id = models.StringField() question = models.StringField() submitted_answer = models.StringField(widget=widgets.RadioSelectHorizontal) def current_question(self): return self.session.vars['questions'][self.round_number - 1]