def getAttachments(self):
        context = self.context
        request = self.request
        extension = IAttachmentsExtension(context)

        ids = getUtility(IIntIds)
        url = '%s/@@content.attachment'%absoluteURL(getSite(), request)

        attachments = []
        for name in self.model.attachments:
            attach = extension.get(name)

            aurl = '%s/%s'%(url, ids.getId(attach))

            size = ISized(attach)
            if size.sizeForSorting()[0] is not None:
                size = size.sizeForDisplay()
            else:
                size = ''

            attachments.append(
                {'name': name,
                 'title': attach.title or name,
                 'description': attach.description,
                 'url': aurl,
                 'size': size,
                 'icon': queryMultiAdapter((attach, request), name='zmi_icon')})

        return attachments
    def getAttachments(self):
        context = self.context
        request = self.request
        extension = IAttachmentsExtension(context)

        ids = getUtility(IIntIds)
        url = "%s/@@content.attachment" % absoluteURL(getSite(), self.request)

        attachments = []
        for aId in self.model.attachments:
            attach = extension.get(aId)
            aurl = "%s/content.attachments/%s" % (url, ids.getId(attach))

            size = ISized(attach)
            if size.sizeForSorting()[0] is not None:
                size = size.sizeForDisplay()
            else:
                size = ""

            attachments.append(
                {
                    "name": aId,
                    "title": attach.title or aId,
                    "description": attach.description,
                    "url": aurl,
                    "size": size,
                    "icon": queryMultiAdapter((attach, request), name="zmi_icon"),
                }
            )

        return attachments
    def getImages(self):
        context = self.context
        extension = IAttachmentsExtension(context)

        ids = getUtility(IIntIds)
        url = '%s/@@content.attachment'%absoluteURL(getSite(), self.request)

        for imageId in self.model.images:
            image = extension.get(imageId)

            if IImage.providedBy(image) and image:
                img_url = '%s/%s'%(url, ids.getId(removeAllProxies(image)))
                preview = image.preview.generatePreview(100, 100)

                yield {'name': image.__name__,
                       'title': image.title or image.__name__,
                       'url': img_url,
                       'purl': '%s/preview/100x100'%img_url}
    def getImage(self):
        context = self.context
        extension = IAttachmentsExtension(context)

        image = extension.get(self.__parent__.model.primaryImage)

        if IImage.providedBy(image) and image:
            preview = image.preview.generatePreview(100, 100)

            url = "%s/@@content.attachment/%s" % (
                absoluteURL(getSite(), self.request),
                getUtility(IIntIds).queryId(image),
            )

            return {
                "name": image.__name__,
                "title": image.title or image.__name__,
                "url": url,
                "purl": "%s/preview/100x100" % url,
            }
Esempio n. 5
0
def CopyAttachments(object, obevent):
    request = getRequest()
    if request is None:
        return

    if IContentEditorPreference(request.principal).editor != 'extjs':
        return

    data = obevent.data
    if data.format != 'zope.source.html':
        return

    ids = getUtility(IIntIds)
    if ids.queryId(object) is None:
        return

    res = splitText.split(data.text)
    if len(res) <= 1:
        return

    extension = IAttachmentsExtension(object)

    for idx in range(1, len(res)-1, 2):
        try:
            content = ids.queryObject(int(res[idx][26:-1]))
            if content is None:
                continue
        except:
            continue

        if content is \
                removeAllProxies(extension.get(content.__name__)):
            continue

        copier = IObjectCopier(content)
        newName = copier.copyTo(extension)
        newContent = extension[newName]

        res[idx] = '%s%s"'%(res[idx][:26], ids.queryId(newContent))

    data.text = u''.join(res)
    def getImages(self):
        context = self.context
        extension = IAttachmentsExtension(context)
        url = absoluteURL(context, self.request)

        ids = getUtility(IIntIds)
        url = "%s/@@content.attachment" % absoluteURL(getSite(), self.request)

        for imageId in self.model.additionalImages:
            image = extension.get(imageId)

            if IImage.providedBy(image) and image:
                preview = image.preview.generatePreview(100, 100)

                img_url = "%s/%s" % (url, ids.getId(image))

                yield {
                    "name": imageId,
                    "title": image.title or imageId,
                    "url": img_url,
                    "purl": "%s/preview/100x100" % img_url,
                }
    def getInfo(self, contentId):
        content = self.container[contentId]

        name = content.__name__
        item = IItem(content, None)

        item = {'id': name,
                'url': '%s/%s/'%(self.url, name),
                'title': getattr(item, 'title', _('No title')) or _('No title'),
                'description':  getattr(item, 'description', ''),
                'image': None}

        if self.showImage:
            image = None
            ids = getUtility(IIntIds)
            url = '%s/@@content.attachment'%absoluteURL(getSite(), self.request)

            extension = IAttachmentsExtension(content, None)
            if extension is None:
                item['image'] = None
            else:
                for attach in extension.values():
                    if IImage.providedBy(attach) and attach:
                        img_url = '%s/%s'%(
                            url, ids.getId(removeAllProxies(attach)))
                        preview = attach.preview.generatePreview(100, 100)

                        image = {'name': attach.__name__,
                                 'title': attach.title,
                                 'image': attach,
                                 'url': img_url,
                                 'purl': '%s/preview/100x100'%img_url}
                        break
                item['image'] = image

        return item