summaryrefslogtreecommitdiff
path: root/polls/forms.py
diff options
context:
space:
mode:
Diffstat (limited to 'polls/forms.py')
-rw-r--r--polls/forms.py53
1 files changed, 42 insertions, 11 deletions
diff --git a/polls/forms.py b/polls/forms.py
index bd6b9b3..518e38d 100644
--- a/polls/forms.py
+++ b/polls/forms.py
@@ -23,29 +23,60 @@ Forms management
from django import forms
from django.utils.translation import gettext_lazy as _
+from django.utils.html import escape
+from django.utils.safestring import mark_safe
+from django.forms.util import flatatt
from papillon.polls.models import Poll, Category
-class CreateForm(forms.Form):
- author_name = forms.CharField(label=_("Author name"), max_length=100,
- help_text=_("Name, firstname or nickname of the author"))
+class PollForm(forms.ModelForm):
name = forms.CharField(label=_("Poll name"), max_length=200,
help_text=_("Global name to present the poll"))
description = forms.CharField(label=_("Poll description"), max_length=200,
help_text=_("Precise description of the poll"),
widget=forms.widgets.Textarea())
- public = forms.BooleanField(label=_("Display the poll on main page"),
- required=False, help_text=_("Check this option to make the poll \
-public"))
- poll_type = forms.ChoiceField(label=_("Type of the poll"), choices=Poll.TYPE,
- help_text=_("""Type of the poll:
+
+class CreatePollForm(PollForm):
+ class Meta:
+ model = Poll
+ exclude = ['base_url', 'admin_url', 'open', 'author', 'enddate',
+ 'public', 'opened_admin', 'hide_choices']
+ if not Category.objects.all():
+ exclude.append('category')
+ type = forms.ChoiceField(label=_("Type of the poll"),
+ choices=Poll.TYPE, help_text=_("""Type of the poll:
- "Yes/No poll" is the appropriate type for a simple multi-choice poll
- "Yes/No/Maybe poll" allows voters to stay undecided
- "One choice poll" gives only one option to choose from
"""))
-
-class CreateWithCatForm(CreateForm):
- category = forms.ChoiceField(label="", help_text="Category of the poll",
+ """
+ dated_choices = forms.BooleanField(
+ required=False, help_text=_("Check this option to choose between \
+dates"))"""
+ if Category.objects.all():
+ category = forms.ChoiceField(label="", help_text="Category of the poll",
choices=[(cat.id, cat.name) for cat in Category.objects.all()])
+class AdminPollForm(PollForm):
+ class Meta:
+ model = Poll
+ exclude = ['author', 'author_name', 'base_url', 'admin_url',
+ 'dated_choices', 'type']
+ if not Category.objects.all():
+ exclude.append('category')
+ open = forms.BooleanField(label=_("State of the poll"),
+ required=False, help_text=_("Uncheck this option to close the \
+poll/check the poll to reopen it"))
+ public = forms.BooleanField(label=_("Display the poll on main page"),
+ required=False, help_text=_("Check this option to make the poll \
+public"))
+ opened_admin = forms.BooleanField(label=_("Allow users to add choices"),
+ required=False, help_text=_("Check this option to open the poll to\
+ new choices submitted by users"))
+ hide_choices = forms.BooleanField(label=_("Hide votes to new voters"),
+ required=False, help_text=_("Check this option to hide poll \
+results to new users"))
+ enddate = forms.DateField(label=_("Closing date"),
+required=False, help_text=_("Closing date for participating to the poll"))
+