# HG changeset patch # User Thierry Florac # Date 1523437694 -7200 # Node ID f8916da0b16bf5b4e0ca79e45097321287b021ff # Parent 3ccb1e8d695f1870a4ddb8f7de9abf3a2b88a5af Use default container delete view for map layers diff -r 3ccb1e8d695f -r f8916da0b16b src/pyams_gis/zmi/utility.py --- a/src/pyams_gis/zmi/utility.py Wed Apr 11 11:05:22 2018 +0200 +++ b/src/pyams_gis/zmi/utility.py Wed Apr 11 11:08:14 2018 +0200 @@ -32,7 +32,7 @@ from pyams_form.form import AJAXEditForm from pyams_i18n.column import I18nAttrColumn from pyams_pagelet.pagelet import pagelet_config -from pyams_skin.container import ContainerView +from pyams_skin.container import ContainerView, delete_container_element from pyams_skin.page import DefaultPageHeaderAdapter from pyams_skin.table import DefaultElementEditorAdapter, BaseTable, I18nColumn, TrashColumn from pyams_skin.viewlet.menu import MenuItem @@ -88,12 +88,9 @@ def data_attributes(self): manager = query_utility(IMapManager) attributes = super(MapManagerLayersTable, self).data_attributes - table_attrs = {'data-ams-location': absolute_url(manager, self.request), - 'data-ams-delete-target': 'delete-layer.json'} - if 'table' in attributes: - attributes['table'].update(table_attrs) - else: - attributes['table'] = table_attrs + attributes.setdefault('table', {}).update({ + 'data-ams-location': absolute_url(manager, self.request) + }) return attributes @@ -136,6 +133,13 @@ permission = MANAGE_SYSTEM_PERMISSION +@view_config(name='delete-element.json', context=IMapManager, request_type=IPyAMSLayer, + permission=MANAGE_SYSTEM_PERMISSION, renderer='json', xhr=True) +def delete_map_manager_layer(request): + """Delete layer from map manager""" + return delete_container_element(request, ignore_permission=True) + + @adapter_config(context=(ISite, IAdminLayer, MapManagerLayersTable), provides=IValues) class MapManagerValuesAdapter(ContextRequestViewAdapter): """Map manager layers table values adapter""" @@ -182,6 +186,8 @@ class MapManagerConfigurationEditForm(AdminDialogEditForm): """Map manager edit form""" + prefix = 'map_configuration.' + title = _("Maps manager") legend = _("Default map configuration") icon_css_class = 'fa fa-fw fa-map-marker' @@ -202,24 +208,6 @@ """Map manager edit form, JSON renderer""" -@view_config(name='delete-layer.json', context=IMapManager, request_type=IPyAMSLayer, - permission=MANAGE_SYSTEM_PERMISSION, renderer='json', xhr=True) -def delete_map_manager_layer(request): - """Delete layer from map manager""" - translate = request.localizer.translate - name = request.params.get('object_name') - if not name: - return {'status': 'message', - 'messagebox': {'status': 'error', - 'content': translate(_("No provided object_name argument!"))}} - if name not in request.context: - return {'status': 'message', - 'messagebox': {'status': 'error', - 'content': translate(_("Given layer name doesn't exist!"))}} - del request.context[name] - return {'status': 'success'} - - @view_config(name='get-map-configuration.json', context=Interface, request_type=IPyAMSLayer, renderer='json', xhr=True) def get_map_configuration(request):