接口变更清单
开发接口的变更清单,了解平台的过去未来
目录
1 升级历史
1.1 2019.6
- v7.4.2 大大简化用户自定义审批流程
- v7.4.2 json.load2 json.dump2 可导入导出DateTime类型
- v7.4.2 定版支持签名
1.2 2019.3
- v7.4.1 载入式组件,通过load_on方法加载,支持事件定义
- v7.3.2 field_obj.render_text,支持文本方式输出
- v7.3.2 新增 string.Template.new(template, idpattern=None, delimiter=None) 自定义模板
1.3 2019.2
- v7.3.2 obj.list_parents obj.parents不再返回版本文件夹(Versions)和附件文件夹(Attachments)文件夹
- v7.2.6 容错的反查对象 root.query_objects(uids)
- v7.4.0 range/exclude_range 日期搜索支持传递 timestamp,要求传递 field_type='date'
1.4 2019.1
- v7.4.0 ui.submit_input 方便定制表单按钮区域
- v7.4.0 stati索引新增加类型: container.control: 是否位于受控文件夹
- v7.4.0 子树继承属性重建索引 reindex_inherited
- v7.4.0 表单支持组合搜索模式: ui.search_form
- v7.4.0: 表单支持inline布局
- v7.4.0: 组合字段支持布局控制,包括上下、左右和inline
- v7.3.2: 正确得到mime后缀:extention = root.mimes.get_extention(mime_type)
- v7.4.0: QuerySet支持query方法
- v7.3.2: new_view/merge_view
- v7.4.0:添加PyJWT
- v7.4.0:文件、表单可定制查看方式
- v7.4.0: 查看方式统一入口为 zopen.views:index,查看方式有提供 inline_ 参数区别是否是在主模板内嵌展示
1.5 2018
2018.12
- [v7.4.0] 工作流支持异常退出脚本
- [v7.4.0] 文件、表单支持默认查看方式
- [v7.2.5] container.temp_child() 返回临时子对象
- [v7.2.5] ui.principal显示人员信息
- [v7.2.5] ui.text/ui.link/ui.button/ui.grid 这些内容组件设置内容,默认都做了escape处理,不需要重复设置。如果不需要,有参数 escape=False
- 常用列表: root.profiles.get_recent/update_recent
- 新增 root.packages.list_plugins 搜索满足前缀条件的插件
- obj.parents 或 obj.list_parents的返回结果,现在改为从里到外。
- view.on(...) 捕获全局事件
- view.off(...) 销毁全局事件的捕获
- view.trigger(...) 触发全局事件
- view.select(...).off_on(...) 捕获全局事件,和组件一起自动销毁
- ui.xxx().on(...) 捕获组件事件
- view.select(...).on(...) 捕获组件事件
- view.select(...).trigger(...) 触发组件事件
- view.select(...).call(...) 调用组件方法,同时触发组件事件
- [v7.3.1] 支持组件自定义事件:view.select.bind/view.select.trigger
- [v7.2.5] 新增ui.content_select,代替过时的 ui.file_select以及ui.portlets.content_select
- [v7.2.5]permission_roles读取权限对应的角色:
2018.11
- [v7.2.5] 简化API,支持之前的接口
- [v7.2.4]view.redirect增加delay参数,支持延时跳转
- [v7.2.4]root.info() 可返回支持转换器信息converters
- [v7.2.4]file_obj.convert支持文档加工
- [v7.3.1]view.native.call_script支持回调
- [v7.3.1]obj.absolute_url和obj.uid_url支持script和参数
- [v7.2.4]obj.api_url生成回到地址,用于桌面助手回掉,或者云查看回掉地址
- [v7.2.4]root.call_script_async,会使用当前用户的语言
- [v7.2.4]文件对象增加cache管理接口: exists_cache/get_cache/save_cache/remove_cache
- 新增贴图组件
- ui.grid 支持调整列宽
2018.10
- root.acl.allow_inherit_roles : 是否禁止继承上层授权属性
- obj.reindex_acl(recursive=True): 重建权限索引
- obj.reindex_path(recursive=True, async=True): 移动之后重建路径索引
- [v7.3] 调整统计接口,可传递int或者float类型进行统计
- [v7.3] 搜索接口的字段,统一采用 mdset/zopen.archive:archive/number 或者 settings/number 这样的字段定位方法。
- [v7.2.2] file_obj.transform() 如果已经转换,不会再转,可添加 rm_targets=True 删除之后强制转换
2018.9.30
- 软件包翻译支持构造字典 pkg.i18n.vocabulary('log') 抽取前缀为 log_ 的翻译字符串,构造成字典
- 得到一个软件包对象,更简单 root.packages[pkg_name] 替换之前的 root.packages.get_package_obj(name)
- view.select('panel#xx') 支持get_header/get_footer/get_toolbox/get_panel这些操作 (v7.3)
2018.9.26
指定某些人重做步骤(start方法新增responsibles参数):
dataitem.workitems.start(workflow='zopen.plan:plan', step_name="submit", responsibles=[request.me.id], request=request)
2018.9.18
- view_init_script支持head参数
2018.9.13
- 表单支持 搜索 模式
- 支持多个表单组合显示
2018.9.5
(v7.4)kss请求传递参数保持数据类型,比如:
on('click', 'xxx.xxx:xx', context, request, aa=1, bb=True, cc=['aa', 1], dd=[1, 2, True])
会直接传递整数、布尔、列表等类型到xxx.xx:xxx的参数中,不需要从request中获取和类型转换。
2018.8.29
- v7.2.1 改进快捷方式:
- 去除 shortcut.set_origin() shortcut.get_origin() createShortCut()
- 新增 shortcut.source 和 shortcut.source_obj
- folder.add_shortcut(obj, fixed_version, name), 改为 folder.add_shortcut(uid, name='')
- 添加直接给用户授权的接口
- 支持查看器插件
2018.7.31
- 新的升级框架 upgrade_xxx
- 支持卸载清理脚本 uninstall 脚本
2018.7.24
- 权限改名 Operator改为Configure,SaveRevisoin改为UpdateRevision
- 脚本支持所有可能的权限
- 表单库支持默认扩展属性
- 新建文件表单,默认扩展属性会新建,并且会自动初始化默认值
2018.6.11
- file_obj.preview_url 支持预览水印颜色字体
2018.6.8
加载资源包,会区分版本号:
view.load(['xxx.xxx:js/slimbox2.js', 'xxx.ss:slimbox2.css'])
2018.5.30
- 显示大小信息: ui.size(file_obj.get_size())
2018.5.13:
- request请求参数直接匹配到Python脚本的参数,无需再从request中获取
- 新增 ui.component 和 view.model 方法,支持通过 vuejs 来扩展新的组件
- 不能直接添加规则,规则可以和扩展属性绑定,通过扩展属性添加规则
- 表单、扩展属性、流程、阶段,可直接查看和修改YAML
- 支持定制表单、扩展属性、流程、阶段,可比较定制差异 root.packages的get_mdset/get_mdset_obj/get_form/get_form_obj/get_workflow/get_workflow_obj/get_stage/get_stage_obj都支持定制
- root.packages支持 list_all_mdest list_all_forms list_all_rules list_all_skins
2018.4.19
- 云查看支持 docx签名
- 云查看支持 pdf文件加水印
2018.4.18
- 全部教程重新编写
- 新增LogQuerySet,方便日志统计
- 新增WorkQuerySet,方便工作项统计,等同于 QuerySet(catelog='workitem')
- 新增CommentQuerySet,用于评注统计查询
2018.3.15
- ui.icon 显示icon
2018.3.12
- 支持游客身份登录 root.login_temp
2018.1.10
路径搜索,支持路径字符串:
QuerySet().anyof(path=['path/to/folder'])\ .anyof(parent=['path/to/folder'])
1.6 2017
2017.12.28
搜索软件包,支持分类和名字查询:
root.packages.search_appstore(category, name)
2017.12.2
- 搜索支持rules条件,方便找到站点的全部规则。删除软件包规则,不立刻删除关联的规则。
2017.10.26
- view.layout.refresh 刷新导航区域
- ui.style -> ui.css
- 新增 ui.color_picker
2017.9.20
- 评注的附件位置,改为默认的附件位置。文件选择,默认不用设置位置,会自动读取附件位置
2017.9.19
- 日志记录默认会加上允许查询的用户信息,可通过搜索restrcted=True来查询动态
- obj.logs.add增加data参数,可以附加数据
2017.8.30
- 支持jqueryui的sort排序,适合看板
2017.8.15
- view.log 在浏览器打印调试信息
2017.8.12
- obj.logs.add 添加日志,支持同步或者异步选项,默认改为异步
2017.8.10
- 新增 root.more 用于存放站点更多工具
2017.8.8
- form更好的支持inline等布局
2017.8.5
- folder.add_folder支持设置order_limit,如果设置为0,则不做排序,会减少冲突可能
2017.7.28
- 新增 ui.style
- 改进消息服务的通知发送接口
- 支持: view.call(context, request, 'zopen.site_config:nav_setting', aaa=1, bbb=2)
2017.7.20
- request.get_client_ip() 请求发起人的IP地址
2017.7.11
- stati索引,对文件支持一组自动索引:附件、定版、锁定等。同时stati去除attachments状态
2017.6.22
- 支持矢量图标: file_obj.get_icon
2017.6.6
- 搜索可以直接返回batch对象: QuerySet().batch(start=20, size=50)
- 简化 ui.pagination 为 ui.paging
2017.5.26
- 新增view.storage接口,支持localstorage操作
2017.5.22
- comment支持接口,是否通知
- json.dumps支持PersistentList和PersistentDict
- 搜索接口支持uid
2017.5.10
- 增加权限 ManagePermission,角色PermissionManager,用于三权分立
2017.4.1
表单库可以直接设置:
container['1231'] = DataItem(title='asefra', description='asdaf')
文件定版,新增了一个永久的uid:
context.revisions.get_fixed_uid()
2017.3.23
- 流程负责人支持组
2017.3.2
- 搜索结果提供result.result直接返回某些字段 v6.4
2017.2.23
- 增加 ui.custom_input 自定义字段
- QuerySet的inlcude_archive改为include_history,可以搜索到临时版本
2017.1.20
- 增加SiteManager角色,拥有ManageSite权限,可以设置安装程序仅仅能被SiteManager安装
1.7 2016
2016.11.30
- 平台层去除ldap支持的代码,全部转移到扩展层
- object_notify支持对不同用户的国际化
2016.11.21
- 文件选择字段,改为内容选择,可设置选择文件、文件夹等多种内容
2016.11.11
- merge增加keep_source参数,默认False
2016.10.12
- 是否已经转换 my_file.exists_cache(mime, subfile)
2016.9.19
- org_info.refresh_cache() 刷新缓存
2016.8.31
- context.revisions.update_version_info 修改版本信息
2016.8.16
- 自定义事件,可以直接绑定到组件 ui.grid().on('folder-created', '@xxxx')
- 支持键盘事件,可以根据键盘值过滤: on('keydown', '@xxx', {'code':['ctl-34', 'alt-33']})
- access_token = get_token(request) 得到当前用户的token
2016.8.10
- view.call 发起请求 / request.is_from_view 判断是否是局部刷新请求
- ui.portlets.content_select支持任意类型的内容选择
- 支持分裂按钮 ui.button('sdf').on('click', '').dropdown(menu)
2016.8.1
context.get_watermark_text(request)
得到水印文本信息
2016.7.31
- 附件功能,从关系改为附加在内容后:: context.attachments
2016.7.16
增加文档的云查看预览地址:
file_obj.preview_url(watermark_text="", allow_copy=True, allow_print=True, allow_pdf=True, allow_download=True, expire=None, paged_excel=False, flash_first=False)
去除ISessionAuthorizer,这个用到session,不可扩展,改为直接用云查看接口
新接口:直接通过桌面助手,在桌面运行python脚本
- 服务端: root.call_script_shell('zopen.xxx:xxxx',receivers=[], args=(),kw={},from=None,ttl=0,callback_url='')
- 浏览器: view.native.call_script(script_name, args=None, kw=None)
2016.7.8
- 发布或者存档的文件,保存为历史版本时,文件的附件和关联关系会进入历史版本。
2016.6.27
去除standard模板,去除主模板的above渲染区域,脚本里面自己渲染工具条:
ui.portlets.actions_bar(context,request, title)
2016.6.26
- 文件增加mdfs_device/mdfs_key
- 文件夹增加 folder.multiput_new/multiput/multiput_save/multiput_abort 接口
- 去除 folder.new_revision_by_template
2016.6.22
支持 dir/help,方便了解接口
设置控制台etcd,可以import任意包:
/workonline/restrict_script_import false
2016.6.7
- 新版本,新增 new-revision 规则事件
2016.5.28
- context.parents 返回包括站点根节点
- 文件去除 set_data / import_data 方法
2016.5.11
- view.set_lang('zh') 切换语言
- org_info.getPrincipalInfo(pid)['lang']: 当前用户的语言
- root.lang: 站点的默认语言
- 可以使用 itertools
2016.4.27
- ui.link/ui.button如果在表单中,也支持on(submit, xxx)
2016.4.14
- importFile/importFOlder
- 去除: file_obj.import_data()
- 新增: folder.add_file()
- 去除: file_obj.set_data
- get_upload_signcode新增filename参数,返回多了一个device
2016.4.11
站点的私钥,为为某个文本签名:
signature = root.sign(text) root.verify(text, signature)
2016.3.5:
- 旧的 __builtin_package 改为标准的软件包 zopen.builtin
2016.3.2:
- 主模板新增 idle 事件
2016.3.1:
可在 root.settings['view_init_scripts'] 注册全局脚本,这些脚本在任意界面渲染的时候都会执行
返回值可被皮肤引用
新增view.append_script直接增加js
支持:
QuerySet().anyof(parent=[obj]) QuerySet().anyof(path=[obj]) QuerySet().anyof(parent=obj) QuerySet().anyof(path=obj)
2016.1.22:
- 字符串支持更多种索引方法,根据字段名后缀来确定(_ngram, _string)
2016.1.20:
- folder.create_shortcut增加name参数,可选
2016.1.20:
- 流程定义的步骤去除category
- workitem的category,去除review类型,这个系统自带维护,含义稍有改变
2016.1.3:
- ui.graph : 绘制流程图
1.8 2015
2015.12.29:
context.mdset.get('xxx') 默认值改为None
兼容,应该传递默认值{}, 改为: context.mdset.get('xxx', {})
2015.12.27:
- metadata 改为 content_types
- file.content_type -> file.mime_type
2015.12.16:
- request.is_mobile() 是否是使用手机访问
2015.12.8:
现在平台的zopen.css分成了2个css:
zopen-template.css: 网站模板的css zopen-component.css:组件的css
如果定制皮肤,只需要更改zopen-temtpate.css就行了
之前的zopen.css已经没有了,如果有皮肤定制,需要重新调整皮肤的css引入部分
可以完全替换zopen-template.css,使用自己的,这样之后升级不受影响
2015.12.7
view选择支持连选:
view.select('panel.xx').find('tree')
2015.12.4
可以屏蔽短信通知:
root.settings['enable_sms_notify'] = False
2015.11.17:
- 支持流程定义,不同操作,使用不同的颜色
- 表单定于,也可以指定按钮的类型,会颜色区分:ui.form().button('add', '新增', 'primary')
- 支持设置自定义登陆地址 root.settings['login_url'] 无权限会带上camefrom参数跳转至此
2015.11.11:
- org_info.sync:新增 new_user_password参数
- 流程action的pushish类型去除,改为primary
- 增加modify.finished状态,此状态可以被删除
- 流程结束,如果状态是modify.pending,改为modify.finished,不在存档等
2015.10.30:
- ui.panel().toolbox 可以工作了
2015.10.20:
根据模板和参数对文件自动创建新版本,在模板中替换特殊标识为条码、二维码或者文字信息:
context.new_revision_by_template(template_docx, data={}))
其中template_docx必须是一个docx格式的文档,可替换的内容用 {{title}} 标识, data格式为:
{'title':{'text':'我们很好'}, 'number':{'text':'1231231', style="bar"} # 条码 'info':{'text':'12asdfa31231', style="qrbar"} # 条码 }
可以查看各种文件的属性信息,比如mp3/mp4/doc/pdf等:
context.get_cached_data('application/x-metadata-json')
2015.9.26:
- context.workitems.start可以指定具体的流程步骤
2015.9.14
- 可以对扩展属性进行排序: sort('-zopen.archive:archive.number')
- 脚本可用 all() 方法
2015.9.1
- root.get_messenger: 得到当前的消息发送人
2015.8.4
- root.sys_info不再包含url信息
- 新增: root.get_service_url(service_name, api=False)
- root.object_url(obj, request=None) 增加request参数
- 新增永久地址: root.uid_url(obj, request=None)
- 批量选择处理条: view.batch_actions
2015.8.1
- 文件夹排序简化:
- 新增查找子文件夹 folder.get_sub_folders(restricted=True)
- 去除:
- root.set_container_order(('container2', 'container1'))
- container.ordered_container_keys() # ('container2', 'container1')
- container.ordered_containers()
2015.7.30
- root.login_as 补充登出地址参数
- 批量选择界面:
- view.batch_actions.set_content(xxx)
- view.batch_actions.close()
2015.7.22
- 应用市场查询接口 root.packages.search_appstore()
2015.7.21
- 修复事件机制
- 代码里面支持''' 或者 """ 但是不能混用(之前会有缩进问题)
- print 支持ui组件
2015.7.16
- view.select('tabs#tabs_id').add_tab(...)
2015.7.15
- 对象的属性md和扩展属性(mdset)赋值操作(set),底层会自动将dict->PersistentDict, list->PersitentList 确保数据存储到zodb,开发者无需了解这2个类
- 可以关闭某个tab页:view.select('tabs#tabs_id').remove_tab(tab_id)
- 有些逻辑错误,但是不希望进入错误调试界面的,可以 raise LogicError(msg)
2015.7.9
- request.principal -> request.me
- 新增root.org, 等同org_info,但是后者不推荐继续使用
- org_info.getPrincipalInfo(pid) , 改为 root.org.get_info(pid)
- org_info.listPrincipalInfo(pids) , 改为 root.org.list_info(pids)
- org_info其他函数,驼峰写法,改为下划线分隔
2015.7.2
- 站点增加公钥 root.get_public_key()
- 个人增加公钥 root.get_public_key(pid)
2015.6.16
- 增加profile状态,固定用户许可控制改为站点内部控制
- ui.layout,可设置布局宽度
2015.6.12
- ui组件支持drag/drop
2015.5.22
- 支持内容lock/unlock/get_lock
- 重构ui.form,支持全套ui组件
2015.5.14
- 支持font awesome图标,.icon支持更多参数
2015.5.12
- 内部单点登录 root.get_internal_sso_url
2015.5.11
- 表单和扩展属性,新增 on_remove 触发脚本
2015.5.7
在根对象中直接获取单点登录地址:
root.get_internal_sso_url(username, url) # username为用户登录是输入的用户名(不带users.),url:登录成功后跳转的地址
设置当前view使用的皮肤:
view.use_skin('zopen.test:test_skin')
2015.5.4
非常简单的状态保存:
view.history.push_state(request, title)
设置当前view使用的皮肤:
view.use_skin('zopen.test:test_skin')
2015.4.30
- view.active_modal() 找到当前的modal窗口
2015.4.21
- ui.grid支持头部区,支持拖放排序dnd
- 皮肤定制,整个body区域,增加 view 的名字和 当前对象的类型
2015.4.15
form.submit 增加 keep_multiple 选项
对于人员、表单、文件夹等选择组件,当设置为单选的时候,是否和多选一样返回list。默认为True
form.get_button(request) 替代 form.is_submitted(request)
2015.4.14
- form.update保存表单结果,同时触发on_update事件
2015.4.3
- 新增侧边区域side
2015.4.1
- 去除流程的flowsheet状态
- modify状态增加modify.abandoned modify.paused
- 流程定义:操作类型增加publish,会根据最后一步的操作类型,切换表单的状态(存档、废弃、发布)
2015.3.27
- 安全策略支持表达式
2015.3.26
- python脚本支持返回 top/bottom ,用于网站定制
2015.3.18
ui.Script().on 改为: view.on
view.off 增加第二个参数,和 view.on 对应:
view.off('dataitem-modified', "@zopen.test:refresh")
view.on 一个节点绑定(当这个节点删除,自动注销事件处理):
view.find('#test').on('dataitem-modified', "@zopen.test:refresh
增加 workitem-modified 事件
支持filter搜索,适合搜索bool类型
2015.3.11
- 增加状态:modify.published 发布:一旦发布,文件禁止任何人删除、修改。
2015.3.10
(实验特性)步骤负责人可以是一个组,这样投票、会议室预定等应用就不必显示一大堆人员了。
(待办事项、日程,需要优化支持)
workitem/step增加一个category属性:
- 我发起的 start, 流程的第一个步骤
- 我处理的 handle,通常是主要的,比如工作
- 我参与的 participate,通常是被动、次要的,比如投票、会议等
- 我审核的 review
- 我转交的 deliver
- 我协助的 assist
- 其他 other
2015.3.9
- itemview_FORMNAME_VIEWNAME : 表单的自定义视图,会在操作下拉菜单中出现
2015.3.6:
- 大简化:python脚本去掉了ajax模板,自动识别是否是ajax请求!
2015.3.3:
- 审批关系的使用,不再使用步骤用冒号分隔查审批关系了,改为直接下拉选择,之前做的那个模块需要更新下。只需要:
- 修改表单容器里面的responsibles的定义
- 在界面上调整步骤设置,去除冒号,改为选择审批人
2015.2.28:
- 文件夹选择字段: is_global去除,不支持局部文件夹选择
- 工作安排,去掉workitem.md['end']参数,只有workitem.md['start']
2015.2.25:
- workitems.start可以启动指定的流程,增加workflow参数
- workitems.deliver: 如果pid为空,表示替换全部负责人
2015.2.11:
- 工作流脚本里面: task -> workitem, lasttask -> last_workitem, 之前的写法还兼容但不推荐
- 去除任务的hours参数
2015.2.1:
- 栏目不再支持视图,统一使用appcontainer的默认视图
2015.1.25:
- workitem增加一个flowtask.working状态,表示已经开始但没有结束的多人审批
2015.1.21:
- 全文搜索parse,支持nested参数
2015.1.5:
- dot2graph方法,将dot文件转换为svg
2015.1.13:
- 搜索提供exist/exclude_exist接口
2015.1.4:
新增审计Auditor角色,和审计Audit权限,Manager和Auditor有Audit权限。
拥有审计权限的人才能查看操作历史,以及查看一些统计。站点默认增加审计组。
1.9 2014
2014.12.29:
从服务器临时区导入一个文件:
file.import_data(file_id)
断点续传的文件,保存在服务器的临时区;转换生成的文件,也可能保存在临时区。
2014.12.25:
当前文件是否是历史版本:
context.revisions.is_history()
2014.11.26
可独立设置某个人网盘容量:
root.prfiles.get('users.panjunyong', 'my_files_quota') root.prfiles.set('users.panjunyong', 'my_files_quota', 10000) # 禁止某个人的个人网盘 root.prfiles.set('users.panjunyong', 'my_files_quota', 0)
2014.11.22
增加新的权限下载Pdf Pdf ,这个从 Print 权限中分离出来
支持调整角色和权限的映射,可以调整角色的权限策略:
obj.acl.grant_role_permission(role, permission) obj.acl.deny_role_permission(role, permission) obj.acl.unset_role_permission(role, permission)
2 v5->v6升级说明
总体说明:
- 适配器都过时了
- 接口过时了
- utility转移到了root
2.1 安装和部署
- deployApplet 改为 container.add_folder / add_appcontainer /add_datacontaner , 不会自动授权,不会自动添加到导航
- IAppletData -> context.navs
- installPackage -> root.packages.install
- callScript -> root.call_script
- render_template -> root.render_template
2.2 对象基础
- getParent(obj) -> obj.parent
- getName(obj) -> obj.name
- getRoot() -> root
- getSite() -> root
- absoluteURL(obj,request) -> obj.absolute_url(request)
- intids.getObject(obj) -> root.object_uid(obj)
- intids.getId(obj) -> root.object_by_uid(obj)
2.3 授权
所有的接口都过时了, Ixxx(context) 改为 context.xxx
- IGrantManger -> context.acl
- 角色 zopen.Reader1 改为 Reader1
- 权限 zopen.View 改为 View
- checkPermission('zope.View', obj) 改为 obj.check_permission("View")
2.4 所有的接口都过时了
- 不推荐使用 IFile IFolder 之类,使用 context.object_types 替换
- IFile.providedBy(context) 改为 'File' in context.object_types
2.5 搜索
- 该搜索 object_types 而不是 object_provides
- 工作项的搜索,应该使用独立的索引 QuerySet('workitems')
- 搜索工作项的负责人,应该是 QuerySet('workitem').anyof(Response=['users.panjunyong'], parent='acl')
- IObjectIndexer(context) 以及 indexObject() reindexObject 过时,改为 obj.index() obj.reindex()
- 搜索表单夹应该根据 metadata 来搜索
- 搜索某种表单应该根据 item_metadata 了搜索
2.7 容器变化
- 所有容器,默认都是可以排序的,前1000个对象是排序的
- len(container.values()) 或 len(container.keys() 会报错,需要改为 len(container)
2.8 表单
- IFormEngine过时,直接用FieldsContainer
- IFieldStorage(context)过时 -> context.md
- IExtendedMetadata过时 -> context.mdset
- ISettings(container)过时,改为 container.md
- 表单分离校验和触发2个脚本
- related_edoclass过时,改为 container.settings['item_metadata']
2.9 团队
- 改为所有的appcontainer都支持团队
- ITeams(container) -> container.teams
2.10 流程
- related_workflow过时,改为 container.settings['item_workflow']
- 后续流程条件 nextsteps_conditions 过时,不推荐使用,改为后续步骤的进入条件
- 步骤支持type, default, error, auto自动步骤
- IFlowTasksManager(context) -> context.workitems
- 流程支持委托