2012-04-12 72 views
2

当我第一次创建我的Plone(4.1)站点时,我创建了一个mysite.policy插件来包含一些自定义用户和自定义工作流。如何更新plone自定义策略(例如mysite.policy)插件

我需要对工作流和权限进行一些更正。我更新了src以包含这些更改,但通过Plone附加管理器(卸载 - 安装)更新软件包不起作用。只要我卸载所有条目的状态切换到“本地策略”,所以当我重新安装时我无法获得细粒度的状态。

此外,用户权限似乎没有改变。可能是因为它们是在网站建立时创建的。但我无法弄清楚如何编写对权限的更改,而不是在rolemap.xml中设置权限。我认为,无论在那个XML是什么规则我的plone世界,但这似乎并没有工作。

到目前为止,我在手头和手册中找不到关于此的任何信息。任何提示如何解决这个问题?也许唯一的办法就是通过ZMI进行一系列的手动修改,但是要做到这一点是不太优雅的。

回答

5

有很多选择。我会尝试描述其中的几个。

如果你的变化包括在您的网站政策(./src/my/site/policy/profile/default/ -files)的通用安装轮廓唯一变化,你不想自动化升级,你可以简单地更新配置文件,文件并重新运行这些具体的导入步骤为策略:

  1. 打开ZMI(site/manage)为您的网站,并寻找portal_setup

  2. 选择导入 -tab当在portal_setup

  3. 选择配置文件或快照 -list(您的个人资料的标题是由registerProfile -directive在configure.zcml或你的保单产品profiles.zcml定义)选择您的网站策略的配置文件。

  4. 单击以选中角色/权限地图工作流工具导入步骤。

  5. 从页面底部取消选择包含依存关系

  6. 点击导入选定步骤 -button。

  7. 转至portal_workflow-tool on ZMI和更新安全设置,如果您的工作流更新应修改现有工作流程状态的权限。

这些步骤应该仅重新导入您网站策略产品的通用设置配置文件的所选导入步骤。以这种方式重新导入各个步骤应该是相当安全的,但要小心:意外点击portal_setup屏幕可能会产生不可预知的后果。

这些步骤也可以通过定义一个名为Generic Setup 升级步骤来自动完成。

  1. 我希望你的站点策略产品的默认通用安装形轮廓包括metadata.xml与线<version>1</version>

  2. 将该行更新到<version>2</version>

  3. 打开zcml -file与registerProfile -directive和,之后,添加

    <genericsetup:upgradeDepends 
        source="1" destination="2" sortkey="1" 
        title="Upgrade my.site.policy (1 to 2)" 
        description="Upgrades my.site.policy's default profile from version version 1 to 2." 
        profile="my.site.policy:default" 
        import_steps="rolemap workflow" 
        run_deps="false" 
        /> 
    

这些步骤应寄存器从配置文件版本1到2,从而重新导入这样的升级步骤步骤角色地图工作流程rolemap.xmlworkflows.xml)。您应该能够从Plone Site Setup的Add-ons屏幕运行升级步骤,在屏幕上现在应该有安装策略产品后的升级按钮。

正如@toutpt所述,集体开发者手册有more examples on upgrade steps。如果您想知道为什么建议使用metadata.xml中的整数,通常独立于产品的发行版本号,这就是原因:)。