summaryrefslogtreecommitdiff
path: root/polls/forms.py
diff options
context:
space:
mode:
authoretienne <etienne@07715635-78ed-41b0-aaf1-0afda6c37f35>2009-12-03 11:33:27 +0000
committeretienne <etienne@07715635-78ed-41b0-aaf1-0afda6c37f35>2009-12-03 11:33:27 +0000
commite8784c0d1b75bb66739267e5f05161d210b3e199 (patch)
treef3d1a77b08c5dcffd13665058d44142fdb38bc15 /polls/forms.py
parent7789bff7cb978d475157e815a636f351c9955837 (diff)
downloadPapillon-e8784c0d1b75bb66739267e5f05161d210b3e199.tar.bz2
Papillon-e8784c0d1b75bb66739267e5f05161d210b3e199.zip
Refactoring of the code - Using newforms - Change from ReST to markdown
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"))
+