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"
|
image="pfwbgedfolder_icon.png"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
<browser:resource
|
||||||
|
name="unlink_icon.png"
|
||||||
|
image="unlink_icon.png"
|
||||||
|
/>
|
||||||
|
|
||||||
<browser:page
|
<browser:page
|
||||||
name="view"
|
name="view"
|
||||||
for="pfwbged.folder.IFolder"
|
for="pfwbged.folder.IFolder"
|
||||||
|
|
|
@ -3,6 +3,7 @@ from zope.interface import implements
|
||||||
from five import grok
|
from five import grok
|
||||||
from zope import component
|
from zope import component
|
||||||
from zope import schema
|
from zope import schema
|
||||||
|
from zope.interface import Interface
|
||||||
|
|
||||||
from zc.relation.interfaces import ICatalog
|
from zc.relation.interfaces import ICatalog
|
||||||
from zope.app.intid.interfaces import IIntIds
|
from zope.app.intid.interfaces import IIntIds
|
||||||
|
@ -30,6 +31,9 @@ from zope.app.intid.interfaces import IIntIds
|
||||||
from z3c.relationfield import RelationValue
|
from z3c.relationfield import RelationValue
|
||||||
from zope.lifecycleevent.interfaces import IObjectAddedEvent
|
from zope.lifecycleevent.interfaces import IObjectAddedEvent
|
||||||
|
|
||||||
|
import z3c.table.column
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
from pfwbged.collection.searchview import ResultsTable
|
from pfwbged.collection.searchview import ResultsTable
|
||||||
from collective.dms.thesaurus.keywordsfield import ThesaurusKeywords
|
from collective.dms.thesaurus.keywordsfield import ThesaurusKeywords
|
||||||
|
@ -108,11 +112,39 @@ grok.templatedir('templates')
|
||||||
grok.context(IDexterityContainer)
|
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:
|
class ClassifiedItems:
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def table(self):
|
def table(self):
|
||||||
table = ResultsTable(self.context, self.request)
|
table = ItemsTable(self.context, self.request)
|
||||||
table.values = self.documents()
|
table.values = self.documents()
|
||||||
table.update()
|
table.update()
|
||||||
return table
|
return table
|
||||||
|
|
|
@ -90,6 +90,8 @@ class DeleteColumn(column.DeleteColumn):
|
||||||
grok.name('dms.delete')
|
grok.name('dms.delete')
|
||||||
grok.adapts(Interface, Interface, LinksTable)
|
grok.adapts(Interface, Interface, LinksTable)
|
||||||
|
|
||||||
|
iconName = "++resource++unlink_icon.png"
|
||||||
|
|
||||||
|
|
||||||
class LinkViewlet(BaseViewlet):
|
class LinkViewlet(BaseViewlet):
|
||||||
grok.order(15)
|
grok.order(15)
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 760 B |
Reference in New Issue