大道至简,新一代企业应用无栈开发

平台之上,一种语言,可视化、脚本化、全端一体化开发

安装升级程序

安装和升级程序

安装和升级程序

1   站点安装卸载

站点有很强的课定制型,安装程序包括整个站点、应用、空间、栏目和工作台共五大类型。

1.1   应用安装程序 setup

应用的安装程序是有个名字为 setup 的脚本,在部署原因的时候会调用。

应用的安装程序只能被站点管理员安装,应该设置权限为 ManageSite

1.2   升级程序 upgrade_{{VERSION_ID}}

升级程序用于升级旧版本的数据。如果需要为新版本写升级程序,需要:

  1. 为应用设置新的版本号,比如 0.2 , 1.0, 1.1, 1.1.1 这样.

  2. 编写升级脚本,命名为 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)