def create_experiment(request): if not request.user.is_authenticated(): return login(request) errmsg = ["Please fill out all fields"] exp = Experiment() choicesX = [] choicesY = [] try: exp.x_name = request.POST['x'] exp.y_name = request.POST['y'] exp.description = request.POST['desc'] exp.x_units = request.POST['xunits'] exp.y_units = request.POST['yunits'] exp.x_type = request.POST['xtype'] exp.y_type = request.POST['ytype'] exp.user = request.user exp.vote = 0 def process_choices(var, vartype, errmsg): if vartype != 'c': return [] options = [] i = 0 while ('choice_%s_%d' % (var, i)) in request.POST: option = ChoiceOptions() option.option = request.POST[('choice_%s_%d' % (var, i))].strip() if len(option.option) > 0: option.order = i option.var = var options.append(option) i = i + 1 if len(options) < 2: errmsg[0] = "You must specify at least 2 different states for %s" % var raise KeyError(errmsg) return options choicesX = process_choices('x', exp.x_type, errmsg) choicesY = process_choices('y', exp.y_type, errmsg) if len(exp.x_name) < 3: errmsg[0] = "The x variable must be at least 3 letters." raise KeyError(errmsg) if len(exp.y_name) < 3: errmsg[0] = "The y variable must be at least 3 letters." raise KeyError(errmsg) if len(exp.description) == 0: errmsg[0] = "You must provide a description." raise KeyError(errmsg) # If we've made it this far, we can save everything now exp.save() for option in choicesX: option.experiment = exp option.save() for option in choicesY: option.experiment = exp option.save() addToIndex(exp) at = fb.get_auth_token(request) fb.put_wall(at, "I just created an experiment called `%s` on VerifyY, come check it out!" % (exp.y_name + " with " + exp.x_name) ) except (KeyError): return render_to_response('new_experiment.html', {'error_message':errmsg[0], 'request':request, 'exp':exp, 'choicesX':choicesX, 'choicesY':choicesY}) return redirect("/view/%d/" % (exp.id))
def msg(request): at = fb.get_auth_token(request) fb.put_wall(at, "I just created an experiment on VerifyY, come check it out!") #return render_to_response('hello.html', {'code': get_auth_token(request)}) return render_to_response('hello.html', {'code': get_name(at)})