![CI build](https://github.com/UniversitaDellaCalabria/django-form-builder/workflows/django-form-builder/badge.svg)
![Python version](https://img.shields.io/badge/license-Apache%202-blue.svg)
![License](https://img.shields.io/badge/python-3.5%20%7C%203.6%20%7C%203.7%20%7C%203.8-blue.svg)
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](https://django-form-builder.readthedocs.io/en/latest/index.html) at readthedocs for usage specifications and advanced topics.
![Home](docs/source/images/dyn_form_building.png)
_**Image 1:** Example of Dynamic Form built via frontend_
![Home](docs/source/images/dyn_form_preview.png)
_**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](https://docs.djangoproject.com/en/2.2/topics/forms/formsets/) 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
```json
{
"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/*
````
Raw data
{
"_id": null,
"home_page": "https://github.com/UniversitaDellaCalabria/django-form-builder",
"name": "django-form-builder",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": null,
"author": "Giuseppe De Marco, Francesco Filicetti",
"author_email": "giuseppe.demarco@unical.it, francesco.filicetti@unical.it",
"download_url": "https://files.pythonhosted.org/packages/49/08/1e144a58e1c3b2aec7d7e63705dbcfe7b970bbe2569c6fbb14c765fc7dce/django_form_builder-1.2.1.tar.gz",
"platform": null,
"description": "![CI build](https://github.com/UniversitaDellaCalabria/django-form-builder/workflows/django-form-builder/badge.svg)\n![Python version](https://img.shields.io/badge/license-Apache%202-blue.svg)\n![License](https://img.shields.io/badge/python-3.5%20%7C%203.6%20%7C%203.7%20%7C%203.8-blue.svg)\n\n\nDjango Form Builder\n-------------------\n\nA Django Framework application to build dynamic forms, with widgets and Django's standards, using JSON objects.\n\nForms can be saved in a configurable storage (or settings.py). Users that requires high levels of customization will find what they're look for.\n\nConsult the [Official Documentation](https://django-form-builder.readthedocs.io/en/latest/index.html) at readthedocs for usage specifications and advanced topics.\n\n![Home](docs/source/images/dyn_form_building.png)\n_**Image 1:** Example of Dynamic Form built via frontend_\n\n![Home](docs/source/images/dyn_form_preview.png)\n_**Image 2**: Preview of the builded form_\n\nFeatures\n--------\n\n- Forms definitions via JSON object\n- Save compiled form as JSON objects in model db and get its structure and contents with a simple model method call\n- Override form constructor in order to add static common fields\n- Create input fields using heritable classes, with customizable validation methods\n- Manage [Django Formset](https://docs.djangoproject.com/en/2.2/topics/forms/formsets/) fields, with form insertion and removal via javascript;\n- Manage and verify digitally signed file fields (PDF and P7M) without a certification authority validation (TODO via third-party API)\n- Audio and Image Captcha\n\nExamples\n--------\n\nExample of a dynamic form JSON in database\n\n```json\n{\n \"field_1\": \"value_field_1\",\n \"field_2\": \"value_field_2\",\n \"field_3\": \"value_field_3\",\n \"attachments\": {\n \"p7m\": \"file_1.pdf.p7m\",\n \"pdf\": \"file_2.pdf\"\n }\n}\n```\n\nCaPTCHA\n-------\n\nIn `settings.py` configure these parameters\n\n````\nCAPTCHA_SECRET = b'your_secret'\nCAPTCHA_SALT = b'your_salt'\n````\n\nTests\n-----\n\n````\n# build a virtualend where to install all the requirements and requirements-dev ...\ncd example\n./manage.py test\n\n# coverage\ncoverage erase\ncoverage run ./manage.py test\ncoverage report -m\n````\n\n\nBuild\n-----\n\n````\nrm -R build/ dist/ *egg-info\npython3 setup.py sdist\ntwine upload dist/*\n````\n",
"bugtrack_url": null,
"license": "Apache 2.0",
"summary": "Django Form builder",
"version": "1.2.1",
"project_urls": {
"Homepage": "https://github.com/UniversitaDellaCalabria/django-form-builder"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "90f39056e8c64a95185e04169a29ab122529f4a650452592d977f8887a7fe89f",
"md5": "a0ba5b27c7e260beeef01fd410439e6f",
"sha256": "b2d8a75ae07dc1f1e287eb377b85a66ab271d3a8968cfcc1744b617441775e85"
},
"downloads": -1,
"filename": "django_form_builder-1.2.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "a0ba5b27c7e260beeef01fd410439e6f",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 472704,
"upload_time": "2024-06-27T07:41:13",
"upload_time_iso_8601": "2024-06-27T07:41:13.140868Z",
"url": "https://files.pythonhosted.org/packages/90/f3/9056e8c64a95185e04169a29ab122529f4a650452592d977f8887a7fe89f/django_form_builder-1.2.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "49081e144a58e1c3b2aec7d7e63705dbcfe7b970bbe2569c6fbb14c765fc7dce",
"md5": "9bc1c35d0526d73db7857e45767ff791",
"sha256": "bfb84393cf33add129d84103a3a25f175916f39d57f2b3d65c294b0797e30fa4"
},
"downloads": -1,
"filename": "django_form_builder-1.2.1.tar.gz",
"has_sig": false,
"md5_digest": "9bc1c35d0526d73db7857e45767ff791",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 410930,
"upload_time": "2024-06-27T07:41:15",
"upload_time_iso_8601": "2024-06-27T07:41:15.889079Z",
"url": "https://files.pythonhosted.org/packages/49/08/1e144a58e1c3b2aec7d7e63705dbcfe7b970bbe2569c6fbb14c765fc7dce/django_form_builder-1.2.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-06-27 07:41:15",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "UniversitaDellaCalabria",
"github_project": "django-form-builder",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "django",
"specs": [
[
"<",
"5.0"
],
[
"<=",
"3.2.25"
]
]
},
{
"name": "filesig",
"specs": [
[
">=",
"0.3"
]
]
},
{
"name": "captcha",
"specs": [
[
">=",
"0.3"
]
]
},
{
"name": "cryptography",
"specs": [
[
">=",
"2.8"
]
]
},
{
"name": "pillow",
"specs": [
[
">=",
"10.0.1"
]
]
}
],
"lcname": "django-form-builder"
}