diff options
-rw-r--r-- | webapp/polls/forms.py | 10 | ||||
-rw-r--r-- | webapp/polls/templates/poll-form.html | 2 | ||||
-rw-r--r-- | webapp/polls/views.py | 9 |
3 files changed, 16 insertions, 5 deletions
diff --git a/webapp/polls/forms.py b/webapp/polls/forms.py index 86dfacb..f92d84a 100644 --- a/webapp/polls/forms.py +++ b/webapp/polls/forms.py @@ -16,14 +16,20 @@ class PollAddForm(forms.Form): required=True, label="Nombre") status = forms.ChoiceField( required=False, - choices=[c for c in Poll.status_choices()] + [('', '')], + choices=[('', '')] + [c for c in Poll.status_choices()], label="Estado") pollster = forms.ChoiceField( required=False, - choices=[('', '-')] + [(p.id, p.username) for p in Pollster.all()], + choices=[('', '-')] + [ + (str(p.id), p.username) for p in Pollster.all()], label="Encuestador asignado" ) + def __init__(self, *args, **kwargs): + super(PollAddForm, self).__init__(*args, **kwargs) + self.fields['pollster'].choices = [('', '-')] + [ + (str(p.id), p.username) for p in Pollster.all()] + def clean_name(self): id = self.cleaned_data['id'] name = self.cleaned_data['name'] diff --git a/webapp/polls/templates/poll-form.html b/webapp/polls/templates/poll-form.html index f9dad9d..8edb0a0 100644 --- a/webapp/polls/templates/poll-form.html +++ b/webapp/polls/templates/poll-form.html @@ -47,7 +47,7 @@ <label class="control-label" for="id_pollster">{{ form.pollster.label }}:</label> <select id="id_pollster" name="pollster"> {% for pollster, label in POLLSTER_CHOICES %} - <option value="{{ pollster }}" {% if pollster == poll.pollster.id %}selected="selected"{% endif %}>{{ label }}</option> + <option value="{{ pollster }}" {% if pollster == pollster_id %}selected="selected"{% endif %}>{{ label }}</option> {% endfor %} </select> <span class="help-inline">{{ form.pollster.errors }}</span> diff --git a/webapp/polls/views.py b/webapp/polls/views.py index 60ba025..21882ab 100644 --- a/webapp/polls/views.py +++ b/webapp/polls/views.py @@ -86,11 +86,16 @@ class PollFormView(FormView): raise Http404() poll = Poll(form.data) if form.is_bound else poll + pollster_id = None + if hasattr(poll.pollster, 'id'): + pollster_id = str(poll.pollster.id) + else: + pollster_id = poll.pollster context.update({ "poll": poll, "STATUS_CHOICES": Poll.status_choices(), - "POLLSTER_CHOICES": [('', '-')] + [ - (p.id, p.username) for p in Pollster.all()] + "POLLSTER_CHOICES": form.fields['pollster'].choices, + "pollster_id": pollster_id }) return context |