我有一个Plone 3.2.1站点,它有一个名为 prod 的子文件夹。还有一个名为上传的PloneFormGen表单,它有一个自定义脚本适配器,可以创建自定义内容类型(稍微修改'Collection'类型)并将其放在前面提到的 prod 文件夹。
prod 文件夹配置了内容规则,其中包含以下条件:
如果满足这些条件,它会向我发送一封电子邮件,说明有新的内容类型等待我的审核。
使用自定义脚本适配器创建内容类型时,似乎绕过或忽略了内容规则。当然,通过“添加新...”菜单手动创建“我的自定义类型”按预期执行规则。
据我所知,我只有3个选项
这个列表中的第3个是我想要去的地方,虽然我找不到很多关于它的信息,这让我觉得它可能很复杂。
是否可以使用PloneFormGen自定义脚本适配器执行已存在的内容规则?如果有可能,是否有人有文件或其中的例子?
from DateTime import DateTime
target = context.prod
form = request.form
uid = str(DateTime().millis())
target.invokeFactory("My Custom Type", id=uid, title=form['title-1'])
obj = target[uid]
obj.setFormat('text/plain')
obj.setTitle(form['title-1'])
obj.setDescription(form['description-1'])
obj.setText(form['main-information'])
obj.setCustcode(form['customer-code'])
obj.setProdcode(form['product-code'])
obj.setMsector(form['market-sector'])
obj.setProdcat(form['product-category'])
obj.setOrderdate(form['order-date'])
obj.setSalesrep("rep: " + form['sales-rep'])
obj.setKeywords(form['keywords-1'])
obj.setSubject(form['product-code'])
criteria = obj.addCriterion('Type', 'ATPortalTypeCriterion')
criteria.setValue("Image")
criteria = obj.addCriterion('Subject','ATSimpleStringCriterion')
criteria.setValue(form['product-code'])
obj.reindexObject()
我仍在努力解决这个问题,因此我可以在我解决这个问题时修改问题。虽然任何帮助或见解都会受到高度赞赏。
我在Plone聊天室,有人建议我调查ObjectAddedEvent。这可能是我正在寻找的,虽然我无法通过自定义脚本适配器导入这些模块,并且希望避免编写驻留在文件系统上的脚本。