from otree.api import * c = cu doc = '' class C(BaseConstants): NAME_IN_URL = 'Session2' PLAYERS_PER_GROUP = None NUM_ROUNDS = 1 CONSTANTE = (1, 2, 3, 4, 5) class Subsession(BaseSubsession): pass class Group(BaseGroup): pass class Player(BasePlayer): identification = models.StringField(label='Pour vous identifier, veuillez indiquer votre adresse e-mail.') playlist1002 = 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) playlist502 = 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) playlist02 = 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) pref1 = models.IntegerField(initial=0) pref2 = models.IntegerField(initial=0) traitement = models.IntegerField(initial=0) song1 = models.StringField() song2 = models.StringField() song3 = models.StringField() song4 = models.StringField() def gouts(player: Player): if player.identification == "1" : player.pref1 = 7 player.pref2= 3 if player.identification == "2" : player.pref1 = 4 player.pref2= 5 if player.identification == "3" : player.pref1 = 6 player.pref2= 2 if player.identification == "4" : player.pref1 = 1 player.pref2= 7 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 treatment(player: Player): from random import choice sequence = [i for i in range(4)] print(sequence) for _ in range(4): player.traitement = choice(sequence) class Identification(Page): form_model = 'player' form_fields = ['identification'] @staticmethod def vars_for_template(player: Player): treatment(player) return dict() @staticmethod def error_message(player: Player, values): #if "@" not in values['identification']: # return "Vous devez entrer une adresse e-mail valide" if values['identification'] != "1": if values['identification'] != "2": if values['identification'] != "3": if values['identification'] != "4": return "Nous n'arrivons pas à vous identifier, veuillez vérifier l'adresse que vous venez d'entrer." class Choix(Page): form_model = 'player' form_fields = ['playlist1002', 'playlist502', 'playlist02'] @staticmethod def vars_for_template(player: Player): gouts(player) 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) @staticmethod def error_message(player: Player, values): if values['playlist1002'] == values['playlist502'] == values['playlist02'] : return "Vous devez classer les playlist. Toutes les playlists ne peuvent pas avoir le même classement." if values['playlist1002'] == values['playlist502'] : return "Vous devez classer les playlist. La première et la deuxième playlist ne peuvent pas avoir le même classement." if values['playlist1002'] == values['playlist02'] : return "Vous devez classer les playlist. La première et la dernière playlist ne peuvent pas avoir le même classement." if values['playlist502'] == values['playlist02'] : return "Vous devez classer les playlist. La deuxième et la dernière playlist ne peuvent pas avoir le même classement." class Music4(Page): form_model = 'player' @staticmethod def vars_for_template(player: Player): musik(player) music50(player) music0(player) return dict(h=musik(player),i=music50(player),j=music0(player)) page_sequence = [Identification, Choix, Music4]