summaryrefslogtreecommitdiff
path: root/papillon/polls/forms.py
diff options
context:
space:
mode:
Diffstat (limited to 'papillon/polls/forms.py')
-rw-r--r--papillon/polls/forms.py30
1 files changed, 21 insertions, 9 deletions
diff --git a/papillon/polls/forms.py b/papillon/polls/forms.py
index 2e9b75d..359410d 100644
--- a/papillon/polls/forms.py
+++ b/papillon/polls/forms.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
-# Copyright (C) 2009 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet>
+# Copyright (C) 2009-2016 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet>
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as
@@ -30,42 +30,50 @@ from django.utils.translation import gettext_lazy as _
from papillon.polls.models import Poll, Category, Choice, Comment
from django.conf import settings
+
class TextareaWidget(forms.Textarea):
"""
Manage the edition of a text using TinyMCE
"""
class Media:
js = ["%stiny_mce.js" % settings.TINYMCE_URL,
- "%stextareas.js" % settings.MEDIA_URL,]
+ "%stextareas.js" % settings.STATIC_URL]
+
class PollForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(PollForm, self).__init__(*args, **kwargs)
self.fields['description'].widget = TextareaWidget()
+
class CreatePollForm(PollForm):
class Meta:
model = Poll
- exclude = ['base_url', 'admin_url', 'open', 'author', 'enddate',
- 'public', 'opened_admin', 'hide_choices']
+ exclude = ['base_url', 'admin_url', 'open', 'author', 'enddate',
+ 'public', 'opened_admin', 'hide_choices']
if not Category.objects.all():
exclude.append('category')
+
class CommentForm(forms.ModelForm):
class Meta:
model = Comment
- exclude = ['date',]
+ exclude = ['date']
+
def __init__(self, *args, **kwargs):
super(CommentForm, self).__init__(*args, **kwargs)
self.fields['text'].widget = TextareaWidget()
# workaround for SplitDateTime with required=False
+
+
class SplitDateTimeJSField(forms.SplitDateTimeField):
def __init__(self, *args, **kwargs):
super(SplitDateTimeJSField, self).__init__(*args, **kwargs)
self.widget.widgets[0].attrs = {'class': 'vDateField'}
self.widget.widgets[1].attrs = {'class': 'vTimeField'}
+
class AdminPollForm(PollForm):
class Meta:
model = Poll
@@ -75,19 +83,23 @@ class AdminPollForm(PollForm):
exclude.append('category')
if not settings.ALLOW_FRONTPAGE_POLL:
exclude.append('public')
- enddate = SplitDateTimeJSField(widget=adminwidgets.AdminSplitDateTime(),
+ enddate = SplitDateTimeJSField(
+ widget=adminwidgets.AdminSplitDateTime(),
required=False, label=Poll._meta.get_field('enddate').verbose_name,
- help_text=Poll._meta.get_field('enddate').help_text)
+ help_text=Poll._meta.get_field('enddate').help_text)
+
class ChoiceForm(forms.ModelForm):
class Meta:
model = Choice
fields = ('name', 'limit', 'poll', 'order',)
+
def __init__(self, *args, **kwargs):
super(ChoiceForm, self).__init__(*args, **kwargs)
self.fields['poll'].widget = forms.HiddenInput()
self.fields['order'].widget = forms.HiddenInput()
+
class DatedChoiceForm(ChoiceForm):
def __init__(self, *args, **kwargs):
super(DatedChoiceForm, self).__init__(*args, **kwargs)
@@ -110,7 +122,7 @@ class DatedChoiceForm(ChoiceForm):
if not time:
time = '00:00:00'
date = "%s %s" % (datas[1], time)
- datetime.strptime(date, '%Y-%m-%d %H:%M:%S')
+ datetime.strptime(date, '%Y-%m-%d %H:%M:%S')
data = date
except (ValueError, AssertionError):
raise forms.ValidationError(_('Invalid date format: \
@@ -120,7 +132,7 @@ YYYY-MM-DD HH:MM:SS'))
def clean_limit(self):
"""
data = eval(self.cleaned_data['name'])
-
+
new_limit = int(request.POST[key])
sum = choice.getSum()
if new_limit < sum: