summaryrefslogtreecommitdiff
path: root/chimere/views.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2016-04-06 21:08:39 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2016-04-06 21:09:26 +0200
commit1d03951916abe35062d16336f6cf80c989004493 (patch)
treefb18a55495f1bbf3cd181f912ec3bee6ce94ade4 /chimere/views.py
parent2f843cc211968c135bd33ffa8838f5cf2d2b3129 (diff)
downloadChimère-1d03951916abe35062d16336f6cf80c989004493.tar.bz2
Chimère-1d03951916abe35062d16336f6cf80c989004493.zip
Add public polygon edition form - import public edition forms
Diffstat (limited to 'chimere/views.py')
-rw-r--r--chimere/views.py47
1 files changed, 45 insertions, 2 deletions
diff --git a/chimere/views.py b/chimere/views.py
index 7315ee1..9ecd240 100644
--- a/chimere/views.py
+++ b/chimere/views.py
@@ -49,10 +49,11 @@ from chimere.models import Category, SubCategory, PropertyModel, Page,\
Marker, Route, Polygon, SimpleArea, Area, Color, TinyUrl, RouteFile,\
AggregatedRoute
-from chimere.widgets import PointChooserWidget, RouteChooserWidget, AreaWidget
+from chimere.widgets import PointChooserWidget, RouteChooserWidget, AreaWidget,\
+ PolygonChooserWidget
from chimere.forms import MarkerForm, RouteForm, ContactForm, FileForm, \
FullFileForm, MultimediaFileFormSet, PictureFileFormSet, notifySubmission,\
- notifyStaff, AreaForm, RoutingForm
+ notifyStaff, AreaForm, RoutingForm, PolygonForm
from chimere.route import router
@@ -295,6 +296,7 @@ def get_edit_page(redirect_url, item_cls, item_form,
marker = item
if not isinstance(marker, Marker) \
+ and hasattr(item, 'associated_marker') \
and item.associated_marker.count():
marker = item.associated_marker.all()[0]
if marker:
@@ -482,6 +484,47 @@ def editRoute(request, area_name="", item_id=None, submited=False):
return render_to_response('chimere/edit_route.html', response_dct,
context_instance=RequestContext(request))
+get_edit_polygon = get_edit_page('chimere:editpolygon', Polygon, PolygonForm)
+
+
+def editPolygon(request, area_name="", item_id=None, submited=False):
+ """
+ Polygon edition page
+ """
+ response, values, sub_categories = get_edit_polygon(request, area_name,
+ item_id, ['R', 'B'])
+ if response:
+ return response
+ item_id, init_item, response_dct, form, formset_multi, formset_picture = \
+ values
+
+ # get the "manualy" declared_fields. Ie: properties
+ declared_fields = form.declared_fields.keys()
+ polygon_value = init_item.polygon if init_item else None
+ if request.POST and request.POST.get('polygon'):
+ polygon_value = request.POST.get('polygon')
+ response_dct.update({
+ 'actions': actions(response_dct['area_name']),
+ 'action_selected': ('contribute', 'edit-polygon'),
+ 'error_message': '',
+ 'map_layer': settings.CHIMERE_DEFAULT_MAP_LAYER,
+ 'form': form,
+ 'formset_multi': formset_multi,
+ 'formset_picture': formset_picture,
+ 'dated': settings.CHIMERE_DAYS_BEFORE_EVENT,
+ 'extra_head': form.media,
+ 'sub_categories': sub_categories,
+ 'polygon_widget': PolygonChooserWidget().render(
+ 'polygon', polygon_value, area_name=response_dct['area_name'],),
+ 'properties': declared_fields,
+ 'submited': submited
+ })
+ # manualy populate the custom widget
+ if 'subcategory' in form.data and form.data['subcategory']:
+ response_dct['current_category'] = int(form.data['subcategory'])
+ return render_to_response('chimere/edit_polygon.html', response_dct,
+ context_instance=RequestContext(request))
+
def submited(request, area_name="", action=""):
"""