Example #1
0
def job_assigment_config(request, project, job):
    project = get_object_or_404(Project, slug=project)
    job = get_object_or_404(Job, slug=job)
    job = job.get_domain_object()
    computers = BuildComputer.objects.all().order_by('name')

    computer_form = get_build_computer_selection_form(computers)()
    job_form = get_job_configuration_form(job)
    scheduler_form = get_scheduler_form()

    if request.method == "POST":
        computer_form = get_build_computer_selection_form(computers)(request.POST)
        job_form = get_job_configuration_form(job, post=request.POST)
        scheduler_form = get_scheduler_form(post=request.POST)

        if computer_form.is_valid() and job_form.is_valid() and scheduler_form.is_valid():
            computer = get_object_or_404(BuildComputer, pk=computer_form.cleaned_data['computer'])
            params = get_command_params_from_form_data(job, job_form.cleaned_data)
            params.update(scheduler_form.get_configuration_dict())
            create_job_assignment(computer=computer, job=job, project=project, params=params)
            return HttpResponseRedirect(reverse('cthulhubot-project-detail', kwargs={'project' : project.slug}))


    return direct_to_template(request, 'cthulhubot/job_assigment_config.html', {
        'project' : project,
        'job' : job,
        'job_form' : job_form,
        'computers' : computers,
        'computer_form' : computer_form,
        'scheduler_form' : scheduler_form,
    })
 def _get_form(self, post_dict=None):
     if post_dict:
         post = QueryDict('', mutable=True)
         post.update(post_dict)
     else:
         post = None
     return get_scheduler_form(post)