dynamicforms 0.76.19__tar.gz → 0.77.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/PKG-INFO +1 -1
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/docs/reference/layout.md +9 -9
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms/__init__.py +1 -1
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms/serializers.py +6 -6
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms/template_render/layout.py +45 -28
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms/template_render/mixins/serializer.py +1 -1
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/examples/rest/basic_fields.py +19 -3
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/examples/rest/calendar.py +1 -1
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/pyproject.toml +1 -1
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/.actrc +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/.coveragerc +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/.github/workflows/Python tests.yml +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/.github/workflows/check_code.yml +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/.github/workflows/check_doc.yml +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/.github/workflows/incremental-cover-check.yml +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/.github/workflows/vitest_tests.yml +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/.gitignore +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/LICENSE +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/MANIFEST.in +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/README.md +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/docs/.docs_archive/Makefile +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/docs/.docs_archive/conf.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/docs/.docs_archive/documents/api/action_controls.rst +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/docs/.docs_archive/documents/api/context_processors.rst +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/docs/.docs_archive/documents/api/dialogs.rst +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/docs/.docs_archive/documents/api/fields.rst +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/docs/.docs_archive/documents/api/index.rst +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/docs/.docs_archive/documents/api/renderers.rst +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/docs/.docs_archive/documents/api/serializers.rst +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/docs/.docs_archive/documents/api/templatetags.rst +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/docs/.docs_archive/documents/api/viewsets.rst +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/docs/.docs_archive/documents/contribute.rst +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/docs/.docs_archive/documents/guides/index.rst +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/docs/.docs_archive/documents/guides/quick_start.rst +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/docs/.docs_archive/documents/guides/templates.rst +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/docs/.docs_archive/documents/intro.rst +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/docs/.docs_archive/documents/settings.rst +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/docs/.docs_archive/index.rst +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/docs/.docs_archive/make.bat +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/docs/.vitepress/config.mts +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/docs/.vitepress/theme/index.ts +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/docs/.vitepress/theme/style.css +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/docs/examples/api-examples.md +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/docs/examples/markdown-examples.md +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/docs/getting-started.md +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/docs/index.md +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/docs/reference/dialog-size.md +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/docs/reference/hiding_titlebar_and_navbar.md +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/docs/reference/index.md +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/docs/settings.md +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms/action.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms/apps.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms/fields.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms/filters.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms/locale/en/LC_MESSAGES/django.po +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms/locale/en/LC_MESSAGES/djangojs.po +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms/locale/sl/LC_MESSAGES/django.po +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms/locale/sl/LC_MESSAGES/djangojs.po +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms/management/__init__.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms/management/commands/__init__.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms/management/commands/clean_dfpreuploaded_files.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms/migrations/__init__.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms/mixins/__init__.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms/mixins/action.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms/mixins/choice/__init__.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms/mixins/choice/allow_tags.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms/mixins/choice/null_choice.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms/mixins/choice/single_choice.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms/mixins/color_field.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms/mixins/conditional_visibility.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms/mixins/enable_copy.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms/mixins/field_render.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms/mixins/file_field.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms/mixins/help_text.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms/mixins/implicit_hidden.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms/mixins/implicit_natural_date.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms/mixins/null_value.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms/mixins/password_field.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms/mixins/related_field_ajax.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms/mixins/rtf_field.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms/models.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms/models_utils.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms/pagination.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms/preupload_files.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms/progress.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms/renderers.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms/routers.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms/struct.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms/template_render/__init__.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms/template_render/mixins/__init__.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms/template_render/mixins/base.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms/template_render/mixins/field.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms/template_render/mixins/listserializer.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms/template_render/mixins/render_mode_enum.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms/template_render/mixins/serializer_filter.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms/template_render/mixins/serializer_render_actions.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms/template_render/mixins/serializer_render_fields.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms/template_render/mixins/util.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms/template_render/renderer.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms/template_render/responsive_table_layout.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms/urls.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms/utils.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms/views.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms/viewsets.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_dev/__init__.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_dev/management/__init__.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_dev/management/commands/__init__.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_dev/management/commands/generate_fields.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_dev/management/commands/npm_run.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/__init__.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/action.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/apps.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/context_processors.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/dynamicforms_migration_mixin.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/fields.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/filters.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/migrations/__init__.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/mixins/__init__.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/mixins/action.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/mixins/allow_tags.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/mixins/enable_copy.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/mixins/file_field.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/mixins/help_text.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/mixins/implicit_hidden.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/mixins/implicit_natural_date.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/mixins/null_choice.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/mixins/null_value.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/mixins/password_field.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/mixins/related_field_ajax.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/mixins/render.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/mixins/rtf_field.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/mixins/single_choice.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/models.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/pagination.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/progress.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/renderers.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/serializers.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/settings.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/bootstrap-3.4.1-dist/css/bootstrap-theme.css +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/bootstrap-3.4.1-dist/css/bootstrap-theme.css.map +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/bootstrap-3.4.1-dist/css/bootstrap-theme.min.css +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/bootstrap-3.4.1-dist/css/bootstrap-theme.min.css.map +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/bootstrap-3.4.1-dist/css/bootstrap.css +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/bootstrap-3.4.1-dist/css/bootstrap.css.map +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/bootstrap-3.4.1-dist/css/bootstrap.min.css +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/bootstrap-3.4.1-dist/css/bootstrap.min.css.map +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/bootstrap-3.4.1-dist/fonts/glyphicons-halflings-regular.eot +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/bootstrap-3.4.1-dist/fonts/glyphicons-halflings-regular.svg +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/bootstrap-3.4.1-dist/fonts/glyphicons-halflings-regular.ttf +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/bootstrap-3.4.1-dist/fonts/glyphicons-halflings-regular.woff +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/bootstrap-3.4.1-dist/fonts/glyphicons-halflings-regular.woff2 +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/bootstrap-3.4.1-dist/js/bootstrap.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/bootstrap-3.4.1-dist/js/bootstrap.min.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/bootstrap-3.4.1-dist/js/npm.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/bootstrap-4.3.1-dist/css/bootstrap-grid.css +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/bootstrap-4.3.1-dist/css/bootstrap-grid.css.map +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/bootstrap-4.3.1-dist/css/bootstrap-grid.min.css +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/bootstrap-4.3.1-dist/css/bootstrap-grid.min.css.map +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/bootstrap-4.3.1-dist/css/bootstrap-reboot.css +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/bootstrap-4.3.1-dist/css/bootstrap-reboot.css.map +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/bootstrap-4.3.1-dist/css/bootstrap-reboot.min.css +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/bootstrap-4.3.1-dist/css/bootstrap-reboot.min.css.map +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/bootstrap-4.3.1-dist/css/bootstrap.css +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/bootstrap-4.3.1-dist/css/bootstrap.css.map +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/bootstrap-4.3.1-dist/css/bootstrap.min.css +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/bootstrap-4.3.1-dist/css/bootstrap.min.css.map +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/bootstrap-4.3.1-dist/js/bootstrap.bundle.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/bootstrap-4.3.1-dist/js/bootstrap.bundle.js.map +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/bootstrap-4.3.1-dist/js/bootstrap.bundle.min.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/bootstrap-4.3.1-dist/js/bootstrap.bundle.min.js.map +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/bootstrap-4.3.1-dist/js/bootstrap.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/bootstrap-4.3.1-dist/js/bootstrap.js.map +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/bootstrap-4.3.1-dist/js/bootstrap.min.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/bootstrap-4.3.1-dist/js/bootstrap.min.js.map +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/ckeditor-df/ckEditorCustomBuildReadMe.txt +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/ckeditor-df/ckeditor.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/dynamicforms/dynamicforms.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/dynamicforms/icons/copy.svg +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/dynamicforms/icons/eye-off-outline.svg +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/dynamicforms/icons/eye-outline.svg +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/jquery_ui/css/images/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/jquery_ui/css/images/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/jquery_ui/css/images/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/jquery_ui/css/images/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/jquery_ui/css/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/jquery_ui/css/images/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/jquery_ui/css/images/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/jquery_ui/css/images/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/jquery_ui/css/images/ui-icons_222222_256x240.png +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/jquery_ui/css/images/ui-icons_228ef1_256x240.png +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/jquery_ui/css/images/ui-icons_ef8c08_256x240.png +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/jquery_ui/css/images/ui-icons_ffd27a_256x240.png +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/jquery_ui/css/images/ui-icons_ffffff_256x240.png +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/jquery_ui/css/jquery-ui.min.css +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/jquery_ui/css/jquery-ui.structure.min.css +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/jquery_ui/css/jquery-ui.theme.min.css +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/jquery_ui/js/jquery-3.3.1.min.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/jquery_ui/js/jquery-ui.min.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/select2/css/select2-bootstrap3.min.css +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/select2/css/select2-bootstrap4.min.css +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/select2/select2-4.0.5/css/select2.min.css +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/select2/select2-4.0.5/js/i18n/af.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/select2/select2-4.0.5/js/i18n/ar.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/select2/select2-4.0.5/js/i18n/az.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/select2/select2-4.0.5/js/i18n/bg.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/select2/select2-4.0.5/js/i18n/bs.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/select2/select2-4.0.5/js/i18n/ca.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/select2/select2-4.0.5/js/i18n/cs.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/select2/select2-4.0.5/js/i18n/da.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/select2/select2-4.0.5/js/i18n/de.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/select2/select2-4.0.5/js/i18n/dsb.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/select2/select2-4.0.5/js/i18n/el.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/select2/select2-4.0.5/js/i18n/en.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/select2/select2-4.0.5/js/i18n/es.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/select2/select2-4.0.5/js/i18n/et.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/select2/select2-4.0.5/js/i18n/eu.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/select2/select2-4.0.5/js/i18n/fa.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/select2/select2-4.0.5/js/i18n/fi.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/select2/select2-4.0.5/js/i18n/fr.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/select2/select2-4.0.5/js/i18n/gl.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/select2/select2-4.0.5/js/i18n/he.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/select2/select2-4.0.5/js/i18n/hi.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/select2/select2-4.0.5/js/i18n/hr.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/select2/select2-4.0.5/js/i18n/hsb.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/select2/select2-4.0.5/js/i18n/hu.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/select2/select2-4.0.5/js/i18n/hy.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/select2/select2-4.0.5/js/i18n/id.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/select2/select2-4.0.5/js/i18n/is.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/select2/select2-4.0.5/js/i18n/it.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/select2/select2-4.0.5/js/i18n/ja.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/select2/select2-4.0.5/js/i18n/km.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/select2/select2-4.0.5/js/i18n/ko.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/select2/select2-4.0.5/js/i18n/lt.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/select2/select2-4.0.5/js/i18n/lv.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/select2/select2-4.0.5/js/i18n/mk.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/select2/select2-4.0.5/js/i18n/ms.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/select2/select2-4.0.5/js/i18n/nb.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/select2/select2-4.0.5/js/i18n/nl.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/select2/select2-4.0.5/js/i18n/pl.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/select2/select2-4.0.5/js/i18n/ps.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/select2/select2-4.0.5/js/i18n/pt-BR.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/select2/select2-4.0.5/js/i18n/pt.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/select2/select2-4.0.5/js/i18n/ro.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/select2/select2-4.0.5/js/i18n/ru.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/select2/select2-4.0.5/js/i18n/sk.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/select2/select2-4.0.5/js/i18n/sl.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/select2/select2-4.0.5/js/i18n/sr-Cyrl.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/select2/select2-4.0.5/js/i18n/sr.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/select2/select2-4.0.5/js/i18n/sv.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/select2/select2-4.0.5/js/i18n/th.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/select2/select2-4.0.5/js/i18n/tr.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/select2/select2-4.0.5/js/i18n/uk.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/select2/select2-4.0.5/js/i18n/vi.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/select2/select2-4.0.5/js/i18n/zh-CN.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/select2/select2-4.0.5/js/i18n/zh-TW.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/select2/select2-4.0.5/js/select2.full.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/select2/select2-4.0.5/js/select2.full.min.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/select2/select2-4.0.5/js/select2.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/static/select2/select2-4.0.5/js/select2.min.js +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/struct.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/base.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/base_form.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/base_includes.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/base_includes_select2.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/base_list.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/base_table_body.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/base_table_filter.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/bootstrap/base_form.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/bootstrap/base_includes.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/bootstrap/base_includes_v3.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/bootstrap/base_includes_v4.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/bootstrap/base_list.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/bootstrap/base_table_body.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/bootstrap/base_table_filter.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/bootstrap/field/base_field.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/bootstrap/field/base_field_v3.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/bootstrap/field/base_field_v4.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/bootstrap/field/checkbox.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/bootstrap/field/checkbox_multiple.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/bootstrap/field/fieldset.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/bootstrap/field/form.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/bootstrap/field/input.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/bootstrap/field/list_fieldset.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/bootstrap/field/radio.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/bootstrap/field/rtf_field.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/bootstrap/field/select.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/bootstrap/field/select_multiple.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/bootstrap/field/textarea.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/bootstrap/modal_dialog.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/bootstrap/modal_dialog_rest.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/bootstrap/page.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/field/base_field.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/field/checkbox.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/field/checkbox_multiple.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/field/dict_field.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/field/fieldset.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/field/form.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/field/input.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/field/list_field.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/field/list_fieldset.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/field/radio.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/field/rtf_field.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/field/select.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/field/select_multiple.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/field/textarea.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/jquery_ui/base_form.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/jquery_ui/base_includes.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/jquery_ui/base_list.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/jquery_ui/base_table_body.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/jquery_ui/base_table_filter.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/jquery_ui/field/base_field.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/jquery_ui/field/checkbox.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/jquery_ui/field/checkbox_multiple.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/jquery_ui/field/fieldset.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/jquery_ui/field/form.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/jquery_ui/field/input.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/jquery_ui/field/list_fieldset.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/jquery_ui/field/radio.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/jquery_ui/field/rtf_field.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/jquery_ui/field/select.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/jquery_ui/field/select_multiple.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/jquery_ui/field/textarea.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/jquery_ui/modal_dialog.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/jquery_ui/modal_dialog_rest.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/jquery_ui/page.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/modal_dialog.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/modal_dialog_rest.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/page.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templates/dynamicforms/rtf_field_style.html +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templatetags/__init__.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/templatetags/dynamicforms.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/urls.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/views.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms_legacy/viewsets.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/examples/__init__.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/examples/admin.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/examples/apps.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/examples/enum_field.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/examples/migrations/0001_initial.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/examples/migrations/0002_auto_20190320_0823.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/examples/migrations/0003_filter_name.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/examples/migrations/0004_basicfields_password_field.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/examples/migrations/0005_advancedfields_file_field_two.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/examples/migrations/0005_refreshtype_rich_text_field.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/examples/migrations/0006_merge_20200921_1152.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/examples/migrations/0007_basicfields_nullint_field.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/examples/migrations/0008_auto_20210303_0904.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/examples/migrations/0008_auto_20210312_1146.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/examples/migrations/0009_auto_20210929_1136.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/examples/migrations/0010_filter_rtf_field.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/examples/migrations/0011_auto_20211120_0523.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/examples/migrations/__init__.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/examples/models.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/examples/recurrence_utils.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/examples/rest/__init__.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/examples/rest/actions_overview.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/examples/rest/advanced_fields.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/examples/rest/calculated_css_class_for_table_row.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/examples/rest/calendar_dependencies.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/examples/rest/calendar_recurrence.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/examples/rest/calendar_reminders.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/examples/rest/choice_allow_tags_fields.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/examples/rest/document.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/examples/rest/fields/__init__.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/examples/rest/fields/df_file_field.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/examples/rest/fields/name_field.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/examples/rest/filter.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/examples/rest/hidden_fields.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/examples/rest/page_load.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/examples/rest/relation.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/examples/rest/single_dialog.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/examples/rest/validated.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/examples/rest/write_only_fields.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/examples/tests.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/examples/urls.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/manage.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/package-lock.json +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/package.json +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/publish.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/readthedocs.yml +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/requirements.txt +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/requirements_test_functional.txt +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/setup/__init__.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/setup/settings.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/setup/urls.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/setup/wsgi.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/tests/__init__.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/tests/functional/__init__.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/tests/functional/_test_advanced_fields.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/tests/functional/_test_basic_fields.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/tests/functional/_test_filter.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/tests/functional/_test_hidden_fields.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/tests/functional/_test_page_load.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/tests/functional/_test_single_dialog.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/tests/functional/_test_validated.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/tests/functional/_tests.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/tests/functional/select.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/tests/functional/selenium_test_case.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/tests/request_sync.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/tests/static_files/0_3142.prj +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/tests/unit/__init__.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/tests/unit/test_calendar.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/tests/unit/test_conditional_visibility.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/tests/unit/test_cursor_pagination.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/tests/unit/test_df_serializer.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/tests/unit/test_filter.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/tests/unit/test_page_load.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/tests/unit/test_struct.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/tests/unit/test_validate_allow_null_for_field_with_source_equal_to_star.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/tests/unit/tests.py +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/tox.ini +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/tsconfig.build.json +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/tsconfig.eslint.json +0 -0
- {dynamicforms-0.76.19 → dynamicforms-0.77.1}/tsconfig.json +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: dynamicforms
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.77.1
|
|
4
4
|
Summary: DynamicForms performs all the visualisation & data entry of your DRF Serializers & ViewSets and adds some candy of its own
|
|
5
5
|
Project-URL: Homepage, https://github.com/velis74/DynamicForms
|
|
6
6
|
Project-URL: Repository, https://github.com/velis74/DynamicForms
|
|
@@ -18,7 +18,7 @@ class MySerializer(serializers.ModelSerializer):
|
|
|
18
18
|
fields = ['field1', 'field2', 'field3', 'field4']
|
|
19
19
|
layout = Layout(
|
|
20
20
|
Row('field1', 'field2'),
|
|
21
|
-
Row(Column('field3'), Column(Field('field4'))),
|
|
21
|
+
Row(Column('field3'), Column(Field('field4', 'my_component_name'))),
|
|
22
22
|
)
|
|
23
23
|
```
|
|
24
24
|
|
|
@@ -43,7 +43,7 @@ Layout(
|
|
|
43
43
|
* rows: A list of Row objects defining the layout structure.
|
|
44
44
|
* component_name: The name of the Vue component to use for rendering (default: "df-form-layout"). Used for overriding
|
|
45
45
|
default rendering.
|
|
46
|
-
* columns: Number of columns for automatically added fields (default: 1).
|
|
46
|
+
* columns: Number of columns for automatically added fields (default: 1). Also important for layout and colspan.
|
|
47
47
|
* size: Size of the layout ("small", "large", "", etc.). Mostly effective when this layout is going to be rendered in a
|
|
48
48
|
dialog. See [DialogSize](dialog-size) for reference on size classes.
|
|
49
49
|
* header_classes: CSS classes for the header.
|
|
@@ -58,12 +58,12 @@ The Row class represents a horizontal group of columns.
|
|
|
58
58
|
from typing import Union
|
|
59
59
|
from dynamicforms.template_render.layout import Layout, Row, Column, Field
|
|
60
60
|
|
|
61
|
-
Row(*columns: Union[Column, Field, str],
|
|
61
|
+
Row(*columns: Union[Column, Field, str], component_name="FormRow")
|
|
62
62
|
```
|
|
63
63
|
|
|
64
64
|
* columns: A list of Column objects or field names.
|
|
65
|
-
*
|
|
66
|
-
rendering components.
|
|
65
|
+
* component_name: The name of the Vue component to use for rendering (default: "FormRow"). Change when overriding
|
|
66
|
+
default rendering components.
|
|
67
67
|
|
|
68
68
|
## Column
|
|
69
69
|
|
|
@@ -74,10 +74,10 @@ from typing import Union, Optional, Tuple
|
|
|
74
74
|
from dynamicforms.template_render.layout import Layout, Row, Column, Field
|
|
75
75
|
from dynamicforms.fields import DFField
|
|
76
76
|
|
|
77
|
-
Column(field: Union[Tuple[str, DFField], Field, str, None],
|
|
77
|
+
Column(field: Union[Tuple[str, DFField], Field, str, None], colspan: int = 1)
|
|
78
78
|
```
|
|
79
79
|
* field: A Field object or field name.
|
|
80
|
-
*
|
|
80
|
+
* colspan: how many columns does this field span. See Layout.columns property
|
|
81
81
|
|
|
82
82
|
|
|
83
83
|
## Group
|
|
@@ -92,7 +92,7 @@ Group(
|
|
|
92
92
|
field: Union[str, Field, None],
|
|
93
93
|
title: str = None,
|
|
94
94
|
sub_layout: Layout = None,
|
|
95
|
-
|
|
95
|
+
colspan: int = 1,
|
|
96
96
|
footer: Optional[str] = None,
|
|
97
97
|
)
|
|
98
98
|
```
|
|
@@ -100,7 +100,7 @@ Group(
|
|
|
100
100
|
* field: A Field object, field name, or None for flat field grouping.
|
|
101
101
|
* title: The title of the group.
|
|
102
102
|
* sub_layout: A Layout object for custom layout within the group.
|
|
103
|
-
*
|
|
103
|
+
* colspan: how many columns does this group span in the layout.
|
|
104
104
|
* footer: Optional footer text for the group.
|
|
105
105
|
|
|
106
106
|
Groups can be used in two main ways:
|
|
@@ -491,7 +491,7 @@ class Serializer(DynamicFormsSerializer, serializers.Serializer):
|
|
|
491
491
|
class DynamicModelMixin:
|
|
492
492
|
MODEL_FUNC_SETTING_NAME = None
|
|
493
493
|
|
|
494
|
-
def determine_model_at_runtime(self) -> Optional[models.Model]:
|
|
494
|
+
def determine_model_at_runtime(self, request) -> Optional[models.Model]:
|
|
495
495
|
"""
|
|
496
496
|
Determines what model should be the basis for the serializer at runtime. Allows for dynamic model adjustments
|
|
497
497
|
based on active code at the time of serialization
|
|
@@ -499,7 +499,7 @@ class DynamicModelMixin:
|
|
|
499
499
|
"""
|
|
500
500
|
try:
|
|
501
501
|
model_func = import_string(getattr(settings, self.MODEL_FUNC_SETTING_NAME, None))
|
|
502
|
-
return model_func(self)
|
|
502
|
+
return model_func(self, request)
|
|
503
503
|
except ImportError:
|
|
504
504
|
pass
|
|
505
505
|
return None
|
|
@@ -509,11 +509,11 @@ class DynamicModelSerializerMixin(DynamicModelMixin):
|
|
|
509
509
|
LAYOUT_FUNC_SETTING_NAME = None
|
|
510
510
|
|
|
511
511
|
def __init__(self, *args, **kwargs):
|
|
512
|
-
if model := self.determine_model_at_runtime():
|
|
513
|
-
self.
|
|
512
|
+
if model := self.determine_model_at_runtime(kwargs.get("context", {}).get("request")):
|
|
513
|
+
self.Meta.model = model
|
|
514
514
|
super().__init__(*args, **kwargs)
|
|
515
515
|
|
|
516
|
-
def determine_layout_at_runtime(self):
|
|
516
|
+
def determine_layout_at_runtime(self, request):
|
|
517
517
|
"""
|
|
518
518
|
Determines what layout should be used for displaying the model at runtime. Allows for dynamic model adjustments
|
|
519
519
|
based on active code at the time of serialization
|
|
@@ -524,7 +524,7 @@ class DynamicModelSerializerMixin(DynamicModelMixin):
|
|
|
524
524
|
"""
|
|
525
525
|
try:
|
|
526
526
|
layout_func = import_string(getattr(settings, self.LAYOUT_FUNC_SETTING_NAME, None))
|
|
527
|
-
return layout_func(self)
|
|
527
|
+
return layout_func(self, request)
|
|
528
528
|
except ImportError:
|
|
529
529
|
pass
|
|
530
530
|
return self.Meta.layout
|
|
@@ -11,12 +11,12 @@ if TYPE_CHECKING:
|
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
class Field(object):
|
|
14
|
-
def __init__(self, field_name: str,
|
|
14
|
+
def __init__(self, field_name: str, component_name: Optional[str] = None):
|
|
15
15
|
self.field_name = field_name
|
|
16
|
-
self.
|
|
16
|
+
self.component_name = component_name
|
|
17
17
|
|
|
18
18
|
def clone(self):
|
|
19
|
-
return Field(self.field_name, self.
|
|
19
|
+
return Field(self.field_name, self.component_name)
|
|
20
20
|
|
|
21
21
|
def field_def(self, serializer: "Serializer") -> Union[DFField, DRFSerializer]:
|
|
22
22
|
return serializer.fields[self.field_name]
|
|
@@ -25,14 +25,18 @@ class Field(object):
|
|
|
25
25
|
field = self.field_def(serializer).as_component_def()
|
|
26
26
|
|
|
27
27
|
field["name"] = self.field_name
|
|
28
|
-
|
|
29
|
-
field["render_format"] = self.render_format
|
|
28
|
+
field["component_name"] = self.component_name
|
|
30
29
|
fields[self.field_name] = field
|
|
31
30
|
return field["name"]
|
|
32
31
|
|
|
33
32
|
|
|
34
33
|
class Column(object):
|
|
35
|
-
def __init__(
|
|
34
|
+
def __init__(
|
|
35
|
+
self,
|
|
36
|
+
field: Union[Tuple[str, DFField], Field, str, None],
|
|
37
|
+
colspan: int = 1,
|
|
38
|
+
component_name: Optional[str] = "form-field",
|
|
39
|
+
):
|
|
36
40
|
if isinstance(field, str):
|
|
37
41
|
self.field = Field(field)
|
|
38
42
|
elif isinstance(field, Field):
|
|
@@ -42,13 +46,13 @@ class Column(object):
|
|
|
42
46
|
self.field = field
|
|
43
47
|
else:
|
|
44
48
|
raise NotImplementedError(f"Unknown field type {field.__class__.__name__}")
|
|
45
|
-
self.
|
|
46
|
-
|
|
47
|
-
# specify how big a column was to be used. Needs to change to support the Vue / Vuetify components and
|
|
48
|
-
# their props now. task: https://app.clickup.com/t/86bzw1k8f
|
|
49
|
+
self.component_name = component_name
|
|
50
|
+
self.colspan = colspan or 1
|
|
49
51
|
|
|
50
52
|
def clone(self):
|
|
51
|
-
return Column(
|
|
53
|
+
return Column(
|
|
54
|
+
field=self.field.clone() if self.field else None, colspan=self.colspan, component_name=self.component_name
|
|
55
|
+
)
|
|
52
56
|
|
|
53
57
|
def _get_laid_fields(self):
|
|
54
58
|
return {self.field.field_name} if self.field is not None else set()
|
|
@@ -56,14 +60,15 @@ class Column(object):
|
|
|
56
60
|
def as_component_def(self, serializer: "Serializer", fields: Dict) -> Dict:
|
|
57
61
|
fld_def = self.field.as_component_def(serializer, fields) if self.field is not None else dict()
|
|
58
62
|
res = dict(type="column", field=fld_def)
|
|
59
|
-
if self.
|
|
60
|
-
res["
|
|
63
|
+
if self.colspan != 1:
|
|
64
|
+
res["colspan"] = self.colspan
|
|
65
|
+
res["component_name"] = self.component_name
|
|
61
66
|
return res
|
|
62
67
|
|
|
63
68
|
|
|
64
69
|
class Row(object):
|
|
65
|
-
def __init__(self, *columns: Union[Column, Field, str],
|
|
66
|
-
self.
|
|
70
|
+
def __init__(self, *columns: Union[Column, Field, str], component_name: str = "form-row"):
|
|
71
|
+
self.component_name = component_name
|
|
67
72
|
self.columns: List[Column] = []
|
|
68
73
|
for column in columns:
|
|
69
74
|
if isinstance(column, str):
|
|
@@ -76,14 +81,15 @@ class Row(object):
|
|
|
76
81
|
raise NotImplementedError(f"Unknown column type {column.__class__.__name__}")
|
|
77
82
|
|
|
78
83
|
def clone(self):
|
|
79
|
-
return Row(*[col.clone() for col in self.columns],
|
|
84
|
+
return Row(*[col.clone() for col in self.columns], component_name=self.component_name)
|
|
80
85
|
|
|
81
86
|
def _get_laid_fields(self):
|
|
82
87
|
return set().union(*(col._get_laid_fields() for col in self.columns))
|
|
83
88
|
|
|
84
89
|
def as_component_def(self, serializer: "Serializer", fields: Dict) -> dict:
|
|
85
90
|
return dict(
|
|
86
|
-
|
|
91
|
+
component_name=self.component_name,
|
|
92
|
+
columns=[col.as_component_def(serializer, fields) for col in self.columns],
|
|
87
93
|
)
|
|
88
94
|
|
|
89
95
|
|
|
@@ -103,6 +109,8 @@ class Layout(object):
|
|
|
103
109
|
:param columns: for all fields not added in layout manually, add them in n-column layout
|
|
104
110
|
:param size: 'small', 'large' or ''
|
|
105
111
|
:param header_classes: 'bg-info', ..., or ''
|
|
112
|
+
:param auto_add_fields: whether we should automatically add all unlisted fields
|
|
113
|
+
from the serializer (in as_component_def)
|
|
106
114
|
"""
|
|
107
115
|
self.rows: List[Row] = list(rows) or []
|
|
108
116
|
self.columns = columns
|
|
@@ -118,19 +126,24 @@ class Layout(object):
|
|
|
118
126
|
columns=self.columns,
|
|
119
127
|
size=self.size,
|
|
120
128
|
header_classes=self.header_classes,
|
|
121
|
-
auto_add_fields=self.auto_add_fields
|
|
129
|
+
auto_add_fields=self.auto_add_fields,
|
|
122
130
|
)
|
|
123
131
|
|
|
124
132
|
def append_after_row(self, field_name: Optional[str], *rows: Row):
|
|
125
|
-
"""
|
|
133
|
+
"""
|
|
134
|
+
Adds new rows after the row with specified field. if field_name is None, inserts new rows at beginning.
|
|
135
|
+
Note that if specified field is in a subgroup, the new rows will not be inserted in the subgroup,
|
|
136
|
+
but below it instead.
|
|
137
|
+
"""
|
|
126
138
|
if field_name is None:
|
|
127
139
|
self.rows[0:0] = rows
|
|
128
140
|
return
|
|
141
|
+
|
|
129
142
|
for i, row in enumerate(self.rows):
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
143
|
+
if field_name in row._get_laid_fields():
|
|
144
|
+
self.rows[i + 1 : i + 1] = rows
|
|
145
|
+
return
|
|
146
|
+
|
|
134
147
|
raise ValueError(f"Field {field_name} not found in the layout")
|
|
135
148
|
|
|
136
149
|
def _get_laid_fields(self):
|
|
@@ -181,21 +194,25 @@ class Group(Column):
|
|
|
181
194
|
field: Union[str, Field, None],
|
|
182
195
|
title: str = None,
|
|
183
196
|
sub_layout: Layout = None,
|
|
184
|
-
|
|
197
|
+
colspan: int = 1,
|
|
185
198
|
footer: Optional[str] = None,
|
|
199
|
+
component_name: Optional[str] = "form-field-group",
|
|
186
200
|
):
|
|
187
|
-
super().__init__(field,
|
|
201
|
+
super().__init__(field=field, colspan=colspan, component_name=component_name)
|
|
188
202
|
self.title = title
|
|
189
203
|
self.layout = sub_layout
|
|
190
204
|
self.footer = footer
|
|
205
|
+
self.component_name = component_name
|
|
206
|
+
assert self.field or self.layout
|
|
191
207
|
|
|
192
208
|
def clone(self):
|
|
193
209
|
return Group(
|
|
194
210
|
field=self.field.clone() if self.field else None,
|
|
195
211
|
title=self.title,
|
|
196
212
|
sub_layout=self.layout.clone() if self.layout else None,
|
|
197
|
-
|
|
198
|
-
footer=self.footer
|
|
213
|
+
colspan=self.colspan,
|
|
214
|
+
footer=self.footer,
|
|
215
|
+
component_name=self.component_name,
|
|
199
216
|
)
|
|
200
217
|
|
|
201
218
|
def _get_laid_fields(self):
|
|
@@ -205,7 +222,6 @@ class Group(Column):
|
|
|
205
222
|
|
|
206
223
|
def as_component_def(self, serializer: "Serializer", fields: Dict) -> Dict:
|
|
207
224
|
res = super().as_component_def(serializer, fields)
|
|
208
|
-
assert self.field or self.layout
|
|
209
225
|
sub_serializer = self.field.field_def(serializer) if self.field else None # type: Serializer
|
|
210
226
|
layout = self.layout or sub_serializer.layout
|
|
211
227
|
res.update(
|
|
@@ -214,5 +230,6 @@ class Group(Column):
|
|
|
214
230
|
title=self.title or sub_serializer.label,
|
|
215
231
|
uuid=sub_serializer.uuid if sub_serializer else uuid.uuid4(),
|
|
216
232
|
layout=layout.as_component_def(sub_serializer if sub_serializer else serializer),
|
|
233
|
+
component_name=self.component_name,
|
|
217
234
|
)
|
|
218
235
|
return res
|
{dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms/template_render/mixins/serializer.py
RENAMED
|
@@ -188,7 +188,7 @@ class ViewModeSerializer(ViewModeBase, SerializerFilter, metaclass=SerializerMet
|
|
|
188
188
|
@property
|
|
189
189
|
def layout(self):
|
|
190
190
|
template_context = getattr(self, "template_context", {})
|
|
191
|
-
if hasattr(self, 'determine_layout_at_runtime') and (layout := self.determine_layout_at_runtime()):
|
|
191
|
+
if hasattr(self, 'determine_layout_at_runtime') and (layout := self.determine_layout_at_runtime(self.request)):
|
|
192
192
|
return layout
|
|
193
193
|
elif hasattr(self, "Meta") and hasattr(self.Meta, "layout"):
|
|
194
194
|
return self.Meta.layout
|
|
@@ -2,7 +2,7 @@ from django.utils.translation import gettext_lazy as _
|
|
|
2
2
|
|
|
3
3
|
from dynamicforms import fields, serializers
|
|
4
4
|
from dynamicforms.action import Actions, TableAction, TablePosition
|
|
5
|
-
from dynamicforms.template_render.layout import Layout
|
|
5
|
+
from dynamicforms.template_render.layout import Group, Layout, Row
|
|
6
6
|
from dynamicforms.template_render.responsive_table_layout import ResponsiveTableLayout, ResponsiveTableLayouts
|
|
7
7
|
from dynamicforms.viewsets import ModelViewSet
|
|
8
8
|
|
|
@@ -55,7 +55,23 @@ class BasicFieldsSerializer(serializers.ModelSerializer):
|
|
|
55
55
|
class Meta:
|
|
56
56
|
model = BasicFields
|
|
57
57
|
exclude = ()
|
|
58
|
-
layout = Layout(
|
|
58
|
+
layout = Layout(
|
|
59
|
+
Row(
|
|
60
|
+
Group(
|
|
61
|
+
None,
|
|
62
|
+
"Booleans",
|
|
63
|
+
Layout(Row("boolean_field"), Row("nullboolean_field"), auto_add_fields=False),
|
|
64
|
+
),
|
|
65
|
+
Group(
|
|
66
|
+
None,
|
|
67
|
+
"Text fields",
|
|
68
|
+
Layout(Row("char_field"), Row("slug_field"), Row("password_field"), auto_add_fields=False),
|
|
69
|
+
colspan=2,
|
|
70
|
+
),
|
|
71
|
+
),
|
|
72
|
+
columns=3,
|
|
73
|
+
size="large",
|
|
74
|
+
)
|
|
59
75
|
responsive_columns = ResponsiveTableLayouts(
|
|
60
76
|
auto_generate_single_row_layout=True,
|
|
61
77
|
layouts=[
|
|
@@ -81,7 +97,7 @@ class BasicFieldsSerializer(serializers.ModelSerializer):
|
|
|
81
97
|
auto_add_non_listed_columns=True,
|
|
82
98
|
),
|
|
83
99
|
],
|
|
84
|
-
auto_generate_single_column_layout=
|
|
100
|
+
auto_generate_single_column_layout=False,
|
|
85
101
|
)
|
|
86
102
|
|
|
87
103
|
|
|
@@ -61,7 +61,7 @@ class CalendarEventSerializer(RecurrenceEventSerializer):
|
|
|
61
61
|
Row("description"),
|
|
62
62
|
Row("start_at", "end_at"),
|
|
63
63
|
Row("reminders"),
|
|
64
|
-
Row(Group("recurrence",
|
|
64
|
+
Row(Group("recurrence", colspan=8), Column("change_this_record_only", colspan=4)),
|
|
65
65
|
columns=2,
|
|
66
66
|
size="large",
|
|
67
67
|
)
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "dynamicforms"
|
|
7
|
-
version = "0.
|
|
7
|
+
version = "0.77.1"
|
|
8
8
|
description = "DynamicForms performs all the visualisation & data entry of your DRF Serializers & ViewSets and adds some candy of its own"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.8"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dynamicforms-0.76.19 → dynamicforms-0.77.1}/docs/.docs_archive/documents/api/action_controls.rst
RENAMED
|
File without changes
|
{dynamicforms-0.76.19 → dynamicforms-0.77.1}/docs/.docs_archive/documents/api/context_processors.rst
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dynamicforms-0.76.19 → dynamicforms-0.77.1}/docs/.docs_archive/documents/api/serializers.rst
RENAMED
|
File without changes
|
{dynamicforms-0.76.19 → dynamicforms-0.77.1}/docs/.docs_archive/documents/api/templatetags.rst
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dynamicforms-0.76.19 → dynamicforms-0.77.1}/docs/.docs_archive/documents/guides/quick_start.rst
RENAMED
|
File without changes
|
{dynamicforms-0.76.19 → dynamicforms-0.77.1}/docs/.docs_archive/documents/guides/templates.rst
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms/template_render/mixins/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms/template_render/mixins/listserializer.py
RENAMED
|
File without changes
|
{dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms/template_render/mixins/render_mode_enum.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dynamicforms-0.76.19 → dynamicforms-0.77.1}/dynamicforms/template_render/responsive_table_layout.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|