from otree.api import * c = cu doc = '' class Constants(BaseConstants): name_in_url = 'Profit' players_per_group = None num_rounds = 1 task1 = 250 task2 = 375 task3 = 500 task4 = 625 task5 = 750 task6 = 875 task7 = 1000 task8 = 1125 task9 = 1250 task10 = 1375 task11 = 1500 task12 = 1625 pretask1 = 135 pretask2 = 235 pretask3 = '是' instructions_template = 'Profit/instructions.html' class Subsession(BaseSubsession): pass class Group(BaseGroup): pass class Player(BasePlayer): discloure1 = models.FloatField(label='公司本季度实现的税前利润为(单位:实验币)', max=1675, min=200) discloure2 = models.FloatField(label='公司本年度实现的净利润为(单位:实验币)', max=1675, min=200) discloure3 = models.FloatField(label='公司本季度实现的税前利润为(单位:实验币)', max=1675, min=200) discloure4 = models.FloatField(label='公司本季度实现的税前利润为(单位:实验币)', max=1675, min=200) discloure5 = models.FloatField(label='公司本季度实现的税前利润为(单位:实验币)', max=1675, min=200) discloure6 = models.FloatField(label='公司本季度实现的税前利润为(单位:实验币)', max=1675, min=200) discloure7 = models.FloatField(label='公司本季度实现的税前利润为(单位:实验币)', max=1675, min=200) discloure8 = models.FloatField(label='公司本季度实现的税前利润为(单位:实验币)', max=1675, min=200) discloure9 = models.FloatField(label='公司本季度实现的税前利润为(单位:实验币)', max=1675, min=200) discloure10 = models.FloatField(label='公司本季度实现的税前利润为(单位:实验币)', max=1675, min=200) discloure11 = models.FloatField(label='公司本季度实现的税前利润为(单位:实验币)', max=1675, min=200) discloure12 = models.FloatField(label='公司本季度实现的税前利润为(单位:实验币)', max=1675, min=200) payoff1 = models.FloatField() payoff2 = models.FloatField() payoff3 = models.FloatField() payoff4 = models.FloatField() payoff5 = models.FloatField() payoff6 = models.FloatField() payoff7 = models.FloatField() payoff8 = models.FloatField() payoff9 = models.FloatField() payoff10 = models.FloatField() payoff11 = models.FloatField() payoff12 = models.FloatField() pre_task1 = models.IntegerField(label='1.假如您对外报告的税前利润为255实验币,您本季度的收益为(单位:实验币)') pre_task2 = models.IntegerField(label='2.假如您对外报告的税前利润为355实验币,您本季度的收益为(单位:实验币)') pre_task3 = models.StringField(label='3.您的报告是否会影响其他利益相关者的收益。(请填写“是”或“否”)') class Start(Page): form_model = 'player' class Introduction(Page): form_model = 'player' class Pre_task(Page): form_model = 'player' form_fields = ['pre_task1', 'pre_task2', 'pre_task3'] @staticmethod def error_message(player, values): if values ['pre_task1'] != Constants.pretask1: return '您未正确回答问题' if values ['pre_task2'] != Constants.pretask2: return '您未正确回答问题' if values ['pre_task3'] != Constants.pretask3: return '您未正确回答问题' class Task6(Page): form_model = 'player' form_fields = ['discloure6'] class Task10(Page): form_model = 'player' form_fields = ['discloure10'] class Task4(Page): form_model = 'player' form_fields = ['discloure4'] class Task7(Page): form_model = 'player' form_fields = ['discloure7'] class Task5(Page): form_model = 'player' form_fields = ['discloure5'] class Task2(Page): form_model = 'player' form_fields = ['discloure2'] class Task8(Page): form_model = 'player' form_fields = ['discloure8'] class Task11(Page): form_model = 'player' form_fields = ['discloure11'] class Task9(Page): form_model = 'player' form_fields = ['discloure9'] class Task1(Page): form_model = 'player' form_fields = ['discloure1'] class Task3(Page): form_model = 'player' form_fields = ['discloure3'] class Task12(Page): form_model = 'player' form_fields = ['discloure12'] @staticmethod def before_next_page(player, timeout_happened): participant = player.participant player.payoff1 = 17.5+(abs(player.discloure1 - Constants.task1))/50 player.payoff2 = 17.5+(abs(player.discloure2 - Constants.task2))/50 player.payoff3 = 17.5+(abs(player.discloure3 - Constants.task3))/50 player.payoff4 = 17.5+(abs(player.discloure4 - Constants.task4))/50 player.payoff5 = 17.5+(abs(player.discloure5 - Constants.task5))/50 player.payoff6 = 17.5+(abs(player.discloure6 - Constants.task6))/50 player.payoff7 = 17.5+(abs(player.discloure7 - Constants.task7))/50 player.payoff8 = 17.5+(abs(player.discloure8 - Constants.task8))/50 player.payoff9 = 17.5+(abs(player.discloure9 - Constants.task9))/50 player.payoff10 = 17.5+(abs(player.discloure10 - Constants.task10))/50 player.payoff11 = 17.5+(abs(player.discloure11 - Constants.task11))/50 player.payoff12 = 17.5+(abs(player.discloure12 - Constants.task12))/50 participant.vars['payoff1'] = player.payoff1 participant.vars['payoff2'] = player.payoff2 participant.vars['payoff3'] = player.payoff3 participant.vars['payoff4'] = player.payoff4 participant.vars['payoff5'] = player.payoff5 participant.vars['payoff6'] = player.payoff6 participant.vars['payoff7'] = player.payoff7 participant.vars['payoff8'] = player.payoff8 participant.vars['payoff9'] = player.payoff9 participant.vars['payoff10'] = player.payoff10 participant.vars['payoff11'] = player.payoff11 participant.vars['payoff12'] = player.payoff12 page_sequence = [Start, Introduction, Pre_task, Task6, Task10, Task4, Task7, Task5, Task2, Task8, Task11, Task9, Task1, Task3, Task12]