示例#1
0
 def _getSize(self, db):
     """Get the database size in a human readable format.
     """
     size = db.getSize()
     if not isinstance(size, (int, long, float)):
         return str(size)
     return byteDisplay(size)
示例#2
0
文件: tests.py 项目: kislovm/findburo
 def test_byteDisplay(self):
     from zope.size import byteDisplay
     self.assertEqual(byteDisplay(0), u'0 KB')
     self.assertEqual(byteDisplay(1), u'1 KB')
     self.assertEqual(byteDisplay(2048), u'${size} KB')
     self.assertEqual(byteDisplay(2048).mapping, {'size': '2'})
     self.assertEqual(byteDisplay(2000000), u'${size} MB')
     self.assertEqual(byteDisplay(2000000).mapping, {'size': '1.91'})
示例#3
0
 def test_byteDisplay(self):
     from zope.size import byteDisplay
     self.assertEqual(byteDisplay(0), '0 KB')
     self.assertEqual(byteDisplay(1), '1 KB')
     self.assertEqual(byteDisplay(2048), '${size} KB')
     self.assertEqual(byteDisplay(2048).mapping, {'size': '2'})
     self.assertEqual(byteDisplay(2000000), '${size} MB')
     self.assertEqual(byteDisplay(2000000).mapping, {'size': '1.91'})
示例#4
0
 def sizeForDisplay(self):
     '''See `ISized`'''
     w, h = self._image.getImageSize()
     if w < 0:
         w = '?'
     if h < 0:
         h = '?'
     bytes = self._image.getSize()
     byte_size = byteDisplay(bytes)
     mapping = byte_size.mapping
     if mapping is None:
         mapping = {}
     mapping.update({'width': str(w), 'height': str(h)})
     #TODO the way this message id is defined, it won't be picked up by
     # i18nextract and never show up in message catalogs
     return _(byte_size + ' ${width}x${height}', mapping=mapping)
示例#5
0
 def sizeForDisplay(self):
     '''See `ISized`'''
     w, h = self._image.getImageSize()
     if w < 0:
         w = '?'
     if h < 0:
         h = '?'
     bytes = self._image.getSize()
     byte_size = byteDisplay(bytes)
     mapping = byte_size.mapping
     if mapping is None:
         mapping = {}
     mapping.update({'width': str(w), 'height': str(h)})
     # TODO the way this message id is defined, it won't be picked up by
     # i18nextract and never show up in message catalogs
     return _(byte_size + ' ${width}x${height}', mapping=mapping)
示例#6
0
    def sizeForDisplay(self):
        """See `ISized`"""
        bytes = self._container.getSize()
        byte_size = byteDisplay(bytes)

        num_items = len(self._container)

        mapping = byte_size.mapping
        if mapping is None:
            mapping = {}
        mapping.update({'items': str(num_items)})

        if num_items == 1:
            return _("${items} item / " + byte_size , mapping=mapping)
        else:
            return _("${items} items / " + byte_size , mapping=mapping)
示例#7
0
 def sizeForDisplay(self):
     """See `ISized`"""
     w, h = self._image.getImageSize()
     if w < 0:
         w = "?"
     if h < 0:
         h = "?"
     bytes = self._image.getSize()
     byte_size = byteDisplay(bytes)
     mapping = byte_size.mapping
     if mapping is None:
         mapping = {}
     mapping.update({"width": str(w), "height": str(h)})
     # TODO the way this message id is defined, it won't be picked up by
     # i18nextract and never show up in message catalogs
     return _(byte_size + " ${width}x${height}", mapping=mapping)
 def sizeForDisplay(self):
     return byteDisplay(self.size)
示例#9
0
 def file_size(self):
     if INamed.providedBy(self.value):
         return byteDisplay(self.value.getSize())
     else:
         return "0 KB"
示例#10
0
 def toLocalizedSize(self, size):
     """Convert an integer to a localized size string
     """
     return translate(byteDisplay(size), context=self.request)
示例#11
0
文件: views.py 项目: eea/eionet.theme
 def file_size(self):
     """file_size."""
     if INamed.providedBy(self.context.file):
         return byteDisplay(self.context.file.getSize())
     return "0 KB"
示例#12
0
 def sizeForDisplay(self):
     return byteDisplay(self.context.size)
示例#13
0
 def sizeForDisplay(self):
     return size.byteDisplay(self._size)
示例#14
0
 def file_size(self):
     if INamed.providedBy(self.value):
         return byteDisplay(self.value.getSize())
     else:
         return "0 KB"
