src/pyams_skin/container.py
changeset 62 95b8b181c3ad
parent 0 bb4aabe07487
child 93 e1bbacb1be22
equal deleted inserted replaced
61:ecc79f7c5957 62:95b8b181c3ad
    16 # import standard library
    16 # import standard library
    17 
    17 
    18 # import interfaces
    18 # import interfaces
    19 from pyams_skin.interfaces.container import IContainerBaseView
    19 from pyams_skin.interfaces.container import IContainerBaseView
    20 from pyams_skin.layer import IPyAMSLayer
    20 from pyams_skin.layer import IPyAMSLayer
       
    21 from zope.container.interfaces import IContainer
    21 
    22 
    22 # import packages
    23 # import packages
    23 from pyams_skin.table import BaseTable
    24 from pyams_skin.table import BaseTable
    24 from pyams_template.template import template_config
    25 from pyams_template.template import template_config
       
    26 from pyramid.view import view_config
    25 from zope.interface import implementer
    27 from zope.interface import implementer
       
    28 
       
    29 from pyams_utils import _
    26 
    30 
    27 
    31 
    28 @template_config(template='templates/container.pt', layer=IPyAMSLayer)
    32 @template_config(template='templates/container.pt', layer=IPyAMSLayer)
    29 @implementer(IContainerBaseView)
    33 @implementer(IContainerBaseView)
    30 class ContainerView(object):
    34 class ContainerView(object):
    37         self.table = self.table_class(context, request)
    41         self.table = self.table_class(context, request)
    38 
    42 
    39     def update(self):
    43     def update(self):
    40         super(ContainerView, self).update()
    44         super(ContainerView, self).update()
    41         self.table.update()
    45         self.table.update()
       
    46 
       
    47 
       
    48 @view_config(name='delete-element.json', context=IContainer, request_type=IPyAMSLayer,
       
    49              permission='manage', renderer='json', xhr=True)
       
    50 def delete_container_element(request):
       
    51     """Delete container element"""
       
    52     translate = request.localizer.translate
       
    53     name = request.params.get('object_name')
       
    54     if not name:
       
    55         return {'status': 'message',
       
    56                 'messagebox': {'status': 'error',
       
    57                                'content': translate(_("No provided object_name argument!"))}}
       
    58     if name not in request.context:
       
    59         return {'status': 'message',
       
    60                 'messagebox': {'status': 'error',
       
    61                                'content': translate(_("Given plug-in name doesn't exist!"))}}
       
    62     del request.context[name]
       
    63     return {'status': 'success'}