from otree.api import * c = cu doc = '' class C(BaseConstants): NAME_IN_URL = 'M2' PLAYERS_PER_GROUP = None NUM_ROUNDS = 1 MUSIC = ('1 ', '2 ', '3 ', '4 ', '5 ', '6 ', '7 ', '8 ', '9 ', '10', '11', '12', '13 ', '14', '15 ', '16 ', '17 ', '18 ', '19 ', '20', '21 ', '22 ', '23 ', '24 ', '25 ', '26 ', '27 ', '28') class Subsession(BaseSubsession): pass class Group(BaseGroup): pass class Player(BasePlayer): playlist = models.IntegerField(choices=[[1, "Une playlist avec seulement des musiques correspondant aux styles que j'ai l'habitude d'écouter."], [2, "Une playlist avec 2 musiques de styles que j'ai l'habitude d'écouter et 2 musiques d'autres styles."], [3, "Une playlist avec seulement des musiques s'éloignant de mes styles habituels."]], label=' ', widget=widgets.RadioSelect) ecoutemonde = models.IntegerField(choices=[[0, 'Non'], [1, 'Oui']], label='de la musique du monde', widget=widgets.RadioSelectHorizontal) FreqMusic = models.IntegerField(choices=[[1, 'Tous les jours'], [2, 'Plusieurs fois par semaine'], [3, 'Plusieurs fois par mois'], [4, 'Quelques fois par an'], [5, 'Jamais ']], label='• De manière plus générale, à quelle fréquence écoutez-vous de la musique ? ', widget=widgets.RadioSelectHorizontal) age = models.IntegerField(label='Âge') gender = models.StringField(choices=[['Un homme ', 'Un homme '], ['Une Femme ', 'Une femme '], ['Autre', 'Autre']], label='Vous êtes ') etudes = models.StringField(choices=[['Pas le bac', 'Pas le bac'], ['Bac', 'Bac'], ['Bac+1 ', 'Bac +1 '], ['Bac+2', 'Bac +2'], ['Bac+3', 'Bac +3'], ['Bac+4', 'Bac +4'], ['Bac+5', 'Bac +5'], ['Au delà de Bac +5', 'Au delà de Bac +5']], label="Quel est le plus haut niveau d'étude que vous ayez atteint ?") PCS = models.StringField(choices=[['Étudiant', 'Étudiant'], ['Cadres et professions intellectuelles supérieures', 'Cadres et professions intellectuelles supérieures'], ['Professions intermédiaires', 'Professions intermédiaires'], ['Chômeur', 'Chômeur'], ['Retraité', 'Retraité'], ['Inactif', 'Inactif (hors étudiants)'], ['Ouvriers', 'Ouvriers'], ['Agriculteurs exploitants', 'Agriculteurs exploitants'], ["Artisans, commerçants et chefs d'entreprises", "Artisans, commerçants et chefs d'entreprises"], ['Employés', 'Employé']], label='Votre statut actuel') Domaine = models.StringField(choices=[['Sciences et technologies', 'Sciences et technologies'], ['Lettres, langue, art', 'Lettres, langue, art'], ['Sciences humaines et sociales', 'Sciences humaines et sociales'], ['droit et sciences politiques', 'droit et sciences politiques'], ['Économie et gestion', 'Économie et gestion'], ['Santé', 'Santé'], ['Sport', 'Sport'], ['Autre', 'Autre']], label='Votre domaine de spécialité') contact = models.StringField(label='E-mail') connu = models.LongStringField(label='Parmi ces musiques, lesquelles connaissez-vous déjà ?') humeur = models.StringField(choices=[['Très malheureux(se)', 'Très malheureux(se)'], ['Malheureux(se)', 'Malheureux(se)'], ['Légèrement malheureux(se)', 'Légèrement malheureux(se)'], ['Neutre', 'Neutre'], ['Légèrement heureux(se)', 'Légèrement heureux(se)'], ['Heureux(se)', 'Heureux(se)'], ['Très heureux(se)', 'Très heureux(se)']], label='Comment vous sentez-vous sur le plan émotionnel en ce moment ? ') souvent_rap = models.StringField(choices=[['1', 'Oui'], ['0', 'Non']], label='• du Rap ?', widget=widgets.RadioSelectHorizontal) souvent_pop = models.StringField(choices=[['1', ' Oui'], ['0', 'Non']], label='• De la Pop ou de la variété ?', widget=widgets.RadioSelectHorizontal) souvent_rock = models.StringField(choices=[['1', ' Oui'], ['0', 'Non']], label='• du Rock ?', widget=widgets.RadioSelectHorizontal) souvent_electro = models.StringField(choices=[['1', ' Oui'], ['0', 'Non']], label='• De la Musique electro ?', widget=widgets.RadioSelectHorizontal) souvent_monde = models.StringField(choices=[['1', ' Oui'], ['0', 'Non']], label='• De la Musique du monde ? (Ex: latino, reggae...)', widget=widgets.RadioSelectHorizontal) souvent_classique = models.StringField(choices=[['1', ' Oui'], ['0', 'Non']], label='• De la Musique classique ?', widget=widgets.RadioSelectHorizontal) souvent_jazz = models.StringField(choices=[['1', ' Oui'], ['0', 'Non']], label='• Du Jazz ?', widget=widgets.RadioSelectHorizontal) pref2 = models.IntegerField(choices=[[1, 'Pop et variété'], [2, 'Rap '], [3, 'Rock'], [4, 'Musique électro'], [5, 'Musique du monde'], [6, 'Musique Classique'], [7, 'Jazz']], label='• Parmi ces styles, lequel classeriez vous comme étant votre seconde préférence ?') pref1 = models.IntegerField(choices=[[1, 'Pop et variété'], [2, 'Rap'], [3, 'Rock'], [4, 'Musique électro'], [5, 'Musique du monde'], [6, 'Musique Classique'], [7, 'Jazz']], label='• Parmi ces styles, lequel classeriez vous comme étant votre préféré ?') playlist100 = models.IntegerField(choices=[[1, '1 (prêt(e) à payer le plus)'], [2, '2'], [3, '3 (prêt(e) à payer le moins)']], label="• Playlist 1 : seulement des musiques des deux styles que j'aime le plus.", widget=widgets.RadioSelectHorizontal) playlist50 = models.IntegerField(choices=[[1, '1 (prêt(e) à payer le plus)'], [2, '2'], [3, '3 (prêt(e) à payer le moins)']], label="• Playlist 2 : 2 musiques des styles que j'aime le plus et 2 musiques d'autres styles.", widget=widgets.RadioSelectHorizontal) playlist0 = models.IntegerField(choices=[[1, '1 (prêt(e) à payer le plus)'], [2, '2'], [3, '3 (prêt(e) à payer le moins)']], label='• Playlist 3 : seulement des musiques de styles ne figurant pas parmi mes deux styles préférés.', widget=widgets.RadioSelectHorizontal) song2 = models.StringField() song1 = models.StringField() song3 = models.StringField() song4 = models.StringField() lieu = models.StringField(label='\xa0Dans quelle ville résidez-vous actuellement ?') logement = models.StringField(choices=[['Maison individuelle', 'Maison individuelle'], ['Appartement sans étage', 'Appartement sans étage'], ['Duplex', 'Duplex'], ['Triplex', 'Triplex'], ['Villa ', 'Villa '], ['Bungalow', 'Bungalow']], initial='Quel est votre type de logement ?', label='Quel est votre type de logement ?') avis1 = models.LongStringField(blank=True, label='Donnez-nous brièvement votre avis sur la première musique de la playlist :') avis2 = models.LongStringField(blank=True, label='Donnez-nous brièvement votre avis sur la deuxième musique de la playlist :') avis3 = models.LongStringField(blank=True, label='Donnez-nous brièvement votre avis sur la troisième musique de la playlist :') avis4 = models.LongStringField(blank=True, label='Donnez-nous brièvement votre avis sur la dernière musique de la playlist :') big51 = models.StringField(choices=[["Tout à fait d'accord", "Tout à fait d'accord"], ["D'accord", "D'accord"], ["Ni d'accord ni en désaccord", "Ni d'accord ni en désaccord"], [" Pas d'accord", " Pas d'accord"], ["Pas du tout d'accord", "Pas du tout d'accord"]], label="• J'aime explorer de nouvelles idées, des théories et des perspectives. ", widget=widgets.RadioSelectHorizontal) big52 = models.StringField(choices=[["Tout à fait d'accord", "Tout à fait d'accord"], ["D'accord", "D'accord"], ["Ni d'accord ni en désaccord", "Ni d'accord ni en désaccord"], ["Pas d'accord", "Pas d'accord"], ["Pas du tout d'accord", "Pas du tout d'accord"]], label="• J'aime expérimenter de nouvelles façons de faire les choses. ", widget=widgets.RadioSelectHorizontal) big53 = models.StringField(choices=[["Tout à fait d'accord", "Tout à fait d'accord"], ["D'accord", "D'accord"], ["Ni d'accord ni en désaccord", "Ni d'accord ni en désaccord"], ["Pas d'accord", "Pas d'accord"], ["Pas du tout d'accord", "Pas du tout d'accord"]], label='• Je suis curieux(se) de savoir comment les choses fonctionnent. ', widget=widgets.RadioSelectHorizontal) big54 = models.StringField(choices=[["Tout à fait d'accord", "Tout à fait d'accord"], ["D'accord", "D'accord"], ["Ni d'accord ni en désaccord", "Ni d'accord ni en désaccord"], ["Pas d'accord", "Pas d'accord"], ["Pas du tout d'accord", "Pas du tout d'accord"]], label="• J'aime les idées abstraites et les concepts théoriques. ", widget=widgets.RadioSelectHorizontal) big55 = models.StringField(choices=[["Tout à fait d'accord", "Tout à fait d'accord"], ["D'accord", "D'accord"], ["Ni d'accord ni en désaccord", "Ni d'accord ni en désaccord"], ["Pas d'accord", "Pas d'accord"], ["Pas du tout d'accord", "Pas du tout d'accord"]], label="• J'aime apprendre de nouvelles choses dans différents domaines. ", widget=widgets.RadioSelectHorizontal) big56 = models.StringField(choices=[["Tout à fait d'accord", "Tout à fait d'accord"], ["D'accord", "D'accord"], ["Ni d'accord ni en désaccord", "Ni d'accord ni en désaccord"], ["Pas d'accord", "Pas d'accord"], ["Pas du tout d'accord", "Pas du tout d'accord"]], label='• Je préfère la variété à la routine. ', widget=widgets.RadioSelectHorizontal) big57 = models.StringField(choices=[["Tout à fait d'accord", "Tout à fait d'accord"], ["D'accord", "D'accord"], ["Ni d'accord ni en désaccord", "Ni d'accord ni en désaccord"], ["Pas d'accord", "Pas d'accord"], ["Pas du tout d'accord", "Pas du tout d'accord"]], label='• Je suis ouvert(e) aux idées et aux opinions des autres.', widget=widgets.RadioSelectHorizontal) big58 = models.StringField(choices=[["Tout à fait d'accord", "Tout à fait d'accord"], ["D'accord", "D'accord"], ["Ni d'accord ni en désaccord", "Ni d'accord ni en désaccord"], ["Pas d'accord", "Pas d'accord"], ["Pas du tout d'accord", "Pas du tout d'accord"]], label="• Je suis attiré(e) par l'art, la musique et la littérature. ", widget=widgets.RadioSelectHorizontal) big59 = models.StringField(choices=[["Tout à fait d'accord", "Tout à fait d'accord"], ["D'accord", "D'accord"], ["Ni d'accord ni en désaccord", "Ni d'accord ni en désaccord"], ["Pas d'accord", "Pas d'accord"], ["Pas du tout d'accord", "Pas du tout d'accord"]], label="• J'aime découvrir de nouvelles cultures, de nouveaux pays et de nouvelles personnes. ", widget=widgets.RadioSelectHorizontal) big510 = models.StringField(choices=[["Tout à fait d'accord", "Tout à fait d'accord"], ["D'accord", "D'accord"], ["Ni d'accord ni en désaccord", "Ni d'accord ni en désaccord"], ["Pas d'accord", "Pas d'accord"], ["Pas du tout d'accord", "Pas du tout d'accord"]], label='• Je suis imaginatif(ve) et créatif(ve).', widget=widgets.RadioSelectHorizontal) onze = models.StringField(choices=[["Tout à fait d'accord", "Tout à fait d'accord"], ["D'accord", "D'accord"], ["Ni d'accord ni en désaccord", "Ni d'accord ni en désaccord"], ["Pas d'accord", "Pas d'accord"], ["Pas du tout d'accord", "Pas du tout d'accord"]], label='• Je pense que les personnes qui ont fait des études plus longues ont une meilleure connaissance du domaine musical.', widget=widgets.RadioSelectHorizontal) peinture = models.StringField(choices=[['Pas du tout', 'Pas du tout'], ['Peu', 'Peu'], ['Un peu', 'Un peu'], ['Beaucoup', 'Beaucoup'], ['Énormément', 'Énormément']], label='• à la peinture ', widget=widgets.RadioSelectHorizontal) sculpture = models.StringField(choices=[['Pas du tout', 'Pas du tout'], ['Peu', 'Peu'], ['Un peu', 'Un peu'], ['Beaucoup', 'Beaucoup'], ['Énormément', 'Énormément']], label='• à la sculpture', widget=widgets.RadioSelectHorizontal) theatre = models.StringField(choices=[['Pas du tout', 'Pas du tout'], ['Peu', 'Peu'], ['Un peu', 'Un peu'], ['Beaucoup', 'Beaucoup'], ['Énormément', 'Énormément']], label='• au théâtre', widget=widgets.RadioSelectHorizontal) danse = models.StringField(choices=[['Pas du tout', 'Pas du tout'], ['Peu', 'Peu'], ['Un peu', 'Un peu'], ['Beaucoup', 'Beaucoup'], ['Énormément', 'Énormément']], label='• à la danse', widget=widgets.RadioSelectHorizontal) litterature = models.StringField(choices=[['Pas du tout', 'Pas du tout'], ['Peu', 'Peu'], ['Un peu', 'Un peu'], ['Beaucoup', 'Beaucoup'], ['Énormément', 'Énormément']], label='• à la littérature (ou autre lectures) ', widget=widgets.RadioSelectHorizontal) musique = models.StringField(choices=[['Pas du tout', 'Pas du tout'], ['Peu', 'Peu'], ['Un peu', 'Un peu'], ['Beaucoup', 'Beaucoup'], ['Énormément', 'Énormément']], label='• à la musique', widget=widgets.RadioSelectHorizontal) cinema = models.StringField(choices=[['Pas du tout', 'Pas du tout'], ['Peu', 'Peu'], ['Un peu', 'Un peu'], ['Beaucoup', 'Beaucoup'], ['Énormément', 'Énormément']], label='• au cinéma', widget=widgets.RadioSelectHorizontal) playlist2 = models.FloatField(label='• la playlist 2', max=4, min=0) pricerandom = models.FloatField() section = models.IntegerField(initial=0) playlist1 = models.FloatField(label='• la playlist 1', max=4, min=0) playlisthasard = models.FloatField() reste = models.FloatField() def musik(player: Player): music=["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28"] if player.pref1 != 1and player.pref2 != 1: del music[music.index('1')] del music[music.index('2')] del music[music.index('3')] del music[music.index('4')] #else : music = music if player.pref1 != 2 and player.pref2 != 2: del music[music.index('5')] del music[music.index('6')] del music[music.index('7')] del music[music.index('8')] #else : music = music if player.pref1 != 3 and player.pref2 != 3: del music[music.index('9')] del music[music.index('10')] del music[music.index('11')] del music[music.index('12')] #else : music = music50(player) if player.pref1 != 4 and player.pref2 != 4 : del music[music.index('13')] del music[music.index('14')] del music[music.index('15')] del music[music.index('16')] #else : music = music if player.pref1 != 5 and player.pref2 != 5 : del music[music.index('17')] del music[music.index('18')] del music[music.index('19')] del music[music.index('20')] #else : music = music if player.pref1 != 6 and player.pref2 != 6 : del music[music.index('21')] del music[music.index('22')] del music[music.index('23')] del music[music.index('24')] #else : music = music if player.pref1 != 7 and player.pref2 != 7 : del music[music.index('25')] del music[music.index('26')] del music[music.index('27')] del music[music.index('28')] #else : music = music import random song1 = random.choice(music) del music[music.index(song1)] song2 = random.choice(music) del music[music.index(song2)] song3 = random.choice(music) del music[music.index(song3)] song4 = random.choice(music) youhou = [song1,song2,song3, song4] player.song1 = song1 player.song2 = song2 player.song3 = song3 player.song4 = song4 return youhou def music50(player: Player): musicy=["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28"] musicn=["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28"] if player.pref1 != 1 and player.pref2 != 1: del musicy[musicy.index('1')] del musicy[musicy.index('2')] del musicy[musicy.index('3')] del musicy[musicy.index('4')] #else : music = music if player.pref1 != 2 and player.pref2 != 2: del musicy[musicy.index('5')] del musicy[musicy.index('6')] del musicy[musicy.index('7')] del musicy[musicy.index('8')] #else : music = music if player.pref1 != 3 and player.pref2 != 3: del musicy[musicy.index('9')] del musicy[musicy.index('10')] del musicy[musicy.index('11')] del musicy[musicy.index('12')] #else : music = music50(player) if player.pref1 != 4 and player.pref2 != 4 : del musicy[musicy.index('13')] del musicy[musicy.index('14')] del musicy[musicy.index('15')] del musicy[musicy.index('16')] #else : music = music if player.pref1 != 5 and player.pref2 != 5 : del musicy[musicy.index('17')] del musicy[musicy.index('18')] del musicy[musicy.index('19')] del musicy[musicy.index('20')] #else : music = music if player.pref1 != 6 and player.pref2 != 6 : del musicy[musicy.index('21')] del musicy[musicy.index('22')] del musicy[musicy.index('23')] del musicy[musicy.index('24')] #else : music = music if player.pref1 != 7 and player.pref2 != 7 : del musicy[musicy.index('25')] del musicy[musicy.index('26')] del musicy[musicy.index('27')] del musicy[musicy.index('28')] #else : music = music #Partie non on garde ceux qu'il n'aime pas if player.pref1 == 1 or player.pref2 == 1: del musicn[musicn.index('1')] del musicn[musicn.index('2')] del musicn[musicn.index('3')] del musicn[musicn.index('4')] #else : musicn = musicn if player.pref1 == 2 or player.pref2 == 2: del musicn[musicn.index('5')] del musicn[musicn.index('6')] del musicn[musicn.index('7')] del musicn[musicn.index('8')] #else : musicn = musicn if player.pref1 == 3 or player.pref2 == 3: del musicn[musicn.index('9')] del musicn[musicn.index('10')] del musicn[musicn.index('11')] del musicn[musicn.index('12')] #else : musicn = musicn50(player) if player.pref1 == 4 or player.pref2 == 4 : del musicn[musicn.index('13')] del musicn[musicn.index('14')] del musicn[musicn.index('15')] del musicn[musicn.index('16')] #else : musicn = musicn if player.pref1 == 5 or player.pref2 == 5 : del musicn[musicn.index('17')] del musicn[musicn.index('18')] del musicn[musicn.index('19')] del musicn[musicn.index('20')] #else : musicn = musicn if player.pref1 == 6 or player.pref2 == 6 : del musicn[musicn.index('21')] del musicn[musicn.index('22')] del musicn[musicn.index('23')] del musicn[musicn.index('24')] #else : musicn = musicn if player.pref1 == 7 or player.pref2 == 7 : del musicn[musicn.index('25')] del musicn[musicn.index('26')] del musicn[musicn.index('27')] del musicn[musicn.index('28')] #else : musicn = musicn import random song1 = random.choice(musicy) del musicy[musicy.index(song1)] song2 = random.choice(musicy) del musicy[musicy.index(song2)] song3 = random.choice(musicn) del musicn[musicn.index(song3)] song4 = random.choice(musicn) youhou2 = [song1,song2,song3, song4] player.song1 = song1 player.song2 = song2 player.song3 = song3 player.song4 = song4 return youhou2 def music0(player: Player): music0=["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28"] if player.pref1 == 1 : del music0[music0.index('1')] del music0[music0.index('2')] del music0[music0.index('3')] del music0[music0.index('4')] if player.pref1 ==2 : del music0[music0.index('5')] del music0[music0.index('6')] del music0[music0.index('7')] del music0[music0.index('8')] if player.pref1 == 3 : del music0[music0.index('9')] del music0[music0.index('10')] del music0[music0.index('11')] del music0[music0.index('12')] if player.pref1 == 4 : del music0[music0.index('13')] del music0[music0.index('14')] del music0[music0.index('15')] del music0[music0.index('16')] if player.pref1 == 5 : del music0[music0.index('17')] del music0[music0.index('18')] del music0[music0.index('19')] del music0[music0.index('20')] if player.pref1 == 6 : del music0[music0.index('21')] del music0[music0.index('22')] del music0[music0.index('23')] del music0[music0.index('24')] if player.pref1 == 7 : del music0[music0.index('25')] del music0[music0.index('26')] del music0[music0.index('27')] del music0[music0.index('28')] #partie oui pref 2 if player.pref1!=1 : if player.pref2 == 1 : del music0[music0.index('1')] del music0[music0.index('2')] del music0[music0.index('3')] del music0[music0.index('4')] if player.pref1!=2 : if player.pref2 == 2 : del music0[music0.index('5')] del music0[music0.index('6')] del music0[music0.index('7')] del music0[music0.index('8')] if player.pref1!=3 : if player.pref2 == 3 : del music0[music0.index('9')] del music0[music0.index('10')] del music0[music0.index('11')] del music0[music0.index('12')] if player.pref1!=4 : if player.pref2 == 4 : del music0[music0.index('13')] del music0[music0.index('14')] del music0[music0.index('15')] del music0[music0.index('16')] if player.pref1!=5 : if player.pref2 == 5 : del music0[music0.index('17')] del music0[music0.index('18')] del music0[music0.index('19')] del music0[music0.index('20')] if player.pref1!=6 : if player.pref2 == 6 : del music0[music0.index('21')] del music0[music0.index('22')] del music0[music0.index('23')] del music0[music0.index('24')] if player.pref1!=7 : if player.pref2 == 7: del music0[music0.index('25')] del music0[music0.index('26')] del music0[music0.index('27')] del music0[music0.index('28')] from random import choice print (music0) for i in music0: music01 = choice(music0) del music0[music0.index(music01)] for j in music0: music02 = choice(music0) del music0[music0.index(music02)] for k in music0: music03 = choice(music0) del music0[music0.index(music03)] for y in music0: music04 = choice(music0) del music0[music0.index(music04)] list0 = [music01, music02, music03, music04] player.song1 = music01 player.song2 = music02 player.song3 = music03 player.song4 = music04 return list0 def prixrandom(player: Player): import random player.pricerandom = round(random.uniform(0, 4), 2) def playlistrandom(player: Player): from random import choice sequence = [1,2] print(sequence) for _ in range(3): player.playlisthasard = choice(sequence) def categorie(player: Player): if player.playlist1 < player.pricerandom : if player.playlisthasard==1 : player.section = 0 if player.playlist1 >= player.pricerandom : if player.playlisthasard == 1: player.section = 1 if player.playlist2 < player.pricerandom: if player.playlisthasard ==2: player.section = 2 if player.playlist2 >= player.pricerandom: if player.playlisthasard ==2: player.section = 3 return(player.section) def somme(player: Player): player.reste = 4-player.pricerandom player.reste = round(player.reste, 2) return(player.reste) class Consentement(Page): form_model = 'player' class Profile(Page): form_model = 'player' form_fields = ['gender', 'age', 'Domaine', 'etudes', 'PCS', 'humeur', 'logement', 'lieu'] class OpennessExperience(Page): form_model = 'player' form_fields = ['big51', 'big52', 'big53', 'big54', 'big55', 'big56', 'big57', 'big58', 'big59', 'big510', 'onze'] class Culture(Page): form_model = 'player' form_fields = ['peinture', 'sculpture', 'theatre', 'danse', 'litterature', 'musique', 'cinema'] class Musique(Page): form_model = 'player' form_fields = ['souvent_pop', 'souvent_rap', 'souvent_rock', 'souvent_electro', 'souvent_monde', 'souvent_classique', 'souvent_jazz', 'FreqMusic', 'pref1', 'pref2'] @staticmethod def error_message(player: Player, values): if values['pref1'] == values['pref2'] : return "Vous devez sélectionner deux styles différents pour exprimer votre première et deuxième préférence." class Choix(Page): form_model = 'player' form_fields = ['playlist1', 'playlist2'] @staticmethod def vars_for_template(player: Player): playlistrandom(player) prixrandom(player) if player.pref1 == 1 : a= "la pop" if player.pref1 == 2 : a= "le rap" if player.pref1 == 3 : a= "le rock" if player.pref1 == 4 : a= "la musique électro" if player.pref1 == 5 : a= "la musique du monde" if player.pref1 == 6 : a= "la musique classique" if player.pref1 == 7 : a= "le jazz" if player.pref2 == 1 : b= "la pop" if player.pref2 == 2 : b= "le rap" if player.pref2 == 3 : b= "le rock" if player.pref2 == 4 : b= "la musique électro" if player.pref2 == 5 : b= "la musique du monde" if player.pref2 == 6 : b= "la musique classique" if player.pref2 == 7 : b= "le jazz" return dict(a=a, b=b, c=prixrandom(player),d=player.playlisthasard) class Resultat(Page): form_model = 'player' form_fields = ['avis1', 'avis2', 'avis3', 'avis4'] @staticmethod def vars_for_template(player: Player): categorie(player) somme(player) return dict(h=musik(player),j=music0(player),k=prixrandom(player),l=playlistrandom(player), m=categorie(player), n=somme(player)) class Fin(Page): form_model = 'player' page_sequence = [Consentement, Profile, OpennessExperience, Culture, Musique, Choix, Resultat, Fin]