def add_bot_v(request, form = 0): if form == 0: form = BotForm() if request.method == 'POST': form = BotForm(request.POST, request.FILES) if form.is_valid(): # get challenge challenge = Challenge.objects.get( id = form.data["target_challenge"] ) # create directory for a bot directory = challenge.directory + "bots/" + form.data["name"].replace(" ", "_") + "/" os.makedirs(directory) # upload source file upload_file(directory, request.FILES['source_file']) # gather data program = Program(compiler = Compiler.objects.get(id = form.data["compiler"]), source_file = directory + request.FILES['source_file'].name ) program.save() bot = Bot( name = form.data["name"], playing_program = program, directory = directory, owner = request.user, target_challenge = challenge) # delay compilation recent_action = RecentAction(owner = request.user, message = "Bot validation: " + bot.name + " (for challenge: " + challenge.title + ")", state = ActionState.objects.get(name = 'IN_QUEUE')) recent_action.save() chain(compile_bot.si(bot, recent_action), enqueue_bots_battles.si(bot)).apply_async() return HttpResponseRedirect('/successful/') return render_to_response('ChallengeManagement/add_bot.xhtml', { "form": form, "title" : "Add Bot" }, context_instance = RequestContext(request));
def redirect_add_bot_v(request, challenge_id): form = BotForm( initial = {'target_challenge' : challenge_id}) form.data['target_challenge'] = challenge_id print challenge_id return add_bot_v(request, form)