summaryrefslogtreecommitdiff
path: root/ishtar/ishtar_base/forms.py
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar/ishtar_base/forms.py')
-rw-r--r--ishtar/ishtar_base/forms.py249
1 files changed, 0 insertions, 249 deletions
diff --git a/ishtar/ishtar_base/forms.py b/ishtar/ishtar_base/forms.py
deleted file mode 100644
index 3d6f3f503..000000000
--- a/ishtar/ishtar_base/forms.py
+++ /dev/null
@@ -1,249 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-# Copyright (C) 2010-2011 É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 Affero 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 Affero General Public License for more details.
-
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-# See the file COPYING for details.
-
-"""
-Forms definition
-"""
-import datetime
-import re
-from itertools import groupby
-
-from django.core.urlresolvers import reverse
-from django.core import validators
-from django.core.exceptions import ObjectDoesNotExist
-from django.utils import formats
-from django.utils.functional import lazy
-from django.utils.translation import ugettext_lazy as _
-from django.shortcuts import render_to_response
-from django.template import Context, RequestContext, loader
-from django.db.models import Max
-from django import forms
-from django.core.mail import send_mail
-from django.forms.formsets import formset_factory, BaseFormSet, \
- DELETION_FIELD_NAME
-from django.contrib.auth.models import User
-from django.contrib.sites.models import Site
-
-# from formwizard.forms import NamedUrlSessionFormWizard
-
-class NamedUrlSessionFormWizard(forms.Form):
- def __init__(self, form_list, condition_list={}, url_name=''):
- self.form_list = dict(form_list)
- self.condition_list = condition_list
- self.url_name = url_name
- super(NamedUrlSessionFormWizard, self).__init__(self)
-
-
- def rindex(self, idx):
- return self.url_name.rindex(idx)
-
-import models
-import widgets
-from ishtar import settings
-
-reverse_lazy = lazy(reverse, unicode)
-
-regexp_name = re.compile(r'^[\w\- ]+$', re.UNICODE)
-name_validator = validators.RegexValidator(regexp_name,
-_(u"Enter a valid name consisting of letters, spaces and hyphens."), 'invalid')
-
-class FloatField(forms.FloatField):
- """
- Allow the use of comma for separating float fields
- """
- def clean(self, value):
- if value:
- value = value.replace(',', '.').replace('%', '')
- return super(FloatField, self).clean(value)
-
-class FinalForm(forms.Form):
- final = True
- form_label = _(u"Confirm")
-
-class FormSet(BaseFormSet):
- def check_duplicate(self, key_names, error_msg=""):
- """Check for duplicate items in the formset"""
- if any(self.errors):
- return
- if not error_msg:
- error_msg = _("There are identical items.")
- items = []
- for i in range(0, self.total_form_count()):
- form = self.forms[i]
- if not form.is_valid():
- continue
- item = [key_name in form.cleaned_data and form.cleaned_data[key_name]
- for key_name in key_names]
- if not [v for v in item if v]:
- continue
- if item in items:
- raise forms.ValidationError, error_msg
- items.append(item)
-
- def add_fields(self, form, index):
- super(FormSet, self).add_fields(form, index)
- form.fields[DELETION_FIELD_NAME].label = ''
- form.fields[DELETION_FIELD_NAME].widget = widgets.DeleteWidget()
-
-'''
-class SearchWizard(NamedUrlSessionFormWizard):
- model = None
-
- def get_wizard_name(self):
- """
- As the class name can interfere when reused, use the url_name
- """
- return self.url_name
-
- def get_template(self, request, storage):
- templates = ['search.html']
- return templates
-
-def get_now():
- format = formats.get_format('DATE_INPUT_FORMATS')[0]
- value = datetime.datetime.now().strftime(format)
- return value
-
-class DeletionWizard(Wizard):
- def get_formated_datas(self, forms):
- datas = super(DeletionWizard, self).get_formated_datas(forms)
- self.current_obj = None
- for form in forms:
- if not hasattr(form, "cleaned_data"):
- continue
- for key in form.cleaned_data:
- if key == 'pk':
- model = form.associated_models['pk']
- self.current_obj = model.objects.get(pk=form.cleaned_data['pk'])
- if not self.current_obj:
- return datas
- res = {}
- for field in self.model._meta.fields + self.model._meta.many_to_many:
- if field.name not in self.fields:
- continue
- value = getattr(self.current_obj, field.name)
- if not value:
- continue
- if hasattr(value, 'all'):
- value = ", ".join([unicode(item) for item in value.all()])
- if not value:
- continue
- else:
- value = unicode(value)
- res[field.name] = (field.verbose_name, value, '')
- if not datas and self.fields:
- datas = [['', []]]
- for field in self.fields:
- if field in res:
- datas[0][1].append(res[field])
- return datas
-
- def done(self, request, storage, form_list, **kwargs):
- obj = self.get_current_object(request, storage)
- obj.delete()
- return render_to_response('wizard_delete_done.html', {},
- context_instance=RequestContext(request))
-
-class ClosingDateFormSelection(forms.Form):
- form_label = _("Closing date")
- end_date = forms.DateField(label=_(u"Closing date"),
- widget=widgets.JQueryDate)
-
-class ClosingWizard(Wizard):
- # "close" an item
- # to be define in the overloaded class
- model = None
- fields = []
-
- def get_formated_datas(self, forms):
- datas = super(ClosingWizard, self).get_formated_datas(forms)
- self.current_obj = None
- for form in forms:
- if not hasattr(form, "cleaned_data"):
- continue
- for key in form.cleaned_data:
- if key == 'pk':
- model = form.associated_models['pk']
- self.current_obj = model.objects.get(
- pk=form.cleaned_data['pk'])
- if not self.current_obj:
- return datas
- res = {}
- for field in self.model._meta.fields + self.model._meta.many_to_many:
- if field.name not in self.fields:
- continue
- value = getattr(self.current_obj, field.name)
- if not value:
- continue
- if hasattr(value, 'all'):
- value = ", ".join([unicode(item) for item in value.all()])
- if not value:
- continue
- else:
- value = unicode(value)
- res[field.name] = (field.verbose_name, value, '')
- if not datas and self.fields:
- datas = [['', []]]
- for field in self.fields:
- if field in res:
- datas[0][1].append(res[field])
- return datas
-
- def done(self, request, storage, form_list, **kwargs):
- obj = self.get_current_object(request, storage)
- for form in form_list:
- if form.is_valid():
- if 'end_date' in form.cleaned_data and hasattr(obj, 'end_date'):
- obj.end_date = form.cleaned_data['end_date']
- obj.save()
- return render_to_response('wizard_closing_done.html', {},
- context_instance=RequestContext(request))
-
-def get_form_selection(class_name, label, key, model, base_form, get_url,
- not_selected_error=_(u"You should select an item."), new=False,
- new_message=_(u"Add a new item")):
- """
- Generate a class selection form
- class_name -- name of the class
- label -- label of the form
- key -- model,
- base_form -- base form to select
- get_url -- url to get the item
- not_selected_error -- message displayed when no item is selected
- new -- can add new items
- new_message -- message of link to add new items
- """
- attrs = {'_main_key':key,
- '_not_selected_error':not_selected_error,
- 'form_label':label,
- 'associated_models':{key:model},
- 'currents':{key:model},}
- attrs[key] = forms.IntegerField(label="", required=False,
- validators=[models.valid_id(model)],
- widget=widgets.JQueryJqGrid(reverse_lazy(get_url), base_form(), model,
- new=new, new_message=new_message))
- def clean(self):
- cleaned_data = self.cleaned_data
- if self._main_key not in cleaned_data \
- or not cleaned_data[self._main_key]:
- raise forms.ValidationError(self._not_selected_error)
- return cleaned_data
- attrs['clean'] = clean
- return type(class_name, (forms.Form,), attrs)
-'''