UniversitaDellaCalabria / django-form-builder

Dynamic forms builder for Django Framework

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

CI build Python version License

Django Form Builder

A Django Framework application to build dynamic forms, with widgets and Django's standards, using JSON objects.

Forms can be saved in a configurable storage (or settings.py). Users that requires high levels of customization will find what they're look for.

Consult the Official Documentation at readthedocs for usage specifications and advanced topics.

Home Image 1: Example of Dynamic Form built via frontend

Home Image 2: Preview of the builded form

Features

  • Forms definitions via JSON object
  • Save compiled form as JSON objects in model db and get its structure and contents with a simple model method call
  • Override form constructor in order to add static common fields
  • Create input fields using heritable classes, with customizable validation methods
  • Manage Django Formset fields, with form insertion and removal via javascript;
  • Manage and verify digitally signed file fields (PDF and P7M) without a certification authority validation (TODO via third-party API)
  • Audio and Image Captcha

Examples

Example of a dynamic form JSON in database

{
  "field_1": "value_field_1",
  "field_2": "value_field_2",
  "field_3": "value_field_3",
  "attachments": {
    "p7m": "file_1.pdf.p7m",
    "pdf": "file_2.pdf"
  }
}

CaPTCHA

In settings.py configure these parameters

CAPTCHA_SECRET = b'your_secret'
CAPTCHA_SALT = b'your_salt'

Tests

# build a virtualend where to install all the requirements and requirements-dev ...
cd example
./manage.py test

# coverage
coverage erase
coverage run  ./manage.py test
coverage report -m

Build

rm -R build/ dist/ *egg-info
python3 setup.py sdist
twine upload dist/*

About

Dynamic forms builder for Django Framework

License:Apache License 2.0


Languages

Language:Python 89.3%Language:HTML 7.1%Language:JavaScript 3.6%