为Plone项目生成sampledata的UI和实用方法
项目描述
为什么使用这个?
标准化的sampledata使得在项目上工作变得容易得多(尤其是在团队合作时)。
此软件包简化了为您的plone项目生成sampledata的过程。
如何使用它
对于在项目上工作的开发者,有一个视图列出了所有可用的sampledata插件,并可以运行它们。
https://127.0.0.1/plone/@@sampledata
默认情况下,视图不会列出任何插件。上面的屏幕显示了通过 <include package="wm.sampledata.example" /> 激活的示例插件。
编写和注册您自定义的sampledata插件非常简单
from wm.sampledata import utils
class MyPlugin(object):
implements(ISampleDataPlugin)
title = u"My Plugin Content"
description = u"Creates a portlet and a random image"
def generate(self, context):
portlet = StaticAssignment(u"Sample Portlet", "<p>some content</p>")
utils.addPortlet(context, 'plone.leftcolumn', portlet)
utils.createImage(context, 'random-nature.jpg',
file = utils.getRandomImage(category='nature', gray=False),
title=u"Random Image",
description=u"Downloaded from lorempixel.com")
utils.createImage(context, 'random-sportscar.jpg',
file = utils.getRandomFlickrImage(keywords=['car','sport'],
match_all_keywords=True,
gray=False),
title=u"Random Flickr Image",
description=u"Downloaded from loremflickr.com")
myPlugin = MyPlugin()
component.provideUtility(myPlugin,
ISampleDataPlugin
'my.plugin')
请参阅 wm.sampledata.example 以获取自定义插件的完整示例。
您还可以将插件(甚至其他插件组)分组,这样用户只需运行一个插件即可正确设置他们的sampledata。
from wm.sampledata import PluginGroup
class TestPortal(PluginGroup):
PLUGINS = [
MyPlugin, # also 'my.plugin' could be used
MainMenu,
AnotherPluginGroup,
]
title = u"Complete Test Portal"
description = u"Creates Main Menu items, Sampledata Folder and Portlets"
请注意,您也可以在PLUGINS中使用实用程序名称,但直接使用类在大多数情况下更为简单。
在wm.sampledata.utils中有一系列日益增长的实用方法(例如,用于处理部件和文件,或从http://lorempixel.com下载图片),您可以在插件中使用这些方法。
安装
只需将wm.sampledata添加到构建out的实例eggs中 - 在带有z3c.autoinclude的Plone版本中不需要zcml标签(Plone>=3.3)。
[buildout] ... eggs = ... wm.sampledata
为什么还要另一个包?
有其他几个用于生成测试/示例数据的包,但它们都不适合我的用例。(这涉及为可插拔的示例数据生成器提供用户界面,以便开发人员/皮肤设计师在项目开发时可以使用标准化数据)
以前我在plone.users上询问了其他人在Plone上做什么
- z3c.sampledata
将执行相同的功能以及更多(依赖项、组、每个插件的配置UI)
对我来说,在zope2实例上运行它过于复杂,并且它似乎是为zope3量身定制的。
基本上,如果能使用wm.sampledata来使用z3c.sampledata并为它提供针对Plone的特定插件将非常棒。
- zopyx.ipsumplone
似乎提供了非常相似的实用方法。没有可插拔的生成器,没有用户界面
- ely.contentgenerator
提供了一种xml语法来创建示例内容,可能在自定义插件中使用。
- collective.contentgenerator
看起来这个是为创建(随机)示例数据用于压力测试而设计的
- collective.lorem
内容动作,用于填充内容为lorem-ipsum文本,并提供实用方法 createStandardContent 用于创建随机内容(新闻、文档、文件、图片)和 createNestedStructure 用于创建任意嵌套文件夹结构。
- collective.loremipsum
允许创建成员(使用从fakenamegenerator.com获取的名称)
- zettwerk.setup
包含用于setuphandlers的实用方法。在structure.py中的方法提供了一个从字典列表创建内容的方法。
待办事项
包含通过API从http://www.randomtext.me/获取的Ipsum Ipsum文本
(有关其他有趣的/有趣的生成器,请参阅http://designshack.net/articles/inspiration/30-useful-and-hilarious-lorem-ipsum-generators/)
在实用方法中使用plone.api或替换它们
最终提供api以使用fakenamegenerator.com获取名称(collective.loremipsum已经使用该功能)
贡献
变更日志
0.7.0 (2021-04-29)
设置环境变量CI=true可禁用图片下载(用于运行生成示例数据的测试)
0.6.1 (2019-10-29)
在setup.py中使用兼容pypi的电子邮件地址
0.6.0 (2019-10-29)
使用python-requests下载图片
破坏性更改:将图像数据作为字符串返回(无需StringIO缓冲区)
utils.get_placeholder_image 允许从https://placeholder.com/ 获取图像 [fRiSi]
0.5.2 (2016-06-14)
修复用户代理切换器以与Mac/Windows兼容。 [pcdummy]
0.5.1 (2016-05-03)
为图像下载器添加用户代理。 [pcdummy]
0.5 (2016-03-31)
util.getFlickrImage 和 utils.getRandomFlickrImage 允许从loremflickr.com获取图像。 [pcdummy, fRiSi]
0.4 (2016-03-08)
类可以用于定义插件组以及实用程序名称 [pcdummy]
0.3 (2014-08-25)
utils.doWorkflowTransition在内部使用plone_utils,因为portal_workflow.doActionFor在发布时不会设置有效日期
在finally子句中抛出的错误在debug=True时不显示
添加了实用函数createFile,以创建与createImage创建图像内容相同方式的文件内容。
用invokeFactory替换_createObjectByType,尽管性能略有提高,但它有一些不良副作用。例如,_at_creation_flag没有得到适当处理
添加了实用函数 raptus_hide_for 和 raptus_show_for,以便在特定的 raptus.article 组件中隐藏和显示内容项。
(有关 raptus.article 的更多信息,请参阅 https://pypi.python.org/pypi/raptus.article.default)
0.2.2 (2013-05-08)
在错误时添加了跟踪记录 [saily]
添加了实用函数 (utils.getImage 和 utils.getRandomImage),用于从 lorempixel.com 下载图片(请参阅 wm.sampledata.example 了解用法)[fRiSi]
为 blockPortlets 添加了更直观的语法(更改会导致向后兼容性改变)[fRiSi]
0.2.1 (2012-05-29)
修复了运行插件的链接,使其也能在 http://host/plonesite/@@sampledata 上工作(而不仅仅是 http://host/@@sampledata)[fRiSi]
添加了实用方法 constrainTypes,用于设置哪些对象可以添加到文件夹对象 [fRiSi]
0.2 (2011-12-02)
SampledataView.runPlugin 返回 Plugin.generate 的结果。这使得在单元测试中检查插件是否成功运行变得容易。
0.1 (2011-01-31)
初始版本
项目详情
wm.sampledata-0.7.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 190b614178f9471342cda7eb32baf834a76a83ca5991d321406900b66f5a65ae |
|
MD5 | 47e097931f556fb5825c6965e045542a |
|
BLAKE2b-256 | 8f755bc6d71da2979d5cd8f598ce2e8af317d75d71aa8c23f5c80d29e60d639f |