#!/usr/bin/env python # -*- coding: utf-8 -*- # Copyright (C) 2012 Étienne Loks # 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 . # See the file COPYING for details. """ Forms """ from django import forms from django.utils.translation import ugettext as _ from chimere.models import SubCategory from chimere.forms import MarkerForm as BaseMarkerForm, \ RouteForm as BaseRouteForm from chimere.widgets import TextareaWidget class MarkerForm(BaseMarkerForm): categories = forms.ChoiceField(choices=[], widget=forms.Select) description = forms.CharField(widget=TextareaWidget, required=False) def __init__(self, *args, **kwargs): super(MarkerForm, self).__init__(*args, **kwargs) self.fields['categories'].widget.choices = [('', _(u"Select"))] + \ SubCategory.getAvailableTuples(item_types=['M', 'B']) def clean_categories(self): cats = self.cleaned_data.get('categories') if cats: if type(cats) not in (list, tuple): self.cleaned_data['categories'] = [cats] return self.cleaned_data['categories'] class RouteForm(BaseRouteForm): categories = forms.ChoiceField(choices=[], widget=forms.Select) description = forms.CharField(widget=TextareaWidget, required=False) def __init__(self, *args, **kwargs): super(RouteForm, self).__init__(*args, **kwargs) self.fields['categories'].widget.choices = [('', _(u"Select"))] + \ SubCategory.getAvailableTuples(item_types=['R', 'B']) def clean_categories(self): cats = self.cleaned_data.get('categories') if cats: if type(cats) not in (list, tuple): self.cleaned_data['categories'] = [cats] return self.cleaned_data['categories']