possibility to unfile items from classifying folders (#3875)

This commit is contained in:
Frédéric Péters 2013-12-30 14:50:51 +01:00
parent 4602282e10
commit 0fd8794d83
4 changed files with 40 additions and 1 deletions

View File

@ -30,6 +30,11 @@
image="pfwbgedfolder_icon.png"
/>
<browser:resource
name="unlink_icon.png"
image="unlink_icon.png"
/>
<browser:page
name="view"
for="pfwbged.folder.IFolder"

View File

@ -3,6 +3,7 @@ from zope.interface import implements
from five import grok
from zope import component
from zope import schema
from zope.interface import Interface
from zc.relation.interfaces import ICatalog
from zope.app.intid.interfaces import IIntIds
@ -30,6 +31,9 @@ from zope.app.intid.interfaces import IIntIds
from z3c.relationfield import RelationValue
from zope.lifecycleevent.interfaces import IObjectAddedEvent
import z3c.table.column
from pfwbged.collection.searchview import ResultsTable
from collective.dms.thesaurus.keywordsfield import ThesaurusKeywords
@ -108,11 +112,39 @@ grok.templatedir('templates')
grok.context(IDexterityContainer)
class ItemsTable(ResultsTable):
def setUpColumns(self):
columns = super(ItemsTable, self).setUpColumns()
# do not include the delete column, from classifying folders we only
# provide an icon for unlink
columns = [x for x in columns if x.__name__ != 'dms.delete']
return columns
from collective.dms.basecontent.browser import column
class UnfileColumn(column.IconColumn, column.LinkColumn):
grok.name('pfwbged.folder.unfile')
grok.adapts(Interface, Interface, ItemsTable)
header = u''
iconName = "++resource++unlink_icon.png"
linkContent = _('Unfile')
def getLinkURL(self, item):
for id, child in item.getObject().contentItems():
if not ILink.providedBy(child):
continue
if child.folder.to_object == self.context:
return item.getURL() + '/' + id + '/delete_confirmation'
return '#'
class ClassifiedItems:
@property
def table(self):
table = ResultsTable(self.context, self.request)
table = ItemsTable(self.context, self.request)
table.values = self.documents()
table.update()
return table

View File

@ -90,6 +90,8 @@ class DeleteColumn(column.DeleteColumn):
grok.name('dms.delete')
grok.adapts(Interface, Interface, LinksTable)
iconName = "++resource++unlink_icon.png"
class LinkViewlet(BaseViewlet):
grok.order(15)

Binary file not shown.

After

Width:  |  Height:  |  Size: 760 B