from otree.api import ( models, widgets, BaseConstants, BaseSubsession, BaseGroup, BasePlayer, Currency as c, currency_range, ) class Constants(BaseConstants): name_in_url = 'quest_demo' players_per_group = None num_rounds = 1 class Subsession(BaseSubsession): pass class Group(BaseGroup): pass class Player(BasePlayer): task_start_1 = models.FloatField() task_time_1 = models.FloatField() num_errors = models.IntegerField() genre = models.IntegerField( choices=[ [0, 'Un homme'], [1, 'Une femme'], ], widget=widgets.RadioSelectHorizontal, label="1 - Vous êtes ...", blank=False ) age = models.IntegerField( choices=[ [0, '0-17 ans'], [1, '18-25 ans'], [2, '26-35 ans'], [3, '36-45 ans'], [4, '46-55 ans'], [5, '56-65 ans'], [6, 'plus de 65 ans'], ], widget=widgets.RadioSelectHorizontal, label="2 - Quel est votre âge ?", blank=False, min = 0, max = 100, ) pays = models.StringField( label="3 - Quel est votre pays de résidence ?", blank=False, ) code_postal = models.IntegerField( label="4 - Quel est votre code postale ?", blank=False, min = 0, max = 99999, ) salaire = models.IntegerField( choices=[ [0, 'Moins de 1250 €'], [1, 'Entre 1250 et 1400 €'], [2, 'Entre 1400 et 1550 €'], [3, 'Entre 1550 et 1700 €'], [4, 'Entre 1700 et 1850 €'], [5, 'Entre 1850 et 2050 €'], [6, 'Entre 2050 et 2350 €'], [7, 'Entre 2350 et 2800 €'], [8, 'Entre 2800 et 3700 €'], [9, 'Plus de 3700 €'], ], widget=widgets.RadioSelect, label="5 - Quel est approximativement votre niveau de salaire mensuel ?", blank=False ) socio_pro = models.IntegerField( choices=[ [0, 'agriculteurs exploitants'], [1, 'artisans, commerçants et chefs d''entreprise'], [2, 'cadres et professions intellectuelles supérieures'], [3, 'professions intermédiaires (cadres moyens)'], [4, 'employés et personnel de service'], [5, 'ouvriers qualifiés'], [6, 'manœuvres et ouvriers spécialisés'], [7, 'autres personnes sans activité professionnelle'], [8, 'étudiant'], ], widget=widgets.RadioSelect, label="6 - Quelle est/était votre catégorie socio-professionnelle ?", blank=False ) annee_naissance = models.IntegerField( label="7 - Quelle est votre année de naissance ?", blank=False, min=1900, max=2010, ) etudes = models.IntegerField( choices=[ [0, 'Aucun diplôme ou certificat d’études primaires'], [1, 'Brevet des collèges'], [2, 'CAP, BEP ou équivalent'], [3, 'Baccalauréat, brevet professionnel ou équivalent'], [4, 'Diplôme du supérieur court (niveau bac +2)'], [5, 'Diplôme du supérieur long (supérieur à bac +2)'], ], widget=widgets.RadioSelect, label="8 - Quel est le plus haut diplôme que vous avez obtenu ? Si toujours étudiant, quel est le diplôme dans lequel vous êtes actuellement inscrit ?", blank=False ) police_question1 = models.IntegerField( choices=[ [0, 'Très satisfaisante'], [1, 'Satisfaisante'], [2, 'Peu satisfaisante'], [3, 'Pas du tout satisfaisante'], ], widget=widgets.RadioSelectHorizontal, label="9 - A propos de l’action en général de la police ou de la gendarmerie nationale dans la société française actuelle, vous diriez généralement qu’elle est …", blank=False ) police_question2 = models.IntegerField( choices=[ [0, 'Souvent'], [1, 'De temps en temps'], [2, 'Rarement'], [3, 'Jamais'], ], widget=widgets.RadioSelectHorizontal, label="10 - Vous arrive-t-il personnellement de vous sentir en insécurité dans votre quartier ou votre village ?", blank=False ) police_question3 = models.IntegerField( choices=[ [0, 'Pas du tout d’accord'], [1, 'Plutôt pas d’accord'], [2, 'Plutôt d’accord'], [3, 'Tout à fait d’accord'], ], widget=widgets.RadioSelectHorizontal, label="11 - Imaginons que dans le futur vous soyez la victime d’un vol. Vous êtes certain d’aller le déclarer auprès de la police.", blank=False )