diff options
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 |
commit | 1d03951916abe35062d16336f6cf80c989004493 (patch) | |
tree | fb18a55495f1bbf3cd181f912ec3bee6ce94ade4 /chimere/views.py | |
parent | 2f843cc211968c135bd33ffa8838f5cf2d2b3129 (diff) | |
download | Chimè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.py | 47 |
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=""): """ |