summaryrefslogtreecommitdiff
path: root/chimere/forms.py
diff options
context:
space:
mode:
Diffstat (limited to 'chimere/forms.py')
-rw-r--r--chimere/forms.py12
1 files changed, 8 insertions, 4 deletions
diff --git a/chimere/forms.py b/chimere/forms.py
index cd75ec4..02dbf53 100644
--- a/chimere/forms.py
+++ b/chimere/forms.py
@@ -40,7 +40,7 @@ if getattr(settings, 'HAYSTACK_SEARCH_ENGINE', None):
from chimere.models import Marker, Route, PropertyModel, Area,\
News, Category, RouteFile, MultimediaFile, MultimediaType, \
PictureFile, Importer, PropertyModelChoice, Page, IMPORTER_CHOICES, \
- get_areas_for_user, SubCategoryUserLimit, Polygon
+ get_areas_for_user, SubCategoryUserLimit, Polygon, SubCategory
from chimere.widgets import AreaField, PointFormField, TextareaWidget, \
FullTextareaWidget, DatePickerWidget, ButtonSelectWidget, NominatimWidget,\
TextareaAdminWidget, ImportFiltrWidget, ImporterChoicesWidget, RE_XAPI
@@ -481,7 +481,7 @@ class RouteAdminForm(forms.ModelForm):
name = forms.CharField(label=_("Name"), required=True)
read_from_file = forms.BooleanField(
label=_("Read geometry from the file"), required=False)
- categories = forms.ChoiceField(choices=[], widget=forms.Select)
+ categories = forms.MultipleChoiceField(choices=[], widget=forms.Select)
description = forms.CharField(widget=TextareaWidget, required=False)
class Meta:
@@ -518,7 +518,13 @@ class RouteAdminForm(forms.ModelForm):
keys['initial'] = property_dct
subcategories = keys.pop('subcategories') \
if 'subcategories' in keys else []
+ if not subcategories:
+ subcategories = [
+ (c.id, str(c)) for c in SubCategory.objects.filter(
+ item_type__in=["R", "B"]).all()
+ ]
super(RouteAdminForm, self).__init__(*args, **keys)
+ self.fields["categories"].choices = subcategories
if self.is_admin:
self.fields['route'].required = False
self.fields['categories'].widget = forms.SelectMultiple(
@@ -539,8 +545,6 @@ class RouteAdminForm(forms.ModelForm):
k in pms:
continue
self.fields.pop(k)
- self.fields['categories'].widget.choices = \
- [('', _(u"Select"))] + self.fields['categories'].widget.choices
def clean(self):
if self.cleaned_data.get('read_from_file', None) and \