From 32538d51cb6755568249b7b4f94c4ff5c4ad279f Mon Sep 17 00:00:00 2001 From: Maciej Tronowski Date: Fri, 11 Sep 2015 13:51:56 +0200 Subject: [PATCH] fix initial values in job description form --- qcg/forms.py | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/qcg/forms.py b/qcg/forms.py index 26f901f..a520cf8 100644 --- a/qcg/forms.py +++ b/qcg/forms.py @@ -166,11 +166,17 @@ class JobDescriptionForm(forms.Form): 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() @@ -250,13 +256,12 @@ class JobDescriptionForm(forms.Form): 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) -- 1.7.9.5