Plone表单
项目描述
此插件 collective.easyform 为表单创建添加了 Plone 内容类型。
EasyForm 通过字段、小部件、动作和验证器(基于 Dexterity)提供 Plone 表单构建器。
表单输入可以保存或通过电子邮件发送。一个简单且用户友好的界面允许非程序员创建自定义表单。
安装
通过将其添加到您的构建文件中安装 collective.easyform
[buildout]
...
eggs =
collective.easyform
运行构建文件
bin/buildout
最后一步是在“附加组件控制面板”中激活 EasyForm。
从 PloneFormGen 迁移
安装 PloneFormGen 后,打开以下 URL
@@migrate-ploneformgen
用法
从工具栏的“添加新”菜单中选择 EasyForm。插入表单标题、描述和其他设置。
添加字段或字段集以创建满足您特定需求的独特表单。有足够的基本字段类型来满足任何需求。
文件上传
文本行(字符串)
整数
是/否
日期,日期/时间
浮点数
选择
富文本
图像
多项选择
文本
密码
ReCaptcha
通过设置字段的顺序、定义必填和隐藏字段、选择验证器(如有必要)和其他特定字段类型的设置,继续自定义表单。
点击下面的图片查看简短介绍视频
使用条件字段
在高级 > 字段依赖于下,您可以定义条件以隐藏字段,并在条件满足时才淡入显示。我们在这里使用 pat-depends,所有选项都在 pat-depends 文档 中有说明。
您还可以在高级 > CSS 类下为每个字段设置 CSS 类字符串。
由于表单带有 row CSS 类,因此您可以使用现有的 Bootstrap 5 CSS 列表类为字段创建简单的列布局。有关更多信息,请参阅 Bootstrap 网格系统 文档。
对于更复杂的布局,您还可以添加自己的 CSS 类和定义。以下是一个定义带有最多 4 列和不同 col span 的单个字段的表单的 CSS 示例。
.easyformForm fieldset{
display: grid;
gap: 1em;
grid-template-columns: 1fr 1fr 1fr 1fr;
}
.easyformForm .field{
background-color: #eeeeee;
padding: 0.5em;
grid-column: auto / span 2;
}
.easyformForm fieldset > p:first-of-type{
background-color: transparent;
grid-column: auto / span 4;
}
.easyformForm .field.formCol14{
grid-column: auto / span 1;
}
.easyformForm .field.formCol34{
grid-column: auto / span 3;
}
.easyformForm .field.formCol44{
grid-column: auto / span 4;
}
ReCaptcha 支持
使用 recaptcha 额外功能安装 collective.easyform
[buildout]
...
eggs =
collective.easyform [recaptcha]
运行构建文件。在“附加组件控制面板”中,激活 EasyForm 和 ReCaptcha 小部件。
在 ReCaptcha 控制面板中,设置从 https://developers.google.com/recaptcha/ 获得的公钥和私钥值(您可以使用 reCAPTCHA V2)。
在 EasyFrom 控制面板(/@@easyform-controlpanel)中,将“ReCaptcha”字段添加到“允许的字段”。或者,通过将其添加为通用设置 registry.xml 条目来激活它。
<record name="easyform.allowedFields">
<value purge="False">
<element>collective.easyform.fields.ReCaptcha</element>
</value>
</record>
将ReCaptcha字段添加到您想使用它的表单中。使用字段类型ReCaptcha,并保持require未选中。
最后一步,您可能希望避免在感谢页面和邮件发送动作中包含ReCaptcha字段。要做到这一点,编辑表单,转到“感谢页面”设置,禁用“显示所有字段”,然后只包含您想要的字段。同样对于邮件发送者:通过“动作”工具栏菜单打开表单动作并相应地编辑邮件发送设置。
collective.z3cform.norobots支持
使用norobots附加组件安装collective.easyform
[buildout]
...
eggs =
collective.easyform [norobots]
运行buildout。在“附加组件”控制面板中,安装EasyForm。
在EasyFrom控制面板(/@@easyform-controlpanel)中,将“NorobotCaptcha”字段添加到“允许的字段”。或者,通过将其添加为通用设置的registry.xml条目来激活它。
<record name="easyform.allowedFields">
<value purge="False">
<element>collective.easyform.fields.NorobotCaptcha</element>
</value>
</record>
将NorobotCaptcha字段添加到您想使用的表单中。使用字段类型NorobotCaptcha,并保持require未选中。
最后一步,您可能希望避免在感谢页面和邮件发送动作中包含NorobotCaptcha字段。要做到这一点,编辑表单,转到“感谢页面”设置,禁用“显示所有字段”,然后只包含您想要的字段。同样对于邮件发送者:通过“动作”工具栏菜单打开表单动作并相应地编辑邮件发送设置。
从savedata适配器支持下载XLSX
使用downloadxlsx附加组件安装collective.easyform
[buildout]
...
eggs =
collective.easyform [downloadxlsx]
这为您提供了使用openpyxl生成XLSX文件将保存数据作为XLSX下载的选项。
动作
表单提交后,您可以选择以下动作之一
邮件发送者
数据存储
自定义脚本
邮件发送者存储发送表单结果的HTML模板。您可以通过在您的站点中添加名为easyform_mail_body_default.pt的文件来覆盖它。如果找不到,则使用此包的default_schemata目录中的默认模板。如果您计划覆盖,请从mail_body_default.pt文件开始,并确保它是一个有效的页面模板。
翻译
此附加组件已被翻译成
巴斯克语
巴西葡萄牙语
德语
荷兰语
英语
法语
意大利语
日语
西班牙语
乌克兰语
源代码和贡献
如果您想帮助开发(改进、更新、错误修复等)collective.easyform,这是一个很好的主意!
您可以通过克隆它或获取对github-collective的访问权限并直接在项目上工作。
请在分支上执行较大更改,并提交Pull Request。
collective.easyform的维护者是Plone Collective社区。
我们感激任何贡献!
对于新版本,请联系Python Package Index页面上提到的所有者或维护者之一。
贡献
许可
本项目采用GPLv2许可。
兼容性
1.x版本针对Plone 4.x
2.x版本针对Plone 5.x及以上
3.x版本针对Plone 5.2
4.x版本针对Python 3上的Plone 6
变更日志
4.2.0 (2024-03-15)
在从PFG迁移时,将字段集描述设置为属性,而不是节点。[thomasmassmann]
为文件和图片上传添加文件大小上传限制。[ThibautBorn]
更新荷兰语翻译。[ThibautBorn]
4.1.6 (2024-03-08)
修复序列化器中的未使用、不正确和未声明的导入。[thet]
4.1.5 (2023-11-03)
在将保存数据包含在序列化器之前,检查“collective.easyform.DownloadSavedInput”权限。[MrTango]
4.1.4 (2023-07-27)
修复从@@saveddata访问folder_contents的问题。[ThibautBorn]
在PloneFormGen迁移过程中,使ReCaptcha字段不是必需的。[ThibautBorn]
4.1.3 (2023-05-16)
错误修复
添加升级步骤和配置文件以更新注册表中的内容类型图标。[maurits]
为操作添加图标表达式。[maurits]
更新西班牙语翻译。[macagua]
4.1.2 (2023-01-02)
为表单定义“编辑”和“查看”图标。(#390)[frapell]
要求至少Python 3.8。测试使用3.8-3.11。[maurits]
4.1.1 (2022-10-28)
修复Likert字段存储值显示问题。[gotcha]
为控制面板工具添加图标。[frapell]
防止RichLabel字段破坏表单。[MrTango]
Schemaeditor UI:在保存时关闭模态并重新加载字段(集)。[petschki]
修复了未正确渲染GroupForm小部件的bug(见#370)。[petschki]
4.1.0 (2022-08-10)
新功能
添加对字段级CSS类的支持。[mrtango]
添加对条件字段的支持。[mrtango]
添加Likert量表字段。[gotcha]
添加法语翻译 [mpeeters, laulaz]
使用 collective.easyform.DownloadSavedInput 权限来显示/下载保存的数据 (#357) [laulaz]
restapi(de)序列化器,包括保存的数据 [ThibautBorn, gotcha, Mychae1]
在导出中使用“|”作为列表类型的分隔符。[mathias.leimgruber]
错误修复
修复SaveData存储的持久性问题。[mathias.leimgruber] (#259)
添加缺少的翻译字符串 [laulaz]
删除未使用的 migrate_all_forms 设置和记录 (#206) [laulaz]
修改“表单字段”以与最新的schemaeditor一起工作 (#345) [frapell]
增强
标准化“表单字段”和“表单操作”的行为。有一个单一的“保存”按钮,一旦应用更改,将重定向回表单 [frapell]
4.0.0 (2022-04-07)
破坏性更改
仅适用于Plone 6。至少这是唯一经过测试的版本。(稍后编辑变更日志以避免误解,使用3.x针对Plone 5.2)[maurits]
新功能
添加对Plone 6的支持 [pbauer, frappell]
更新字段/操作列表以与Plone 6一起工作 [petschki] (#260)
添加日语翻译,由Ochanomizu大学支持。[terapyon] (#263)
为csv下载提供用户友好的分隔符设置 [ThibautBorn, gotcha] (#267)
添加对plone.formwidget.hcaptcha的支持 [fredvd] (#292)
更新css注册并使用schemaeditor模式 [frapell] (#319)
向表单添加名称属性字段,默认为空,不包括它。这对于表单分析(如matomo)很有用,可以检查此属性。[fredvd] (#328)
下载保存数据的XLSX版本。[mathias.leimgruber] (#285)
添加选项将表单数据追加为xlsx。[mathias.leimgruber] (#287)
错误修复
为csv_delimiter字段添加升级步骤。[fredvd] (267b)
始终显示字段集标题:在标签模式下,它们被autotoc模式隐藏 [laulaz] (#173)
在嵌入式表单上也显示序言和结语文本。[fredvd] (#274)
修复Mailer附件中的字段顺序问题 [MrTango]
可选地添加CSV/XLSX标题到附件 [MrTango] (#323)
修复保存数据表:不显示标签;彩色按钮,轻微清理。[jensens]
在德语翻译中修复错误。[jensens]
修复reCaptcha支持:在安装时包含其zcml。[jensens]
修复验证错误的翻译。[mathias.leimgruber] (#284)
修复RichTextFields的下载错误。[szakitibi] (#288)
3.0.5 (2020-11-17)
错误修复
修复使用zope.interface 5.1+的表单集中的验证器。这解决了问题252。[maurits] (#252)
为了提高安全性,在model编辑器中不解析实体,并移除处理指令。[maurits] (#3209)
3.0.4 (2020-09-26)
错误修复
修复在Zope 5上出现的ModuleNotFoundError: No module named ‘App.class_init’。[agitator] (#251)
3.0.3 (2020-09-09)
错误修复
3.0.2 (2020-08-17)
错误修复
改进了保存数据的处理(ux表单,仅重定向到适配器)。[jensens (#1)
更多德语翻译。[jensens] (#2)
修复了#217:在表单更新中停止丢失操作错误。[wobsta] (#238)
修复了#182:在操作或字段遍历时操作URL。[jensens] (#239)
3.0.1 (2020-07-29)
错误修复
修复了#235:Module collective.easyform.fields, line 63, in superAdapter IndexError: tuple index out of range。[jensens] (#235)
3.0.0 (2020-07-28)
重大更改
隐藏表单操作中的“描述”字段,因为它没有被使用。尝试省略或使用描述字段的自定义可能需要适应。(#226)
更改“高级”权限的语义并引入新的“技术”权限。为了更好地支持“高级用户”的使用案例,同时不过度加载他们必须具备技术理解才能处理的复杂字段,权限更改如下
“编辑高级字段”:- IEasyForm.form_tabbing - IEasyForm.default_fieldset_label - IFieldExtender.field_widget - IFieldExtender.validators
“编辑技术字段”:- IEasyForm.method - IEasyForm.unload_protection - IEasyForm.CSRFProtection - IEasyForm.forceSSL - IMailer.replyto_field - IMailer.xinfo_headers - IMailer.additional_headers (#229)
新功能
使用配置文件而不是ZCML来配置角色,以便更容易进行自定义。(#224)
简化编辑UI:在创建表单时引入一个新的“高级”选项卡,用于不太常用的设置。更改权限,允许编辑器从表单字段值定义接收者,而不仅仅是固定接收者。(#227)
使字段编辑器看起来更美观。(#228)
错误修复
修复接口中的已弃用fieldset导入。(#222)
重写升级bobtemplates.plone样式以获得更好的概览。(#223)
使操作与plone.supermodel/autoform指令更好地兼容。(#225)
修复当前活动语言中easyform内容类型字段默认值的翻译。(#231)
2.2.0 (2020-06-04)
实现PloneFormGen迁移。[buchi, laulaz]
修复了header_injection实现中的错误。[maurits, thet]
按照Plone标准格式化代码:black, isort, zpretty。[thet]
修复了值为None时的验证器:返回有效并让必需处理它[Nimo-19]
2.1.5 (2020-02-09)
移除了硬编码的下载按钮标签检查(#175)[davide-targa]
2.1.4 (2020-02-06)
如果显示感谢页面,则将“easyform-thankspage”CSS类添加到content-core div中。与header_injection字段结合使用,可以仅针对感谢页面样式化元素,例如作为删除空字段集的解决方案(#154)。[fredvd]
在生成数据下载文件时不要附加重新渲染的下载表单(#175)[mamico, tkimnguyen]
修复Travis安装google-chrome-stable的问题[tkimnguyen]
PEP8修复[mamico]
2.1.3 (2019-12-11)
巴西葡萄牙语翻译#200 [ericof]
2.1.2 (2019-11-18)
修复README中的损坏图像(部分解决#197)[tkimguyen]
在获取公钥/私钥对时提及reCAPTCHA V2 [tkimnguyen]
2.1.1 (2019-11-18)
注意:如果您部署了2.1.1及以上版本,扩展验证将再次在额外字段集中的字段上生效(它们仅在主/默认字段上生效)。如果那些验证器或默认值最初配置错误,可能会导致一些问题。
让filter_fields返回字段顺序正确。这修复了默认邮件模板上的顺序。是问题#163的一部分。[maurits]
从点号行为移动到命名行为。[iham]
避免启动时的潜在CannotGetPortalError #164。[laulaz]
添加collective.z3cform.norobots集成 #145。[1letter/gomez]
对于CSV和XML附件,如果值为None,则发送空字符串而不是字符串“None”。[nngu6036]
添加测试以显示recaptcha验证阻止提交。[djay]
修复在附加图像到邮件时发生的UnicodeDecodeError #187。[krissik]
更新recaptcha功能说明。[tkimnguyen]
2.1.0 (2019-04-25)
新功能
代码风格black & isort。[jensens]
为多选字段添加“CheckBoxFieldWidget”,为单选字段添加“RadioFieldWidget”。[petschki]
将plone.formwidget.recaptcha添加到测试依赖项。[petschki]
添加包含工具栏和文件夹内容的文档类型图标的样式包。[agitator]
在序列化为XML或CSV附件时更好地表示复杂的字段类型,如布尔值和日期。[nngu6036]
错误修复
修复XML或CSV附件中行长度超过998时可能发生的换行错误。[nngu6036]
添加缺少的header_injection实现。[krissik]
2.1.0rc1 (2019-03-19)
新功能
添加对Python 3的支持。[pbauer]
a11y:为portalMessage添加角色属性。[nzambello]
错误修复
修复了打开文件时的启动ResourceWarning。[ajung]
2.0.1 (2018-12-04)
西班牙语翻译。[erral]
2.0.0 (2018-10-03)
新功能
在API中添加了新方法:filter_widgets。如果没有选择a,邮件发送器操作将不会尝试渲染其小部件。这在我们想要避免显示一些小部件(如recaptcha)时很有用,这些小部件如果处于错误上下文中可能会损坏。[cekk]
错误修复
将saveddata操作权限从“管理门户”更改为“修改门户内容”,以便“操作”和“视图”具有相同的权限。[eikichi18]
修复2.0.0b4中引入的感谢页面回归。[instification]
修复包含非ASCII字符的电子邮件附件。[tomgross]
2.0.0b7 (2018-09-01)
添加将表单数据以XML格式附加到电子邮件的选项。[nngu6036]
添加一些邮件发送器适配器文档,添加必需的软件包版本固定。[tkimnguyen]
2.0.0b6 (2018-08-20)
错误修复
更新一些旧文档,添加@@get_save_data_adapters视图的文档。[tkimnguyen]
新功能
添加@@get_save_data_adapters视图。[tkimnguyen]
2.0.0b5 (2018-06-22)
错误修复
修复了在感谢页面上显示字段集中的项目。[tomgross]
2.0.0b4 (2018-05-17)
新功能
添加对隐藏字段的支持。[tomgross]
错误修复
修复了2.0.0b3中引入的过滤回归。[tomgross]
2.0.0b3 (2018-05-08)
新功能
添加browserlayer。[jensens]
增强文件验证视图中的类型检查。[tomgross]
巴斯克语翻译。[erral]
更新意大利语翻译。[arsenico13]
允许在数据库中允许默认字段、操作和邮件模板。[tomgross]
添加新的邮件发送器适配器复选框以发送CSV数据附件。[tkimnguyen]
错误修复
在感谢页面上不要覆盖配置的小部件的默认小部件。这修复了#111。包括代码清理。[jensens]
隐藏未用于常规安装的配置文件。[jensens]
将ProtectedEmail和ProtectedTextLine作为可添加字段移除 https://github.com/collective/collective.easyform/issues/94 [fgrcon]
对于感谢页面,也支持showAll和includeEmpties。[thet]
更具体地注册recaptcha验证器,以便它覆盖默认的easyform验证器。修复了在使用plone.formwidget.recaptcha时无效的问题。[thet]
修复因调用“data”时收购问题导致的保存数据的损坏。修复:#87。[sverbois]
修复保存数据、导出、导入的动作URL。[tomgross]
修复邮件模板中的值显示问题 #76。[tomgross]
2.0.0b2 (2017-08-31)
错误修复
更新意大利语翻译。[arsenico13]
添加Products.validation依赖以使其适用于无archetypes的站点。[agitator]
在字段模式编辑器中,根据plone.app.dexterity中的modeleditor修复ACE库的URL。[thet]
修复非ASCII文件名上传时的保存动作 #77。[tomgross]
在字段模式编辑器中,根据plone.app.dexterity中的modeleditor修复ACE库的URL。[thet]
2.0.0b1 (2017-06-14)
新功能
添加文件大小上传验证器。[tomgross]
错误修复
将签名行中断转换为HTML电子邮件。[tomgross]
允许多选字段作为主题字段 https://github.com/collective/collective.easyform/issues/71 [tomgross]
更新德语翻译。[tomgross, jensens]
保留body_pre、body_post和body_footer字段的换行符。将字段类型更改为RichText,使用TextAreaWidget和默认mime_type=’text/x-web-intelligent’。更新默认的邮件模板。[agitator]
对于Plone 5,使用站点电子邮件地址作为默认收件人地址。[tmassman]
更新README。[svx]
允许使用“;”和换行符分隔电子邮件(CC、BCC) https://github.com/collective/collective.easyform/issues/49 [tomgross]
允许在控制面板中管理为c.easyform启用的字段。[karalics]
2.0.0a2 (2016-10-14)
新增
将api.get_fields重命名为api.get_schema [jensens, agitator]
修复
修复字段顺序 [jensens, agitator]
2.0.0a1 (2016-10-13)
新增
更新为Plone 5,不再支持Plone 4.x [agitator]
修复
修复:彻底重写TravisCI设置以真正使用缓存。使用bobtemplates.plone的Travis设置作为最佳实践。[jensens]
在摘要页面上提交表单后不显示重置按钮。[thet]
维护:isort、zca装饰器、autopep8和主要的手动清理。包括结构清理和[jensens, agitator]
1.0a4 (未发布)
新增
将收件人地址字段更改为电子邮件类型,以便正确验证 [davilima6]
使默认的buildout使用Plone 5。更新travis设置,以便测试实际上运行,尽管许多测试仍然失败。[smcmahon]
在注册表中查找email_from_address [kcleong]
将默认的xml配置移出为xml文件。这些文件可以被i18ndude或其他po文件生成器用于翻译字符串。还翻译了
字段。[thet] 添加德语翻译。[thet]
允许通过i18n翻译机制定义某些EasyForm默认值。[thet]
重新设计邮件地址格式,避免以name <<account@domain.com>>的形式使用收件人地址,而是使用name <account@domain.com>。[thet]
依赖于plone.schemaeditor > 2.0以实现JS兼容性。[thet]
修复plone.schemaeditor i18n工厂导入。这修复了5.0.1支持。[vangheem]
修复modeleditor.pt标记以使其与barceloneta兼容。[ebrehault]
修复
修复plone.schemaeditor i18n工厂导入。这修复了5.0.1支持
1.0a3 (2015-06-02)
修复模板 [kroman0]
修复字段顺序 #17 [kroman0]
修复Plone 5支持 [kroman0]
修复依赖关系 [kroman0]
正确设置脚本类型 [fredvd]
1.0a2 (2014-06-13)
修复与plone.app.multilingual[dexterity]的冲突 [kroman0]
修复保存数据表单的渲染 [kroman0]
修复并更新测试 [kroman0]
修复下载csv中的Unicode编码 [gborelli]
添加意大利语翻译 [gborelli]
在邮件器覆盖表达式中添加字段参数 [gborelli]
1.0a1 (2014-03-18)
初始发布
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源代码发行版
构建发行版
collective.easyform-4.2.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | b9c06acfd4a883b72d1c55f67757ab2813d0c43c82de0fbd27ecc8f80eaef4f3 |
|
MD5 | 1b29457558c63cb39997555431ae9703 |
|
BLAKE2b-256 | a061ea644b450cdfc6d44fb716f69944c2929c7abbdeb54276191656404b93c1 |
collective.easyform-4.2.0-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 54a46de80c9c4d5e465daad03a0b0ba72cad43af322f2f4aa7da44dbcd1101ed |
|
MD5 | d38cbcf39485b67a7afa4a412e4ffe23 |
|
BLAKE2b-256 | 16d1d3a208cbba1f21ea4bdd98364a3c4067af01f6b2afde776499d5af41402b |