174 lines
4.8 KiB
Python
174 lines
4.8 KiB
Python
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
|
||
)
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|