- application = form.cleaned_data['application']
- if '/' in application:
- app_tuple = application.split('/', 1)
- else:
- app_tuple = (application, None)
- desc.application = app_tuple
-
+ direct_map = ('arguments', 'note', 'grant', 'hosts', 'properties', 'queue', 'procs', 'wall_time', 'memory',
+ 'memory_per_slot', 'modules', 'native', 'notify', 'preprocess', 'postprocess', 'persistent')
+
+ for name in direct_map:
+ if form.cleaned_data[name]:
+ setattr(desc, name, form.cleaned_data[name])
+
+ if form.cleaned_data['application']:
+ desc.set_application(*form.cleaned_data['application'])
+ if form.cleaned_data['nodes']:
+ desc.set_nodes(*form.cleaned_data['nodes'])
+ if form.cleaned_data['reservation']:
+ desc.set_reservation(form.cleaned_data['reservation'])
+ if form.cleaned_data['watch_output']:
+ desc.set_watch_output(form.cleaned_data['watch_output'], form.cleaned_data['watch_output_pattern'])
+ desc.env_variables += [(env['name'], env['value'])
+ for env in env_formset.cleaned_data if env and not env['DELETE']]