self.fields['modules'].choices = modules
if data or initial:
- self._init_user_choices('queue', data, initial)
- self._init_user_choices('arguments', data, initial)
- self._init_user_choices('native', data, initial)
- self._init_user_choices('stage_in', data, initial)
- self._init_user_choices('force_field', data, initial)
+ self._init_user_choices('queue')
+ self._init_user_choices('arguments')
+ self._init_user_choices('native')
+ self._init_user_choices('stage_in')
+ self._init_user_choices('force_field')
+
+ if not hosts:
+ self._init_user_choices('hosts')
+ self._init_user_choices('application')
+ self._init_user_choices('modules')
+
def clean(self):
data = super(JobDescriptionForm, self).clean()
if url:
return url if url.startswith('gsiftp://') else 'gsiftp://' + url
- def _init_user_choices(self, name, data, initial):
- initial = initial.get(name) if initial is not None else None
- choices = data.getlist(name)[:] if data is not None else []
+ def _init_user_choices(self, name):
+ initial = self.initial.get(name)
+ choices = self.data.getlist(name)[:] if self.data else []
if initial:
choices += initial if isinstance(initial, list) else [initial]
- self.fields[name].initial = initial
if choices:
self.fields[name].choices += ((v, v) for v in choices)