From 45ba66184e3eeb91c5e4a56a4be9bf4f7e0e6973 Mon Sep 17 00:00:00 2001 From: Nicolas Demonte Date: Mon, 14 Jan 2019 15:34:30 +0100 Subject: [PATCH] Selectively delete or send to trash concerned items #22003 --- .../dms/basecontent/browser/column.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/collective/dms/basecontent/browser/column.py b/src/collective/dms/basecontent/browser/column.py index 7503af1..cd39272 100644 --- a/src/collective/dms/basecontent/browser/column.py +++ b/src/collective/dms/basecontent/browser/column.py @@ -13,6 +13,7 @@ from zope.schema.interfaces import IVocabularyFactory from zope.component import getUtility import plone.api from plone.memoize import ram +from zope.component import queryMultiAdapter from collective.dms.basecontent import _ @@ -190,6 +191,20 @@ class DeleteColumn(IconColumn, LinkColumn): iconName = "++resource++delete_icon.png" linkContent = PMF(u"Delete") + def getLinkCSS(self, item): + obj = get_object(self.request, item) + view = queryMultiAdapter((obj, self.request), name='can_be_trashed') + if view and view.render(): + return '' + return super(DeleteColumn, self).getLinkCSS(item) + + def getLinkURL(self, item): + obj = get_object(self.request, item) + view = queryMultiAdapter((obj, self.request), name='can_be_trashed') + if view and view.render(): + return '%s/%s' % (item.getURL(), 'redirect_to_dmsdocument?workflow_action=send_to_trash') + return super(DeleteColumn, self).getLinkURL(item) + def actionAvailable(self, item): obj = get_object(self.request, item) if not obj: @@ -201,6 +216,10 @@ class DeleteColumn(IconColumn, LinkColumn): if not self.actionAvailable(item): return u"" + obj = get_object(self.request, item) + if plone.api.content.get_state(obj) == 'trashed': + return 'DEL' + return super(DeleteColumn, self).renderCell(item)