增强Plone内容管理系统Python API
项目描述
kitconcept.api
增强plone.api的界面。
安装
将kitconcept.api
添加到您的包的要求中(在setup.py或setup.cfg中)。
使用
在您的代码库中,将from plone import api
替换为from kitconcept import api
。
包含api.addon
api.addon.get_addons
返回安装中插件列表(kitconcept.api._typing.AddonInformation
)。
示例
from kitconcept import api
from kitconcept.api._typing import AddonInformation
addons = api.addon.get_addons()
# List of AddonInformation
assert isinstance(addons, list)
assert isinstance(addons[0], AddonInformation)
可以使用参数limit
过滤插件。
from kitconcept import api
# Return all valid addons
all_addons = api.addon.get_addons()
# Only installed addons
installed_addons = api.addon.get_addons(limit="installed")
# Only upgradable (already installed) addons
upgradable_addons = api.addon.get_addons(limit="upgradable")
# Available addons -- not installed
available_addons = api.addon.get_addons(limit="available")
# It is also possible to get addons not available in the UI
# Only broken addons (with installation problems)
broken_addons = api.addon.get_addons(limit="broken")
# Only non-installable addons
broken_addons = api.addon.get_addons(limit="non_installable")
api.addon.get_addons_ids
与api.addon.get_addons
类似,但只返回插件ID。
示例
from kitconcept import api
addons_ids = api.addon.get_addons_ids()
# List of str
assert isinstance(addons_ids, list)
assert isinstance(addons_ids[0], str)
api.addon.get
获取一个插件的详细信息。
示例
from kitconcept import api
# Get information about plone.restapi
addon = api.addon.get("plone.restapi")
assert addon.id, "plone.restapi"
assert addon.valid is True
assert addon.description == "RESTful hypermedia API for Plone."
assert addon.profile_type == "default"
assert addon.version == "8.21.0"
api.addon.install
安装一个插件
示例
from kitconcept import api
status = api.addon.install("plone.restapi")
assert status is True
assert "plone.restapi" in api.addon.get_addons_ids(limit="installed")
api.addon.uninstall
卸载一个插件
示例
from kitconcept import api
status = api.addon.uninstall("plone.restapi")
assert status is True
assert "plone.restapi" in api.addon.get_addons_ids(limit="available")
api.content的扩展
api.content.get_constrains
获取文件夹式内容的约束(限制)。
示例
from kitconcept import api
constrains = api.content.get_constrains(obj)
# Constrains are not enabled by default
assert constrains.mode == "disabled"
# Document is allowed to be added to obj
assert "Document" in constrains.allowed_types
# Document is a prefered type to be added to obj
assert "Document" in constrains.immediately_addable_types
api.content.set_constrains
设置文件夹式内容的约束(限制)。
示例
from kitconcept import api
constrains = api.content.set_constrains(
obj,
mode="enabled",
allowed_types=["Folder", "Image"],
immediately_addable_types=[
"Image",
],
)
# Constrains now enabled
assert constrains.mode == "enabled"
# Folder and Image are allowed to be added to obj
assert "Folder" in constrains.allowed_types
assert "Image" in constrains.allowed_types
# Image is a prefered type to be added to obj
assert "Image" in constrains.immediately_addable_types
api.content.serialize
使用在plone.restapi中定义的序列化器序列化一个对象。
示例
from kitconcept import api
portal = api.portal.get()
data = api.content.serialize(portal)
# data is a dictionary
assert isinstance(data, dict)
# We have the serialized info
assert data["@type"] == "Plone Site"
assert data["id"] == "plone"
assert data["title"] == "Site"
包含api.fti
api.fti.get_types
返回一个字典,包含为 Portal 注册的所有 FTI。
示例
from kitconcept import api
from plone.dexterity.fti import DexterityFTI
ftis = api.fti.get_types()
# Dictionary with FTI
assert isinstance(ftis, dict)
# Document FTI should be present
assert "Document" in ftis
assert isinstance(ftis["Document"], DexterityFTI)
api.fti.get
返回一个类型的 FTI。
示例
from kitconcept import api
from plone.dexterity.fti import DexterityFTI
fti = api.fti.get(type="Document")
# FTI for Document content type
assert isinstance(fti, DexterityFTI)
assert fti.id == "Document
api.fti.behaviors_for_type
返回一个类型的所有行为的列表。
示例
from kitconcept import api
from plone.dexterity.fti import DexterityFTI
behaviors = api.fti.behaviors_for_type(type="Document")
# List of behaviors for Document
assert isinstance(behaviors, list)
assert "plone.dublincore" in behaviors
api.fti.get_behavior_registration
返回一个类型的所有行为的列表。
示例
from kitconcept import api
from plone.behavior.registration import BehaviorRegistration
behavior = api.fti.get_behavior_registration(name="plone.dublincore")
# Behavior registration info
assert isinstance(behavior, BehaviorRegistration)
assert behavior.title == "Dublin Core metadata"
api.fti.add_behavior_for_type
将给定的行为添加到给定的 Portal 类型。
示例
from kitconcept import api
api.fti.add_behavior_for_type("Document", "plone.leadimage")
behaviors = api.fti.behaviors_for_type(type="Document")
# List of behaviors for Document
assert isinstance(behaviors, list)
assert "plone.leadimage" in behaviors
api.fti.remove_behavior_for_type
从给定的 Portal 类型中移除给定的行为。
示例
from kitconcept import api
api.fti.remove_behavior_for_type("Document", "plone.allowdiscussion")
behaviors = api.fti.behaviors_for_type(type="Document")
# List of behaviors for Document
assert isinstance(behaviors, list)
assert "plone.allowdiscussion" not in behaviors
包含api.vocabulary
api.vocabulary.get_vocabulary_names
返回所有词汇的名称列表。
示例
from kitconcept import api
vocabularies = api.addon.get_vocabulary_names()
# List of str
assert isinstance(vocabularies, list)
assert isinstance(vocabularies[0], str)
assert "plone.app.vocabularies.Month" in vocabularies
api.vocabulary.get
获取一个词汇。
示例
from kitconcept import api
from zope.schema.vocabulary import SimpleVocabulary
# Return one vocabulary
vocabulary = api.vocabulary.get("plone.app.vocabularies.Month")
assert isinstance(vocabulary, SimpleVocabulary)
assert vocabulary.getTerm(0).title == "month_jan"
愿望清单
- api.concent.deserialize
- plone.app.multilingual: 翻译管理
项目详情
下载文件
下载您平台上的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源分发
kitconcept.api-1.0.0a4.tar.gz (23.1 kB 查看散列)
构建分发
kitconcept.api-1.0.0a4-py3-none-any.whl (25.3 kB 查看散列)