#1 by eizkenmac (edited )
Hi everyone, I encounted a problem when I was tinkering with is_displayed() in the live_bargaining example code(https://s3.amazonaws.com/otreehub/browsable_source/1e38462b-46c7-4ca1-bca5-536462f90131/sequential/index.html). I tried to add is_displayed() to the negotiation page, but I don't know why it doesn't work. I first made two separated pages that only display to player with id_in_group ==1 or 2, and those two pages work as intended; I then tried to add is_displayed so that only players with id_in_group == 1 can see the negotiation page, but somehow both player can see it; I then tried to set the return of is_displayed to false, but the page still appeared. I even deleted the is_finished(initial = False) variable in the group class and the function with it, but the page still appeared, even with return False. Is it just a problem with live pages, or did I do anything wrong? ======== __init.py__ Code snippets (in addition to the live_bargaining code example linked above) ======= # First try with return player.id_in_group == 1 : this didn't work class Player1(Page): @staticmethod def is_displayed(player: Player): return player.id_in_group == 1 class Player2(Page): @staticmethod def is_displayed(player: Player): return player.id_in_group == 2 class Bargain(Page): @staticmethod def is_displayed(player: Player): return player.id_in_group == 1 # Second try with return False : also didn't work class Bargain(Page): @staticmethod def is_displayed(player: Player): return False
#2 by eizkenmac
nvm I found that it's because there is a is_displayed() function at the very bottom of the original code, no worries!