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]