diff --git a/imio/dms/mail/adapters.py b/imio/dms/mail/adapters.py index ac748866..e9844f61 100644 --- a/imio/dms/mail/adapters.py +++ b/imio/dms/mail/adapters.py @@ -3,6 +3,7 @@ from AccessControl import getSecurityManager from collective.classification.folder.interfaces import IServiceInCharge from collective.classification.folder.interfaces import IServiceInCopy +from collective.collabora.interfaces import IStoredFile from collective.contact.core.content.held_position import IHeldPosition from collective.contact.core.content.organization import IOrganization from collective.contact.core.indexers import contact_source @@ -15,6 +16,7 @@ from collective.dms.basecontent.dmsfile import IDmsFile from collective.dms.mailcontent.indexers import add_parent_organizations from collective.dms.scanbehavior.behaviors.behaviors import IScanFields +from collective.documentgenerator.content.pod_template import IPODTemplate from collective.task.interfaces import ITaskContent from imio.dms.mail import BACK_OR_AGAIN_ICONS from imio.dms.mail import IM_READER_SERVICE_FUNCTIONS @@ -41,6 +43,7 @@ from plone.app.contentmenu.menu import WorkflowMenu as OrigWorkflowMenu from plone.app.contenttypes.indexers import _unicode_save_string_concat from plone.indexer import indexer +from plone.namedfile.file import NamedBlobFile from plone.registry.interfaces import IRegistry from plone.rfc822.interfaces import IPrimaryFieldInfo from Products.ATContentTypes.interfaces.folder import IATFolder @@ -1043,3 +1046,30 @@ def get(self): "title": child.title, "UID": child.UID(), } + + +@adapter(IPODTemplate) +@implementer(IStoredFile) +class StoredPodTemplate(object): + """Access the file storage on a PODTemplate content object. + + i.e. the file attribute on the content object. + """ + + def __init__(self, context): + self.context = context + self.filename = context.odt_file.filename + self.contentType = context.odt_file.contentType + + @property + def data(self): + return self.context.odt_file.data + + @data.setter + def data(self, data): + self.context.odt_file = NamedBlobFile( + data=data, filename=self.filename, contentType=self.contentType + ) + + def getSize(self): + return self.context.odt_file.getSize() diff --git a/imio/dms/mail/browser/configure.zcml b/imio/dms/mail/browser/configure.zcml index 80666ecf..b723f294 100644 --- a/imio/dms/mail/browser/configure.zcml +++ b/imio/dms/mail/browser/configure.zcml @@ -604,6 +604,30 @@ permission="zope2.View" /> + + + + + + + + """ % (link_title, "%s/%s" % (self.table.portal_url, icon_name)) - return '%s' % ( + return '%s' % ( link_url, self.getLinkTarget(item), self.getLinkCSS(item),