当前位置: 首页>>代码示例>>Python>>正文


Python AssetMetadata.from_mongo方法代码示例

本文整理汇总了Python中xmodule.assetstore.AssetMetadata.from_mongo方法的典型用法代码示例。如果您正苦于以下问题:Python AssetMetadata.from_mongo方法的具体用法?Python AssetMetadata.from_mongo怎么用?Python AssetMetadata.from_mongo使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在xmodule.assetstore.AssetMetadata的用法示例。


在下文中一共展示了AssetMetadata.from_mongo方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: get_all_asset_metadata

# 需要导入模块: from xmodule.assetstore import AssetMetadata [as 别名]
# 或者: from xmodule.assetstore.AssetMetadata import from_mongo [as 别名]
    def get_all_asset_metadata(self, course_key, asset_type, start=0, maxresults=-1, sort=None, **kwargs):
        """
        Returns a list of asset metadata for all assets of the given asset_type in the course.

        Args:
            course_key (CourseKey): course identifier
            asset_type (str): the block_type of the assets to return
            start (int): optional - start at this asset number. Zero-based!
            maxresults (int): optional - return at most this many, -1 means no limit
            sort (array): optional - None means no sort
                (sort_by (str), sort_order (str))
                sort_by - one of 'uploadDate' or 'displayname'
                sort_order - one of SortOrder.ascending or SortOrder.descending

        Returns:
            List of AssetMetadata objects.
        """
        course_assets = self._find_course_assets(course_key)
        if course_assets is None:
            # If no course assets are found, return None instead of empty list
            # to distinguish zero assets from "not able to retrieve assets".
            return None

        # Determine the proper sort - with defaults of ('displayname', SortOrder.ascending).
        sort_field = 'filename'
        sort_order = ModuleStoreEnum.SortOrder.ascending
        if sort:
            if sort[0] == 'uploadDate':
                sort_field = 'edited_on'
            if sort[1] == ModuleStoreEnum.SortOrder.descending:
                sort_order = ModuleStoreEnum.SortOrder.descending

        all_assets = SortedListWithKey(course_assets.get(asset_type, []), key=itemgetter(sort_field))
        num_assets = len(all_assets)

        start_idx = start
        end_idx = min(num_assets, start + maxresults)
        if maxresults < 0:
            # No limit on the results.
            end_idx = num_assets

        step_incr = 1
        if sort_order == ModuleStoreEnum.SortOrder.descending:
            # Flip the indices and iterate backwards.
            step_incr = -1
            start_idx = (num_assets - 1) - start_idx
            end_idx = (num_assets - 1) - end_idx

        ret_assets = []
        for idx in xrange(start_idx, end_idx, step_incr):
            raw_asset = all_assets[idx]
            new_asset = AssetMetadata(course_key.make_asset_key(asset_type, raw_asset['filename']))
            new_asset.from_mongo(raw_asset)
            ret_assets.append(new_asset)
        return ret_assets
开发者ID:CDOT-EDX,项目名称:edx-platform,代码行数:57,代码来源:__init__.py

示例2: find_asset_metadata

# 需要导入模块: from xmodule.assetstore import AssetMetadata [as 别名]
# 或者: from xmodule.assetstore.AssetMetadata import from_mongo [as 别名]
    def find_asset_metadata(self, asset_key, **kwargs):
        """
        Find the metadata for a particular course asset.

        Arguments:
            asset_key (AssetKey): key containing original asset filename

        Returns:
            asset metadata (AssetMetadata) -or- None if not found
        """
        course_assets, asset_idx = self._find_course_asset(asset_key)
        if asset_idx is None:
            return None

        info = asset_key.block_type
        mdata = AssetMetadata(asset_key, asset_key.path, **kwargs)
        all_assets = course_assets[info]
        mdata.from_mongo(all_assets[asset_idx])
        return mdata
开发者ID:CDOT-EDX,项目名称:edx-platform,代码行数:21,代码来源:__init__.py


注:本文中的xmodule.assetstore.AssetMetadata.from_mongo方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。