diff options
Diffstat (limited to 'chimere/forms.py')
-rw-r--r-- | chimere/forms.py | 39 |
1 files changed, 22 insertions, 17 deletions
diff --git a/chimere/forms.py b/chimere/forms.py index c8d7d45..d923963 100644 --- a/chimere/forms.py +++ b/chimere/forms.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (C) 2008-2014 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet> +# Copyright (C) 2008-2015 É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 @@ -34,8 +34,7 @@ from django.core.mail import EmailMessage, BadHeaderError if hasattr(settings, 'CHIMERE_SEARCH_ENGINE') and settings.CHIMERE_SEARCH_ENGINE: from haystack.forms import SearchForm as HaystackSearchForm - -from chimere.models import Marker, Route, PropertyModel, Property, Area,\ +from chimere.models import Marker, Route, PropertyModel, Property, Map,\ News, Category, SubCategory, RouteFile, MultimediaFile, MultimediaType, \ PictureFile, Importer, PropertyModelChoice, IFRAME_LINKS, \ MultimediaExtension, Page, IMPORTER_CHOICES @@ -261,10 +260,13 @@ class MarkerAdminFormBase(forms.ModelForm): """ Custom save method in order to manage associated properties """ + can_write = False + if 'can_write' in keys: + can_write = keys.pop('can_write') new_marker = super(MarkerAdminFormBase, self).save(*args, **keys) if 'status' not in self.cleaned_data and not new_marker.status: - new_marker.status = 'S' - if new_marker.status == 'A': + new_marker.status = 'A' if can_write else 'S' + if not new_marker.available_date and new_marker.status == 'A': tz = UTC() new_marker.available_date = datetime.replace(datetime.utcnow(), tzinfo=tz) @@ -351,9 +353,12 @@ class RouteAdminForm(forms.ModelForm): """ Custom save method in order to manage associated properties """ + can_write = False + if 'can_write' in keys: + can_write = keys.pop('can_write') new_route = super(RouteAdminForm, self).save(*args, **keys) if 'status' not in self.cleaned_data and not new_route.status: - new_route.status = 'S' + new_route.status = 'A' if can_write else 'S' new_route.save() return new_route @@ -520,15 +525,15 @@ class FullFileForm(FileForm): super(FullFileForm, self).__init__(*args, **kwargs) self.fields.keyOrder = ['name', 'raw_file'] -class AreaAdminForm(forms.ModelForm): +class MapAdminForm(forms.ModelForm): """ - Admin page to create an area + Admin page to create an map """ area = AreaField(label=_("Area"), fields=(PointField(), PointField())) welcome_message = forms.CharField(widget=TextareaAdminWidget, required=False) class Meta: - model = Area + model = Map def __init__(self, *args, **keys): """ @@ -553,7 +558,7 @@ class AreaAdminForm(forms.ModelForm): keys['initial'].update(dct) else: keys['initial'] = dct - super(AreaAdminForm, self).__init__(*args, **keys) + super(MapAdminForm, self).__init__(*args, **keys) def clean(self): ''' @@ -567,7 +572,7 @@ class AreaAdminForm(forms.ModelForm): msg = _(u"No area selected.") raise forms.ValidationError(msg) if self.cleaned_data.get('order'): - q = Area.objects.filter(order=self.cleaned_data.get('order')) + q = Map.objects.filter(order=self.cleaned_data.get('order')) if self.instance: q = q.exclude(pk=self.instance.pk) if q.count(): @@ -580,15 +585,15 @@ class AreaAdminForm(forms.ModelForm): """ Custom save method in order to manage area """ - new_area = super(AreaAdminForm, self).save(*args, **keys) + new_area = super(MapAdminForm, self).save(*args, **keys) area = self.cleaned_data['area'] new_area.upper_left_corner = 'POINT(%s %s)' % (area[0][0], area[0][1]) new_area.lower_right_corner = 'POINT(%s %s)' % (area[1][0], area[1][1]) content_type = ContentType.objects.get(app_label="chimere", - model="area") + model="map") if new_area.urn: - mnemo = 'change_area_' + new_area.urn + mnemo = 'change_map_' + new_area.urn perm = Permission.objects.filter(codename=mnemo) if not perm: perm = Permission(name='Can change ' + new_area.name, @@ -596,18 +601,18 @@ class AreaAdminForm(forms.ModelForm): perm.save() else: if 'urn' in self.initial: - mnemo = 'change_area_' + self.initial['urn'] + mnemo = 'change_map_' + self.initial['urn'] perm = Permission.objects.filter(codename=mnemo) if perm: perm[0].delete() return new_area -class AreaForm(AreaAdminForm): +class MapForm(MapAdminForm): """ Form for the edit page """ class Meta: - model = Area + model = Map CHIMERE_ROUTING_TRANSPORT = [] ROUTING_INIT = None |