Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tombreit/wagtail-api-forms
User friendly html form builder. A customized Django Wagtail app.
https://github.com/tombreit/wagtail-api-forms
form-builder wagtail
Last synced: about 1 month ago
JSON representation
User friendly html form builder. A customized Django Wagtail app.
- Host: GitHub
- URL: https://github.com/tombreit/wagtail-api-forms
- Owner: tombreit
- License: agpl-3.0
- Created: 2023-03-24T09:40:07.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-04-22T08:43:25.000Z (9 months ago)
- Last Synced: 2024-04-22T09:59:03.677Z (9 months ago)
- Topics: form-builder, wagtail
- Language: Python
- Homepage:
- Size: 430 KB
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.md
Awesome Lists containing this project
README
# wagtail-api-forms
User friendly html form builder. A customized Django Wagtail app.
Wagtail as a standalone builder for form pages or simply forms.
## Features
*Building upon the feature set of [Wagtail form builder](https://docs.wagtail.org/en/latest/reference/contrib/forms/) and customized to provide the following additional features.*
* Expose API endpoint for forms, authentification via token (optional, configurable per form)
* Custom form fields:
* Document file field
* Image file field
* Typeahead-Multiselect field ("select2")
* Datetime and time fields with time picker for Firefox
* Embed page content - without header, footer etc. - via `url?embed=true`. Useful for embedding only the form on third party sites.
* iFrame autoresizing
* Handles Content Security Policy (CSP). See `.env`.
* Multilingual
* Captcha (optional, configurable per form)
* Protect uploaded files (images and documents) via
* filenames prefixed with an UUID
* files could only be fetched from an authenticated request, and/or a whitelisted IP address
* Validates incoming files for:
* maximum file size
* file extension
* file mime type
* virus scan (via clamav in docker, done async via task queue `huey`)
* Branding with custom Logos, Favicon, colors etc.### iFrame
```html
iframe#waf-iframe {
width: 1px;
min-width: 100%;
}
iFrameResize({ log: false }, '#waf-iframe')
```
*Snippet from https://github.com/davidjbradshaw/iframe-resizer#typical-setup. Thanks to [davidjbradshaw](https://github.com/davidjbradshaw/iframe-resizer)*
## Usage
### Setup
See `docs/setup.md`
### Hints
* Docs are served at the URL `fqdn/docs/`.
* Attachment file objects could only be fetched with an authenticated request (from whitelisted ip address or basic auth)
* Attachment file objects could only be fetched if its status is ``av_passed=True`` for which the huey task queue must be running (or when virus checking facility is disabled via `FORMBUILDER_USE_ANTIVIR_SERVICE=false` in `.env`)