示例#1
0
文件: views.py 项目: mpasalic/verifyy
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))
示例#2
0
文件: views.py 项目: mpasalic/verifyy
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)})