Пример #1
0
    def render(self):
        folder = IResponseContainer(self.context)
        context = aq_inner(self.context)

        if not self.can_delete_response:
            msg = _(u'You are not allowed to delete responses.')
            api.portal.show_message(message=msg, request=self.request, type='error')
        else:
            response_id = self.request.form.get('response_id', None)
            if response_id is None:
                msg = _(u'No response selected for removal.')
                api.portal.show_message(message=msg, request=self.request, type='error')
            else:
                try:
                    response_id = int(response_id)
                except ValueError:
                    msg = _(
                        u'Response id ${response_id} is no integer so it cannot be removed.',
                        mapping=dict(response_id=response_id)
                    )
                    api.portal.show_message(message=msg, request=self.request, type='error')
                    self.request.response.redirect(context.absolute_url())
                    return
                if response_id >= len(folder):
                    msg = _(
                        u'Response id ${response_id} does not exist so it cannot be removed.',
                        mapping=dict(response_id=response_id)
                    )
                    api.portal.show_message(message=msg, request=self.request, type='error')
                else:
                    folder.delete(response_id)
                    msg = _(
                        u'Removed response id ${response_id}.',
                        mapping=dict(response_id=response_id)
                    )
                    api.portal.show_message(message=msg, request=self.request)

        self.request.response.redirect(context.absolute_url())