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 = """ Introductions """ class Constants(BaseConstants): name_in_url = 'introduction' players_per_group = None with open('Introductions/questions.csv') as questions_file: questions = list(csv.DictReader(questions_file, delimiter=';')) num_rounds = len(questions) CHOICES = ( ('Nein, stimmt gar nicht', mark_safe('🙁

Nein, stimmt gar nicht

')), ('Eher nein', mark_safe('😕

Eher nein

')), ('Manchmal', mark_safe('😐

Manchmal

')), ('Eher ja', mark_safe('😊

Eher ja

')), ('Ja stimmt', mark_safe('😀

Ja, stimmt

')), ) GENDER = ( ('Mädchen', mark_safe('👧

Mädchen

')), ('Bube', mark_safe('👦

Bube

')), ) class Subsession(BaseSubsession): def creating_session(self): if self.round_number == 1: self.session.vars['questions'] = Constants.questions.copy() 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]