possibility to unfile items from classifying folders (#3875)
This commit is contained in:
parent
4602282e10
commit
0fd8794d83
|
@ -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"
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 |
Reference in New Issue