安装升级程序
安装和升级程序
目录
1 站点安装卸载
站点有很强的课定制型,安装程序包括整个站点、应用、空间、栏目和工作台共五大类型。
1.2 升级程序 upgrade_{{VERSION_ID}}
升级程序用于升级旧版本的数据。如果需要为新版本写升级程序,需要:
为应用设置新的版本号,比如 0.2 , 1.0, 1.1, 1.1.1 这样.
编写升级脚本,命名为 upgrade_0_2, upgrade_1_0, upgrade_1_1, upgrade_1_1_1 这样。
也就是将版本中的 . 改为 _,加上 upgrade_ 前缀
从更低版本升级上来的时候,系统会逐步找到中间版本的升级程序,依次执行。
当然,也可直接编写一个 upgrade(last_version) 脚本. 参数 last_version 是上一个版本号。 这个脚本里面,集中不同的版本需要做不同的升级。上面的 upgrade_xxx 脚本也不再调用了。
1.3 卸载脚本 uninstall
在应用市场卸载脚本的时候,会先调用这个脚本,用于卸载的时候进行清理操作
2 栏目安装
插件由栏目管理进行安装设置。
2.1 空间安装程序(空间模板) space_setup_
这个用于让普通用户创建新的协作空间,属于新增空间模板。
空间模板的安装,只需要Access权限即可,鼓励扁平协作。
空间安装程序是以 space_setup_ 开头的脚本。
2.3 工作台安装程序 home_setup_
工作台安装程序用于定制工作台。是以 home_setup_ 开头的脚本,通常需要 ManageContent 的权限
2.4 站点安装程序 site_setup_
站点安装程序用于初始化站点,是以 site_setup_ 开头的脚本,通常需要 ManageSite 的权限
3 常见的安装逻辑
3.1 部署一个文件库
创建一个文件库,用来存储文件:
>>> container = context.add_folder('files', title='文件库', description="测试文件库")
页首导航加上这个文件库:
>>> root.navs.append(container)
建立索引,这样才能被搜索到:
>>> container.index()
3.2 部署一个表单库
在站点里面部署一个表单库,用来管理定义的表单:
>>> container = context.add_datacontainer('new_dc', item_content_type='zopen.test_app:test_form')
页首导航,加上这个表单库:
>>> context.navs.append(container)
更新索引:
>>> container.index()
3.3 分配权限
如果希望全公司可以新建子项:
>>> container.acl.grant_role('groups.tree.default', 'Contributor')
如果希望全公司可以查看:
>>> container.acl.grant_role('groups.tree.default', 'Reader')
分配权限,让全公司的人可在线查看但是不能下载(二级查看权限):
>>> container.acl.grant_role('groups.tree.default', 'Reader2')
3.4 跳转到部署的栏目
# 跳转 url = container.absolute_url(request) request.response.redirect(url)