Wagtail Form Plugins
A set of plugins used to customize and improve the Wagtail form builder in a modular way.
This project uses Wagtail StreamFields to improve the user experience when creating a form. This feature was included in a plugin at first, but moving it to a built-in feature allows a better integration between plugins and Wagtail StreamFields.
Available plugins:
- conditional fields: make a field appear or not depending on the value of a previous field;
- editable: allow form admins to modify form submissions;
- emails: send multiple emails when a form is submitted;
- file_input: allow users to send a file via the form;
- indexed_results: add an index value in the results (can be used in the templating plugin);
- label: add a new Label field type to put subtitles in forms, in order to split it into sections;
- named_form: add user value in form sumission, allowing to fill the form only once per user;
- nav_buttons: add some buttons for an easier novigation for form admins;
- templating: allow to inject variables in field initial values and emails such as the user name, etc;
- token_validation: add token-validation process via email, useful for public forms.
Each plugin is supposed to work independently.
Usage
You add form plugins with class inheritance. Since there are several classes to extend, a WagtailFormPlugin object can be used for convenience:
from wagtail_form_plugins import plugins
wfp = WagtailFormPlugin(
plugins.ConditionalFields,
plugins.Editable,
plugins.EmailActions,
plugins.FileInput,
plugins.IndexedResults,
plugins.Label,
plugins.AuthForm,
plugins.NavButtons,
plugins.Templating,
plugins.Validation,
)
class CustomFormSubmission(*wfp.form_submission_classes):
pass
class CustomFormBuilder(*wfp.form_builder_classes):
pass
class CustomFormField(*wfp.form_field_classes):
pass
class CustomSubmissionListView(*wfp.submission_list_view_classes):
pass
class CustomFormPage(*wfp.form_page_classes):
pass
class CustomFormFieldsBlock(*wfp.form_block_classes):
pass
See the demo project for further understanding and up-to-date usage.
Installation
This package is published on pypi, so typically:
uv add wagtail_form_plugins
Contribution
You are welcome to make pull requests to add you own plugins if you think they can be useful for others.
Metadata
Release files for wagtail-form-plugins 0.6.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| wagtail_form_plugins-0.6.0.tar.gz | 45.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| wagtail_form_plugins-0.6.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 127.2 kB
Release files / wagtail_form_plugins-0.6.0.tar.gz
| Download URL | wagtail_form_plugins-0.6.0.tar.gz |
|---|---|
| Size | 45.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6c86a7583025299ce371e304810d46ffb3f8ecdd16424a9c7d6feeb1953ffc55
|
|
BLAKE2b-256 checksum How to use checksums |
8abc9d881a3e62aa28715b90e5407d286f40ea644de3837eced8b3cd5729d5c5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / wagtail_form_plugins-0.6.0-py3-none-any.whl
| Download URL | wagtail_form_plugins-0.6.0-py3-none-any.whl |
|---|---|
| Size | 81.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3d7be76dff848c5c01bd0f1daf4296300cd327ef589ab3f9cb503473fb0525db
|
|
BLAKE2b-256 checksum How to use checksums |
61933a3ab27661ee81b2e4893e70885283b4d4635d11b6bf8560b89ac6b81f27
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|