# HG changeset patch # User Thierry Florac # Date 1432118063 -7200 # Node ID 95b8b181c3adef5b2ae1a765ff13568d177e354f # Parent ecc79f7c5957fbea309bf6f7a1ada8765a180a22 Added default container object remover view diff -r ecc79f7c5957 -r 95b8b181c3ad src/pyams_skin/container.py --- a/src/pyams_skin/container.py Wed May 20 12:33:54 2015 +0200 +++ b/src/pyams_skin/container.py Wed May 20 12:34:23 2015 +0200 @@ -18,12 +18,16 @@ # import interfaces from pyams_skin.interfaces.container import IContainerBaseView from pyams_skin.layer import IPyAMSLayer +from zope.container.interfaces import IContainer # import packages from pyams_skin.table import BaseTable from pyams_template.template import template_config +from pyramid.view import view_config from zope.interface import implementer +from pyams_utils import _ + @template_config(template='templates/container.pt', layer=IPyAMSLayer) @implementer(IContainerBaseView) @@ -39,3 +43,21 @@ def update(self): super(ContainerView, self).update() self.table.update() + + +@view_config(name='delete-element.json', context=IContainer, request_type=IPyAMSLayer, + permission='manage', renderer='json', xhr=True) +def delete_container_element(request): + """Delete container element""" + 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 plug-in name doesn't exist!"))}} + del request.context[name] + return {'status': 'success'}