summaryrefslogtreecommitdiff
path: root/polls/forms.py
diff options
context:
space:
mode:
Diffstat (limited to 'polls/forms.py')
-rw-r--r--polls/forms.py132
1 files changed, 0 insertions, 132 deletions
diff --git a/polls/forms.py b/polls/forms.py
deleted file mode 100644
index 3a151aa..0000000
--- a/polls/forms.py
+++ /dev/null
@@ -1,132 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-# Copyright (C) 2009 É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
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-# See the file COPYING for details.
-
-'''
-Forms management
-'''
-
-from datetime import datetime
-
-from django import forms
-from django.contrib.admin import widgets as adminwidgets
-from django.utils.translation import gettext_lazy as _
-
-from papillon.polls.models import Poll, Category, Choice, Comment
-from papillon 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,]
-
-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']
- if not Category.objects.all():
- exclude.append('category')
-
-class CommentForm(forms.ModelForm):
- class Meta:
- model = Comment
- 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
- exclude = ['author', 'author_name', 'base_url', 'admin_url',
- 'dated_choices', 'type']
- if not Category.objects.all():
- exclude.append('category')
- enddate = SplitDateTimeJSField(widget=adminwidgets.AdminSplitDateTime(),
- required=False, label=Poll._meta.get_field('enddate').verbose_name,
- 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)
- self.fields['name'].widget = adminwidgets.AdminSplitDateTime()
-
- def clean_name(self):
- try:
- poll_id = self.data['poll']
- poll = Poll.objects.get(id=int(poll_id))
- except (ValueError, Poll.DoesNotExist):
- raise forms.ValidationError(_('Invalid poll'))
- data = self.cleaned_data['name']
- if poll.dated_choices:
- # management of dates fields
- if data.startswith('[') and data.endswith(']') and "'" in data:
- datas = data.split("'")
- try:
- assert len(datas) == 5
- time = datas[3]
- if not time:
- time = '00:00:00'
- date = "%s %s" % (datas[1], time)
- datetime.strptime(date, '%Y-%m-%d %H:%M:%S')
- data = date
- except (ValueError, AssertionError):
- raise forms.ValidationError(_('Invalid date format: \
-YYYY-MM-DD HH:MM:SS'))
- return data
-
- def clean_limit(self):
- """
- data = eval(self.cleaned_data['name'])
-
- new_limit = int(request.POST[key])
- sum = choice.getSum()
- if new_limit < sum:
- response_dct['error'] = _("You cannot lower \
-%(name)s's limit to this number : there is currently %(sum)d votes for this \
-choice.") % {'name':choice.name, 'sum':sum}
- else:
- choice.limit = new_limit
- choice.save()
-"""
- pass