from otree.api import ( models, widgets, BaseConstants, BaseSubsession, BaseGroup, BasePlayer, Currency as c, currency_range ) from django.forms import widgets as d_widgets import random doc = ''' This app is the investment decision with two assets. ''' class Constants(BaseConstants): name_in_url = 'ChooseAdvisor' players_per_group = None num_rounds = 2 menu= [ ("ai_min","Uses artificial intelligence (A.I.) to minimize risk."), ("ai_max","Uses artificial intelligence (A.I.) to maximize return."), ("ai_tax","Uses artificial intelligence (A.I.) to reduce total taxes."), ("ml_min","Uses machine learning to minimize risk."), ("ml_max","Uses machine learning to maximize return."), ("ml_tax","Uses machine learning to reduce total taxes."), ("al_min","Uses algorithms to minimize risk."), ("al_max","Uses algorithms to maximize return."), ("al_tax","Uses algorithms to reduce total taxes."), ("hu_min","Financial advisors choose strategy to minimize risk."), ("hu_max","Financial advisors choose strategy to maximize return."), ("hu_tax","Financial advisors choose strategy to reduce total taxes."), ] class Subsession(BaseSubsession): pass class Group(BaseGroup): pass class Player(BasePlayer): def new_match(self,tup): if "fighters" in self.participant.vars: if (tup[0][0],tup[1][0]) in self.participant.vars["fighters"]: return False elif (tup[1][0],tup[0][0]) in self.participant.vars["fighters"]: return False else: return True else: self.participant.vars["fighters"]=[] return True # contestants = self.get_fighters() # contestants = [] justification = models.LongStringField() choice = models.StringField(widget=widgets.RadioSelect) risk = models.StringField(choices = [("low","Low"),("med","Med"),("high","High")],widget=widgets.RadioSelect) port_val = models.FloatField()