def edit_view(self, request):
client = self.config.client
job_config = self.config
data = request.POST or None
job_config._p_activate()
initial_data = dict(job_config.__dict__)
initial_data['paths'] = '\n'.join(initial_data['paths'])
initial_data['excludes'] = '\n'.join(initial_data['excludes'])
form = JobConfigForm(data=data, initial=initial_data)
advanced_form = JobConfigForm.AdvancedForm(data=data, initial=initial_data)
if data and form.is_valid() and advanced_form.is_valid():
config = form.cleaned_data
config.update(advanced_form.cleaned_data)
config['paths'] = config.get('paths', '').split('\n')
config['excludes'] = [s for s in config.get('excludes', '').split('\n') if s]
job_config._update(config)
# TODO StringListValidator
# TODO Pattern validation
# TODO fancy pattern editor with test area
transaction.get().note('Edited job config %s of client %s' % (job_config.oid, client.hostname))
transaction.commit()
return self.redirect_to()
return self.render(request, 'core/client/config_edit.html', {
'client': client,
'form': form,
'advanced_form': advanced_form,
'job_config': job_config,
})
评论列表
文章目录