示例#15
0
    def items(self):
        """
        """
        context, request = self.context, self.request
        plone_utils = getToolByName(context, 'plone_utils')
        portal_workflow = getToolByName(context, 'portal_workflow')
        getTitleForStateOnType = portal_workflow.getTitleForStateOnType
        portal_properties = getToolByName(context, 'portal_properties')
        site_properties = portal_properties.site_properties
        mimetypes_registry = getToolByName(context, 'mimetypes_registry')
        portal_url = getToolByName(context, 'portal_url')()
        portal_catalog = getToolByName(context, 'portal_catalog')

        use_view_action = site_properties.getProperty('typesUseViewActionInListings', ())

        brains_image_uid = []
        if self.isRichFileImageInstalled() == True:
            brains_image = portal_catalog(object_provides='atreal.richfile.image.interfaces.IImage')
            for brain_image in brains_image:
                brains_image_uid.append(brain_image.UID)

        albumview = False
        if self.isOverrideAlbumViewInstalled() == True:
            albumview = True

        results = []
        i = -1
        for uid, item in self.cart.items():
            i += 1
            pc = portal_catalog(UID=uid)
            table_row_class = "draggable "
            table_row_class += (i + 1) % 2 == 0 and "even" or "odd"

            if len(pc) == 0:
                table_row_class += " deleted"
                results.append(dict(
                    UID = uid,
                    id = item.name,
                    title_or_id = item.name,
                    is_deleted = True,
                    table_row_class = table_row_class,
                ))
            else:
                brain = pc[0]

                url = brain.getURL()
                path = brain.getPath or "/".join(brain.getPhysicalPath())

                type_class = 'contenttype-' + plone_utils.normalizeString(
                    brain.portal_type)

                review_state = brain.review_state
                state_class = 'state-' + plone_utils.normalizeString(review_state)
                relative_url = brain.getURL(relative=True)
                obj_type = brain.portal_type

                is_expired = context.isExpired(brain)
                state_title = getTitleForStateOnType(review_state, obj_type)
                quoted_id = urllib.quote_plus(brain.getId)

                if obj_type in use_view_action:
                    view_url = url + '/view'
                else:
                    view_url = url

                if brain.UID in brains_image_uid:
                    thumb = url+'/rfimage/thumb'
                elif brain.portal_type == "Image":
                    thumb = url+'/image_thumb'
                elif albumview:
                    thumb = "%s/rf_%s" % (portal_url, brain.getIcon)
                else:
                    thumb = False

                object_info = dict(
                    UID=brain.UID,
                    url=url,
                    id=brain.getId,
                    quoted_id=quoted_id,
                    path=path,
                    title_or_id=brain.pretty_title_or_id(),
                    description=brain.Description,
                    obj_type=obj_type,
                    size=brain.getObjSize,
                    icon=brain.getIcon,
                    type_class=type_class,
                    wf_state=review_state,
                    state_title=getTitleForStateOnType(review_state, obj_type),
                    state_class=state_class,
                    folderish=brain.is_folderish,
                    relative_url=relative_url,
                    view_url=view_url,
                    table_row_class=table_row_class,
                    thumb=thumb,
                    is_expired=is_expired,
                    is_deleted=False,
                    is_additional=False,
                    fieldname=None,
                    lineitem=item,
                    brain=brain,
                )
                results.append(object_info)

                # ##### additional fields # #########
                if hasattr(item, 'additional_attachments'):
                    obj = brain.getObject()
                    for fieldname in item.additional_attachments:
                        i += 1
                        table_row_class = "additional draggable "
                        table_row_class += (i + 1) % 2 == 0 and "even" or "odd"
                        if len(pc) == 0:
                            table_row_class += " deleted"
                            results.append(dict(
                                UID=uid,
                                id=item.name + '-' + fieldname,
                                title_or_id="%s (%s)" % (item.name, fieldname),
                                is_deleted=True,
                                table_row_class=table_row_class,
                            ))
                        else:

                            state_class = 'state-' + plone_utils.normalizeString(review_state)
                            relative_url = brain.getURL(relative=True)
                            obj_type = obj.portal_type
                            view_url = obj_type in use_view_action and (url + '/view') or url

                            field = obj.getField(fieldname)
                            value = field.get(obj)
                            if not value:
                                # Empty BlobWrapper, the file was
                                # removed after the item was put in the cart.
                                table_row_class += " deleted"
                                results.append(dict(
                                    UID=uid,
                                    id=item.name + '-' + fieldname,
                                    title_or_id="%s (%s)" % (item.name, fieldname),
                                    is_deleted=True,
                                    table_row_class=table_row_class,
                                ))
                                continue

                            filename = value.filename
                            icon = mimetypes_registry.lookupExtension(filename).icon_path
                            size = byteDisplay(value.get_size())
                            size = translate(size, context=request, target_language='en')

                            type_class = 'contenttype-' + plone_utils.normalizeString(
                                brain.portal_type) + '-' + field.type
                            # for the moment, content sizes are not translated,
                            # so we don't translate additional fields sizes

                            attachment_info = dict(
                                UID='%s-%s' % (brain.UID, fieldname),
                                url=url,
                                id='%s-%s' % (brain.getId, fieldname),
                                quoted_id='%s-%s' % (quoted_id, fieldname),
                                path=path,
                                title_or_id=filename,
                                description="",
                                obj_type=field.type,
                                size=size,
                                icon=icon,
                                type_class=type_class,
                                wf_state=review_state,
                                state_title=state_title,
                                state_class=state_class,
                                folderish=False,
                                relative_url=relative_url,
                                view_url="%s/at_download/%s" % (url, fieldname),
                                table_row_class=table_row_class,
                                thumb=False,
                                is_expired=is_expired,
                                is_deleted=False,
                                is_additional=True,
                                fieldname=fieldname,
                                lineitem=item,
                                brain=brain,
                            )
                            results.append(attachment_info)

        return results
 def _getSize(self, db):
     """Get the database size in a human readable format."""
     size = db.getSize() # IDatabase requires this to return byte size
     assert isinstance(size, size_types) or size is None
     return byteDisplay(size or 0)
示例#17
0
 def sizeForDisplay(self):
     return byteDisplay(self.context.size)
示例#18
0
 def file_size(self):
     return byteDisplay(self.field.getSize())
 def toLocalizedSize(self, size):
     """Convert an integer to a localized size string
     """
     return translate(byteDisplay(size), context=self.request)
示例#20
0
 def file_size(self):
     return byteDisplay(self.field.getSize())