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 job_add(request, job): job_class = get_undiscovered_jobs().get(job) if not job_class: raise Http404() job = job_class() form = get_job_configuration_form(job) return direct_to_template(request, 'cthulhubot/job_add.html', { 'job' : job, 'form' : form, })
def test_parameters_from_command_propagated_to_form_even_if_not_specified_there(self): self.assert_equals(1, len(get_job_configuration_form(self.echo_job).fields))
def test_form_created_with_proper_number_of_fields(self): self.assert_equals(1, len(get_job_configuration_form(self.job).fields))
def test_form_default_values_propagated_to_initials(self): self.assert_equals(0.02, get_job_configuration_form(self.job).initial.get('job_configuration_0'))