Skip to main content

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)

Source distribution for wagtail-form-plugins 0.6.0
File Size Uploaded
wagtail_form_plugins-0.6.0.tar.gz 45.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for wagtail-form-plugins 0.6.0
File Interpreter ABI Platform
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}

Release history Release notifications | RSS feed

This release

0.6.0 This release

2 release files

0.5.0

2 release files

0.4.2

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page