允许用户保存正在进行的ploneformgen表单草稿
pfg.drafts的Python项目详细描述
简介
pfg.drafts增加了对plone用户保存ploneformgen副本的支持 正在生成表单,稍后还原保存的值。这样就不需要 供用户一次填写一份冗长的表格。
该包为表单文件夹添加了一个新的显示选项,称为“表单视图 草稿”。如果选中,将显示一条消息,提示用户保存草稿 形式的。(它还在表单底部添加了一个附加按钮, 执行相同的操作。)如果用户单击此按钮,则会显示一个 注册表单以创建与保存的关联的网站帐户 数据。注册后,保存表单。
当用户返回表单时,如果已登录,则将重新填充该表单 自动保存值。如果注销,用户可以单击链接 登录并还原其值。然后可以正常提交表单 当表格完成时。
兼容性
pfg.drafts已经用plone 4和ploneformgen 1.6.0进行了测试。
安装
- 将pfg.drafts添加到构建中,并通过plone附加组件激活它 控制面板。
- 转到安全控制面板并打开“启用自注册” 以及“让用户选择自己的密码”。(如果后者关闭, 用户将无法立即注册。您可以添加 注册表格的验证码,以防止机械注册。
- 转到要启用草稿的窗体,并更改其 使用“显示”菜单将布局显示到“带草稿的窗体视图”。
实施细节
草稿存储在自定义工具(portal-fg-drafts)的btree中,由 表单uid和用户id。
为了保存表单值,javascript将表单的操作更改为 自定义@@fg_save_draft视图,它将值写入portal_fg_drafts。 任何fileupload对象都被特别封送到pickle中 fakefieldstorage对象。
访问表单时,自定义显示模板(pfg_draft_view.cpt) 调用portal_fg_draft工具的retrievedraft方法来重新填充 为当前窗体和用户保存任何数据的请求窗体。价值观 请求优先于草稿中的值,因此保存的值 验证错误后不会删除新值。
提交表单时,将通过自定义 pfg_draft_validate.vpy脚本。这会用值来增加提交的值 来自草稿(例如已保存但无法重新填充的文件上载) 然后正常处理表单。如果表单通过验证,则 保存的草稿(如果有)将从门户网站的草稿工具中删除。
学分
pfg.drafts是由Web Collective和david glick创建的。多亏了 布赖恩·威尔逊和富尔维奥·卡萨利。
更改日志
1.1.2(2011-01-12)
- 添加registerClass以声明pfgdraftstorage的添加权限,以便 可以粘贴。 [大卫萨格里]
1.1.1(2011-01-06)
- 修复丢失的导入。 [大卫萨格里]
1.1(2011-01-06)
- 使管理员可以加载另一个用户的草稿进行调试, 通过将debug_user=[username]添加到查询字符串中。如果吃水 通过这种方式提交,草稿不会从草稿存储中移除。 [大卫萨格里]
1.0.1(2011-01-06)
- 确保在第二次保存草稿时不会丢失文件上载。 [大卫萨格里]
- 根据 经典的巴隆主题而不是阳光。 [大卫萨格里]
1.0(2010-12-20)
- 修复包含小部件javascript的错误。 [大卫萨格里]
1.0b1(2010-12-09)
- 初始RE租赁