Flask-Exts 0.1.9__tar.gz → 0.2.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.
- {flask_exts-0.1.9 → flask_exts-0.2.1}/.gitignore +3 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/CHANGES.rst +15 -2
- {flask_exts-0.1.9 → flask_exts-0.2.1}/LICENSE.rst +1 -1
- {flask_exts-0.1.9 → flask_exts-0.2.1}/PKG-INFO +25 -7
- {flask_exts-0.1.9 → flask_exts-0.2.1}/README.rst +17 -2
- {flask_exts-0.1.9 → flask_exts-0.2.1}/babel/babel.cfg +1 -0
- flask_exts-0.2.1/babel/babel.sh +9 -0
- flask_exts-0.2.1/babel/messages.pot +567 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/docs/conf.py +2 -2
- flask_exts-0.1.9/docs/usage.rst → flask_exts-0.2.1/docs/configure.rst +8 -36
- flask_exts-0.1.9/docs/translation.rst → flask_exts-0.2.1/docs/develop.rst +53 -12
- {flask_exts-0.1.9 → flask_exts-0.2.1}/docs/index.rst +22 -5
- {flask_exts-0.1.9 → flask_exts-0.2.1}/examples/README.rst +21 -8
- {flask_exts-0.1.9 → flask_exts-0.2.1}/examples/bootstrap4/app.py +2 -1
- {flask_exts-0.1.9 → flask_exts-0.2.1}/examples/bootstrap4/templates/icon.html +9 -3
- {flask_exts-0.1.9/examples/bootstrap5 → flask_exts-0.2.1/examples/bootstrap4}/templates/icons.html +2050 -2050
- {flask_exts-0.1.9/examples/bootstrap5 → flask_exts-0.2.1/examples/bootstrap4}/templates/pagination.html +1 -1
- {flask_exts-0.1.9 → flask_exts-0.2.1}/examples/bootstrap5/app.py +4 -4
- {flask_exts-0.1.9 → flask_exts-0.2.1}/examples/bootstrap5/templates/icon.html +1 -1
- {flask_exts-0.1.9/examples/bootstrap4 → flask_exts-0.2.1/examples/bootstrap5}/templates/icons.html +1 -1
- {flask_exts-0.1.9/examples/bootstrap4 → flask_exts-0.2.1/examples/bootstrap5}/templates/pagination.html +1 -1
- flask_exts-0.2.1/examples/demo/admin_views.py +26 -0
- flask_exts-0.2.1/examples/demo/build_sample.py +219 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/examples/demo/make_app.py +15 -18
- flask_exts-0.2.1/examples/demo/models/__init__.py +24 -0
- flask_exts-0.2.1/examples/demo/models/author.py +73 -0
- flask_exts-0.2.1/examples/demo/models/keyword.py +15 -0
- flask_exts-0.2.1/examples/demo/models/post.py +26 -0
- flask_exts-0.2.1/examples/demo/models/post_tag.py +11 -0
- flask_exts-0.2.1/examples/demo/models/tag.py +11 -0
- flask_exts-0.2.1/examples/demo/models/tree.py +18 -0
- flask_exts-0.2.1/examples/demo/models/user.py +38 -0
- flask_exts-0.2.1/examples/demo/models/user_keyword.py +26 -0
- flask_exts-0.2.1/examples/demo/templates/admin/index.html +4 -0
- flask_exts-0.2.1/examples/demo/templates/my/index.html +7 -0
- flask_exts-0.2.1/examples/demo/templates/tree_list.html +14 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/examples/demo/user_center.py +1 -1
- flask_exts-0.2.1/examples/demo/views/author_view.py +136 -0
- flask_exts-0.2.1/examples/demo/views/keyword_view.py +10 -0
- flask_exts-0.1.9/examples/demo/views/index_view.py → flask_exts-0.2.1/examples/demo/views/my_view.py +2 -2
- flask_exts-0.2.1/examples/demo/views/post_view.py +87 -0
- flask_exts-0.2.1/examples/demo/views/tag_view.py +5 -0
- flask_exts-0.2.1/examples/demo/views/tree_view.py +20 -0
- flask_exts-0.2.1/examples/demo/views/user_view.py +14 -0
- flask_exts-0.2.1/examples/fileadmin/file_view.py +12 -0
- {flask_exts-0.1.9/examples/admin → flask_exts-0.2.1/examples}/fileadmin/make_app.py +4 -2
- flask_exts-0.2.1/examples/multiple_admins/app.py +34 -0
- flask_exts-0.2.1/examples/multiple_admins/templates/admin/index.html +7 -0
- flask_exts-0.2.1/examples/multiple_admins/templates/first.html +4 -0
- flask_exts-0.2.1/examples/multiple_admins/templates/second.html +4 -0
- flask_exts-0.2.1/examples/rediscli.py +17 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/examples/simple.py +0 -4
- flask_exts-0.2.1/examples/sqla-custom-inline-forms/__init__.py +1 -0
- flask_exts-0.2.1/examples/sqla-custom-inline-forms/data.py +23 -0
- flask_exts-0.2.1/examples/sqla-custom-inline-forms/make_app.py +83 -0
- {flask_exts-0.1.9/examples/demo → flask_exts-0.2.1/examples/sqla-custom-inline-forms}/models/__init__.py +1 -3
- flask_exts-0.2.1/examples/sqla-custom-inline-forms/models/model.py +42 -0
- flask_exts-0.2.1/examples/sqla-custom-inline-forms/templates/admin/admin.html +5 -0
- flask_exts-0.2.1/examples/sqla-custom-inline-forms/templates/field_list.html +13 -0
- flask_exts-0.2.1/examples/sqla-custom-inline-forms/templates/locations.html +14 -0
- flask_exts-0.2.1/examples/sqla-custom-inline-forms/views/image_view.py +78 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/pyproject.toml +5 -2
- flask_exts-0.2.1/src/flask_exts/__about__.py +1 -0
- flask_exts-0.2.1/src/flask_exts/_types.py +8 -0
- flask_exts-0.2.1/src/flask_exts/admin/__init__.py +3 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/src/flask_exts/admin/actions.py +0 -3
- {flask_exts-0.1.9 → flask_exts-0.2.1}/src/flask_exts/admin/admin.py +2 -11
- flask_exts-0.2.1/src/flask_exts/admin/model/__init__.py +2 -0
- flask_exts-0.2.1/src/flask_exts/admin/model/ajax.py +46 -0
- flask_exts-0.2.1/src/flask_exts/admin/model/filters.py +337 -0
- flask_exts-0.2.1/src/flask_exts/admin/model/form.py +251 -0
- flask_exts-0.2.1/src/flask_exts/admin/model/typefmt.py +92 -0
- flask_exts-0.2.1/src/flask_exts/admin/model/view.py +2512 -0
- flask_exts-0.2.1/src/flask_exts/admin/row_action.py +67 -0
- flask_exts-0.2.1/src/flask_exts/admin/sqla/__init__.py +1 -0
- flask_exts-0.2.1/src/flask_exts/admin/sqla/ajax.py +104 -0
- flask_exts-0.2.1/src/flask_exts/admin/sqla/filters.py +625 -0
- flask_exts-0.2.1/src/flask_exts/admin/sqla/form.py +913 -0
- flask_exts-0.2.1/src/flask_exts/admin/sqla/typefmt.py +29 -0
- flask_exts-0.2.1/src/flask_exts/admin/sqla/view.py +1262 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/src/flask_exts/admin/view.py +26 -12
- flask_exts-0.2.1/src/flask_exts/forms/__init__.py +3 -0
- flask_exts-0.2.1/src/flask_exts/forms/fields/__init__.py +5 -0
- flask_exts-0.2.1/src/flask_exts/forms/fields/ajax_select.py +109 -0
- flask_exts-0.2.1/src/flask_exts/forms/fields/datetime.py +100 -0
- flask_exts-0.2.1/src/flask_exts/forms/fields/inline.py +123 -0
- flask_exts-0.2.1/src/flask_exts/forms/fields/json.py +19 -0
- flask_exts-0.2.1/src/flask_exts/forms/fields/select.py +123 -0
- flask_exts-0.2.1/src/flask_exts/forms/fields/sqla.py +407 -0
- flask_exts-0.2.1/src/flask_exts/forms/fields/switch.py +10 -0
- flask_exts-0.2.1/src/flask_exts/forms/fields/taglist.py +9 -0
- flask_exts-0.2.1/src/flask_exts/forms/form/__init__.py +2 -0
- flask_exts-0.2.1/src/flask_exts/forms/form/base_form.py +16 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/src/flask_exts/forms/form/csrf.py +5 -7
- {flask_exts-0.1.9 → flask_exts-0.2.1}/src/flask_exts/forms/form/flask_form.py +1 -11
- {flask_exts-0.1.9 → flask_exts-0.2.1}/src/flask_exts/forms/form/meta.py +10 -6
- flask_exts-0.2.1/src/flask_exts/forms/form/session_csrf.py +31 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/src/flask_exts/forms/rules.py +121 -280
- flask_exts-0.2.1/src/flask_exts/forms/utils.py +57 -0
- flask_exts-0.2.1/src/flask_exts/forms/validators/sqla.py +84 -0
- flask_exts-0.2.1/src/flask_exts/forms/widgets/__init__.py +3 -0
- flask_exts-0.2.1/src/flask_exts/forms/widgets/checkbox.py +32 -0
- flask_exts-0.2.1/src/flask_exts/forms/widgets/datetime.py +30 -0
- flask_exts-0.2.1/src/flask_exts/forms/widgets/inline.py +15 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/src/flask_exts/forms/widgets/recaptcha.py +1 -5
- flask_exts-0.2.1/src/flask_exts/forms/widgets/render_template.py +25 -0
- flask_exts-0.2.1/src/flask_exts/forms/widgets/select.py +81 -0
- flask_exts-0.2.1/src/flask_exts/forms/widgets/xeditable.py +122 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/src/flask_exts/manager.py +12 -2
- {flask_exts-0.1.9/src/flask_exts/static/admin → flask_exts-0.2.1/src/flask_exts/static}/js/form.js +18 -20
- flask_exts-0.2.1/src/flask_exts/static/vendor/bootstrap-icons/font/bootstrap-icons.css +2078 -0
- flask_exts-0.2.1/src/flask_exts/static/vendor/bootstrap-icons/font/bootstrap-icons.json +2052 -0
- flask_exts-0.2.1/src/flask_exts/static/vendor/bootstrap-icons/font/bootstrap-icons.min.css +5 -0
- flask_exts-0.2.1/src/flask_exts/static/vendor/bootstrap-icons/font/bootstrap-icons.scss +2090 -0
- flask_exts-0.2.1/src/flask_exts/static/vendor/bootstrap-icons/font/fonts/bootstrap-icons.woff +0 -0
- flask_exts-0.2.1/src/flask_exts/static/vendor/bootstrap-icons/font/fonts/bootstrap-icons.woff2 +0 -0
- flask_exts-0.2.1/src/flask_exts/static/vendor/daterangepicker/daterangepicker.css +410 -0
- flask_exts-0.2.1/src/flask_exts/static/vendor/daterangepicker/daterangepicker.js +1578 -0
- flask_exts-0.2.1/src/flask_exts/static/vendor/moment.min.js +1 -0
- flask_exts-0.2.1/src/flask_exts/static/vendor/select2/select2.min.css +1 -0
- flask_exts-0.2.1/src/flask_exts/static/vendor/select2/select2.min.js +2 -0
- flask_exts-0.2.1/src/flask_exts/static/vendor/x-editable/css/bootstrap-editable.css +674 -0
- flask_exts-0.2.1/src/flask_exts/static/vendor/x-editable/img/clear.png +0 -0
- flask_exts-0.2.1/src/flask_exts/static/vendor/x-editable/img/loading.gif +0 -0
- flask_exts-0.2.1/src/flask_exts/static/vendor/x-editable/js/bootstrap-editable.min.js +2 -0
- flask_exts-0.2.1/src/flask_exts/template/__init__.py +37 -0
- flask_exts-0.2.1/src/flask_exts/template/theme.py +62 -0
- flask_exts-0.2.1/src/flask_exts/template/utils.py +51 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/src/flask_exts/templates/admin/base.html +10 -11
- flask_exts-0.2.1/src/flask_exts/templates/admin/master.html +1 -0
- flask_exts-0.2.1/src/flask_exts/templates/admin/model/create.html +31 -0
- flask_exts-0.2.1/src/flask_exts/templates/admin/model/details.html +51 -0
- flask_exts-0.2.1/src/flask_exts/templates/admin/model/edit.html +41 -0
- flask_exts-0.2.1/src/flask_exts/templates/admin/model/list.html +199 -0
- flask_exts-0.2.1/src/flask_exts/templates/admin/model/modals/create.html +15 -0
- flask_exts-0.2.1/src/flask_exts/templates/admin/model/modals/details.html +37 -0
- flask_exts-0.2.1/src/flask_exts/templates/admin/model/modals/edit.html +19 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/src/flask_exts/templates/bootstrap4/form.html +2 -2
- {flask_exts-0.1.9/src/flask_exts/templates/macro → flask_exts-0.2.1/src/flask_exts/templates/bootstrap4}/pagination.html +1 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/src/flask_exts/templates/bootstrap5/form.html +4 -4
- {flask_exts-0.1.9 → flask_exts-0.2.1}/src/flask_exts/templates/layout.html +4 -5
- {flask_exts-0.1.9/src/flask_exts/templates/admin → flask_exts-0.2.1/src/flask_exts/templates/macro}/actions.html +20 -21
- flask_exts-0.2.1/src/flask_exts/templates/macro/form.html +168 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/src/flask_exts/templates/macro/icon.html +11 -1
- flask_exts-0.2.1/src/flask_exts/templates/macro/inline.html +45 -0
- flask_exts-0.2.1/src/flask_exts/templates/macro/layout.html +109 -0
- flask_exts-0.1.9/src/flask_exts/templates/admin/layout.html → flask_exts-0.2.1/src/flask_exts/templates/macro/menu.html +2 -22
- flask_exts-0.2.1/src/flask_exts/templates/macro/message.html +17 -0
- flask_exts-0.2.1/src/flask_exts/templates/macro/pagination.html +95 -0
- flask_exts-0.2.1/src/flask_exts/templates/macro/row_actions.html +40 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/src/flask_exts/templates/macro/table.html +5 -4
- flask_exts-0.2.1/src/flask_exts/templates/macro/vendor.html +20 -0
- {flask_exts-0.1.9/src/flask_exts/templates/admin → flask_exts-0.2.1/src/flask_exts/templates/views}/file/form.html +2 -2
- {flask_exts-0.1.9/src/flask_exts/templates/admin → flask_exts-0.2.1/src/flask_exts/templates/views}/file/list.html +15 -20
- {flask_exts-0.1.9/src/flask_exts/templates/admin → flask_exts-0.2.1/src/flask_exts/templates/views}/file/modals/form.html +4 -8
- flask_exts-0.2.1/src/flask_exts/templates/views/rediscli/console.html +27 -0
- flask_exts-0.2.1/src/flask_exts/templates/views/rediscli/response.html +32 -0
- flask_exts-0.2.1/src/flask_exts/templates/views/user/login.html +13 -0
- flask_exts-0.2.1/src/flask_exts/templates/views/user/register.html +14 -0
- flask_exts-0.2.1/src/flask_exts/templates/widgets/inline_field_list.html +4 -0
- flask_exts-0.2.1/src/flask_exts/templates/widgets/inline_form.html +5 -0
- flask_exts-0.2.1/src/flask_exts/translations/en/LC_MESSAGES/messages.mo +0 -0
- flask_exts-0.2.1/src/flask_exts/translations/en/LC_MESSAGES/messages.po +577 -0
- flask_exts-0.2.1/src/flask_exts/translations/zh_CN/LC_MESSAGES/messages.mo +0 -0
- flask_exts-0.2.1/src/flask_exts/translations/zh_CN/LC_MESSAGES/messages.po +564 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/src/flask_exts/users/__init__.py +2 -2
- flask_exts-0.1.9/src/flask_exts/users/user_center.py → flask_exts-0.2.1/src/flask_exts/users/default_usercenter.py +3 -21
- {flask_exts-0.1.9 → flask_exts-0.2.1}/src/flask_exts/users/forms/login.py +1 -1
- flask_exts-0.2.1/src/flask_exts/users/forms/mixins.py +28 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/src/flask_exts/users/forms/profile.py +0 -2
- {flask_exts-0.1.9 → flask_exts-0.2.1}/src/flask_exts/users/forms/register.py +1 -1
- flask_exts-0.2.1/src/flask_exts/users/usercenter.py +19 -0
- flask_exts-0.2.1/src/flask_exts/utils/__init__.py +7 -0
- flask_exts-0.1.9/src/flask_exts/utils/url.py → flask_exts-0.2.1/src/flask_exts/utils/flask.py +13 -8
- flask_exts-0.2.1/src/flask_exts/utils/sqla.py +225 -0
- flask_exts-0.2.1/src/flask_exts/utils/tools.py +193 -0
- flask_exts-0.2.1/src/flask_exts/views/file_view/__init__.py +1 -0
- flask_exts-0.1.9/src/flask_exts/admin/file_admin/base_file_admin.py → flask_exts-0.2.1/src/flask_exts/views/file_view/base_file_view.py +18 -18
- flask_exts-0.1.9/src/flask_exts/admin/file_admin/local_file_admin.py → flask_exts-0.2.1/src/flask_exts/views/file_view/local_file_view.py +2 -2
- {flask_exts-0.1.9/src/flask_exts/admin → flask_exts-0.2.1/src/flask_exts}/views/index_view.py +2 -2
- flask_exts-0.2.1/src/flask_exts/views/rediscli_view.py +191 -0
- {flask_exts-0.1.9/src/flask_exts/admin → flask_exts-0.2.1/src/flask_exts}/views/user_view.py +12 -12
- flask_exts-0.2.1/tests/admin/sqla/conftest.py +20 -0
- flask_exts-0.2.1/tests/admin/sqla/templates/another_macro.html +3 -0
- flask_exts-0.2.1/tests/admin/sqla/templates/macro.html +12 -0
- flask_exts-0.2.1/tests/admin/sqla/test_basic.py +2866 -0
- flask_exts-0.2.1/tests/admin/sqla/test_form_rules.py +96 -0
- flask_exts-0.2.1/tests/admin/sqla/test_inlineform.py +289 -0
- flask_exts-0.2.1/tests/admin/sqla/test_multi_pk.py +173 -0
- flask_exts-0.2.1/tests/admin/sqla/test_translation.py +65 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/tests/admin/test_base.py +71 -155
- flask_exts-0.2.1/tests/admin/test_model.py +756 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/tests/conftest.py +10 -2
- flask_exts-0.2.1/tests/forms/test_fields.py +76 -0
- flask_exts-0.2.1/tests/forms/test_form.py +37 -0
- flask_exts-0.1.9/tests/forms/test_upload_file.py → flask_exts-0.2.1/tests/forms/test_uploadfile.py +24 -17
- {flask_exts-0.1.9 → flask_exts-0.2.1}/tests/funcs.py +1 -1
- {flask_exts-0.1.9/tests/templating → flask_exts-0.2.1/tests/template}/bootstrap4/test_render_form.py +1 -1
- flask_exts-0.1.9/tests/templating/bootstrap4/test_render_icon.py → flask_exts-0.2.1/tests/template/bootstrap4/test_render_icon_sprite.py +12 -12
- {flask_exts-0.1.9/tests/templating → flask_exts-0.2.1/tests/template}/bootstrap4/test_render_pager.py +1 -1
- {flask_exts-0.1.9/tests/templating → flask_exts-0.2.1/tests/template}/bootstrap4/test_render_pagination.py +1 -1
- {flask_exts-0.1.9/tests/templating → flask_exts-0.2.1/tests/template}/bootstrap5/conftest.py +2 -3
- {flask_exts-0.1.9/tests/templating → flask_exts-0.2.1/tests/template}/bootstrap5/test_base.py +1 -2
- {flask_exts-0.1.9/tests/templating → flask_exts-0.2.1/tests/template}/bootstrap5/test_render_form.py +4 -4
- flask_exts-0.1.9/tests/templating/bootstrap5/test_pagination.py → flask_exts-0.2.1/tests/template/bootstrap5/test_render_pagination.py +1 -1
- {flask_exts-0.1.9/tests/templating/element → flask_exts-0.2.1/tests/template/macros}/test_render_nav_item.py +0 -1
- {flask_exts-0.1.9/tests/templating → flask_exts-0.2.1/tests/template}/test_base.py +2 -3
- {flask_exts-0.1.9 → flask_exts-0.2.1}/tests/test_babel.py +23 -17
- {flask_exts-0.1.9 → flask_exts-0.2.1}/tests/test_base.py +4 -2
- {flask_exts-0.1.9 → flask_exts-0.2.1}/tests/utils/test_url.py +1 -1
- flask_exts-0.2.1/tests/views/test_file_view.py +221 -0
- flask_exts-0.2.1/tests/views/test_rediscli_view.py +12 -0
- {flask_exts-0.1.9/tests/admin → flask_exts-0.2.1/tests/views}/test_user_view.py +1 -7
- flask_exts-0.1.9/babel/babel.sh +0 -9
- flask_exts-0.1.9/babel/crowdin_pull.sh +0 -30
- flask_exts-0.1.9/babel/crowdin_push.sh +0 -3
- flask_exts-0.1.9/babel/messages.pot +0 -69
- flask_exts-0.1.9/docs/api.rst +0 -4
- flask_exts-0.1.9/docs/develop.rst +0 -46
- flask_exts-0.1.9/docs/fields.rst +0 -36
- flask_exts-0.1.9/docs/forms.rst +0 -9
- flask_exts-0.1.9/docs/templating.rst +0 -29
- flask_exts-0.1.9/examples/admin/fileadmin/admin_app.py +0 -17
- flask_exts-0.1.9/examples/demo/models/user.py +0 -16
- flask_exts-0.1.9/examples/demo/templates/index.html +0 -6
- flask_exts-0.1.9/requirements/develop.in +0 -1
- flask_exts-0.1.9/src/flask_exts/__about__.py +0 -1
- flask_exts-0.1.9/src/flask_exts/admin/__init__.py +0 -4
- flask_exts-0.1.9/src/flask_exts/admin/file_admin/__init__.py +0 -1
- flask_exts-0.1.9/src/flask_exts/admin/wraps.py +0 -37
- flask_exts-0.1.9/src/flask_exts/forms/__init__.py +0 -1
- flask_exts-0.1.9/src/flask_exts/forms/fields/__init__.py +0 -1
- flask_exts-0.1.9/src/flask_exts/forms/form/__init__.py +0 -2
- flask_exts-0.1.9/src/flask_exts/forms/form/base_form.py +0 -5
- flask_exts-0.1.9/src/flask_exts/forms/form/secure_form.py +0 -33
- flask_exts-0.1.9/src/flask_exts/static/admin/css/submenu.css +0 -18
- flask_exts-0.1.9/src/flask_exts/static/admin/js/bs4_filters.js +0 -202
- flask_exts-0.1.9/src/flask_exts/templates/admin/lib.html +0 -276
- flask_exts-0.1.9/src/flask_exts/templates/admin/master.html +0 -1
- flask_exts-0.1.9/src/flask_exts/templates/admin/user/login.html +0 -19
- flask_exts-0.1.9/src/flask_exts/templates/admin/user/register.html +0 -20
- flask_exts-0.1.9/src/flask_exts/templates/demo.html +0 -7
- flask_exts-0.1.9/src/flask_exts/templates/macro/form.html +0 -26
- flask_exts-0.1.9/src/flask_exts/templates/macro/static.html +0 -12
- flask_exts-0.1.9/src/flask_exts/templating/__init__.py +0 -43
- flask_exts-0.1.9/src/flask_exts/templating/theme.py +0 -137
- flask_exts-0.1.9/src/flask_exts/translations/en/LC_MESSAGES/messages.mo +0 -0
- flask_exts-0.1.9/src/flask_exts/translations/en/LC_MESSAGES/messages.po +0 -70
- flask_exts-0.1.9/src/flask_exts/translations/zh_CN/LC_MESSAGES/messages.mo +0 -0
- flask_exts-0.1.9/src/flask_exts/translations/zh_CN/LC_MESSAGES/messages.po +0 -66
- flask_exts-0.1.9/src/flask_exts/utils/__init__.py +0 -6
- flask_exts-0.1.9/src/flask_exts/utils/csrf.py +0 -130
- flask_exts-0.1.9/src/flask_exts/utils/form.py +0 -81
- flask_exts-0.1.9/src/flask_exts/utils/g.py +0 -16
- flask_exts-0.1.9/tests/admin/fileadmin/test_fileadmin.py +0 -238
- flask_exts-0.1.9/tests/forms/test_field_list.py +0 -41
- flask_exts-0.1.9/tests/forms/test_form.py +0 -59
- flask_exts-0.1.9/tests/templating/bootstrap5/__init__.py +0 -0
- flask_exts-0.1.9/tests/translations/messages.pot +0 -23
- flask_exts-0.1.9/tests/translations/zh_CN/LC_MESSAGES/messages.mo +0 -0
- flask_exts-0.1.9/tests/utils/test_csrf.py +0 -17
- {flask_exts-0.1.9 → flask_exts-0.2.1}/.github/workflows/release.yml +0 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/.readthedocs.yaml +0 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/docs/Makefile +0 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/docs/_static/logo.png +0 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/docs/changes.rst +0 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/docs/examples.rst +0 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/docs/make.bat +0 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/docs/requirements.txt +0 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/examples/bootstrap4/static/favicon.ico +0 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/examples/bootstrap4/templates/bootswatch.html +0 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/examples/bootstrap4/templates/flash.html +0 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/examples/bootstrap4/templates/form.html +0 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/examples/bootstrap4/templates/index.html +0 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/examples/bootstrap4/templates/mybase.html +0 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/examples/bootstrap4/templates/nav.html +0 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/examples/bootstrap4/templates/table.html +0 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/examples/bootstrap5/static/favicon.ico +0 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/examples/bootstrap5/templates/bootswatch.html +0 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/examples/bootstrap5/templates/flash.html +0 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/examples/bootstrap5/templates/form.html +0 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/examples/bootstrap5/templates/index.html +0 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/examples/bootstrap5/templates/mybase.html +0 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/examples/bootstrap5/templates/nav.html +0 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/examples/bootstrap5/templates/table.html +0 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/examples/demo/__init__.py +0 -0
- {flask_exts-0.1.9/examples/admin → flask_exts-0.2.1/examples}/fileadmin/__init__.py +0 -0
- {flask_exts-0.1.9/examples/admin → flask_exts-0.2.1/examples}/fileadmin/tmp/bbb/a.txt +0 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/requirements/build.in +0 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/requirements/test.in +0 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/src/flask_exts/__init__.py +0 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/src/flask_exts/admin/menu.py +0 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/src/flask_exts/babel/__init__.py +0 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/src/flask_exts/babel/selector.py +0 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/src/flask_exts/forms/fields/file.py +0 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/src/flask_exts/forms/fields/recaptcha.py +0 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/src/flask_exts/forms/validators/__init__.py +0 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/src/flask_exts/forms/validators/field_list.py +0 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/src/flask_exts/forms/validators/file.py +0 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/src/flask_exts/forms/validators/recaptcha.py +0 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/src/flask_exts/forms/widgets/file.py +0 -0
- {flask_exts-0.1.9/src/flask_exts/static/admin → flask_exts-0.2.1/src/flask_exts/static}/css/admin.css +0 -0
- {flask_exts-0.1.9/src/flask_exts/static/admin → flask_exts-0.2.1/src/flask_exts/static}/css/rediscli.css +0 -0
- {flask_exts-0.1.9/src/flask_exts/static/admin → flask_exts-0.2.1/src/flask_exts/static}/js/actions.js +0 -0
- {flask_exts-0.1.9/src/flask_exts/static/admin → flask_exts-0.2.1/src/flask_exts/static}/js/details_filter.js +0 -0
- {flask_exts-0.1.9/src/flask_exts/static/admin → flask_exts-0.2.1/src/flask_exts/static}/js/filters.js +0 -0
- {flask_exts-0.1.9/src/flask_exts/static/admin → flask_exts-0.2.1/src/flask_exts/static}/js/helpers.js +0 -0
- {flask_exts-0.1.9/src/flask_exts/static/admin → flask_exts-0.2.1/src/flask_exts/static}/js/modal.js +0 -0
- {flask_exts-0.1.9/src/flask_exts/static/admin → flask_exts-0.2.1/src/flask_exts/static}/js/rediscli.js +0 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/src/flask_exts/static/logo.png +0 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/src/flask_exts/static/vendor/bootstrap-icons/bootstrap-icons.svg +0 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/src/flask_exts/static/vendor/bootstrap4/bootstrap.bundle.min.js +0 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/src/flask_exts/static/vendor/bootstrap4/bootstrap.min.css +0 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/src/flask_exts/static/vendor/bootstrap5/bootstrap.bundle.min.js +0 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/src/flask_exts/static/vendor/bootstrap5/bootstrap.min.css +0 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/src/flask_exts/static/vendor/jquery/jquery.min.js +0 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/src/flask_exts/templates/admin/admin.html +0 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/src/flask_exts/templates/admin/index.html +0 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/src/flask_exts/templates/base.html +0 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/src/flask_exts/templates/bootstrap4/message.html +0 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/src/flask_exts/templates/bootstrap5/message.html +0 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/src/flask_exts/templates/macro/nav.html +0 -0
- {flask_exts-0.1.9/src/flask_exts/templates/admin → flask_exts-0.2.1/src/flask_exts/templates/views}/user/index.html +0 -0
- {flask_exts-0.1.9/src/flask_exts/templates/admin → flask_exts-0.2.1/src/flask_exts/templates/views}/user/list.html +0 -0
- {flask_exts-0.1.9/src/flask_exts/forms/widgets → flask_exts-0.2.1/src/flask_exts/translations}/__init__.py +0 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/src/flask_exts/users/forms/__init__.py +0 -0
- /flask_exts-0.1.9/src/flask_exts/plugins/__init__.py → /flask_exts-0.2.1/src/flask_exts/utils/url.py +0 -0
- {flask_exts-0.1.9/src/flask_exts/admin/file_admin → flask_exts-0.2.1/src/flask_exts/views/file_view}/local_file_storage.py +0 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/tests/__init__.py +0 -0
- {flask_exts-0.1.9/src/flask_exts/translations → flask_exts-0.2.1/tests/admin}/__init__.py +0 -0
- {flask_exts-0.1.9/tests/admin → flask_exts-0.2.1/tests/admin/sqla}/__init__.py +0 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/tests/data/copyleft.gif +0 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/tests/data/copyleft.jpeg +0 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/tests/data/copyleft.jpg +0 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/tests/data/copyleft.png +0 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/tests/data/copyleft.tiff +0 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/tests/forms/test_filefield.py +0 -0
- {flask_exts-0.1.9/tests/admin/fileadmin → flask_exts-0.2.1/tests/template}/__init__.py +0 -0
- {flask_exts-0.1.9/tests/templating → flask_exts-0.2.1/tests/template/bootstrap4}/__init__.py +0 -0
- {flask_exts-0.1.9/tests/templating → flask_exts-0.2.1/tests/template}/bootstrap4/conftest.py +0 -0
- {flask_exts-0.1.9/tests/templating → flask_exts-0.2.1/tests/template}/bootstrap4/test_render_field.py +0 -0
- {flask_exts-0.1.9/tests/templating → flask_exts-0.2.1/tests/template}/bootstrap4/test_render_form_row.py +0 -0
- {flask_exts-0.1.9/tests/templating → flask_exts-0.2.1/tests/template}/bootstrap4/test_render_hidden_errors.py +0 -0
- {flask_exts-0.1.9/tests/templating → flask_exts-0.2.1/tests/template}/bootstrap4/test_render_messages.py +0 -0
- {flask_exts-0.1.9/tests/templating → flask_exts-0.2.1/tests/template}/bootstrap4/test_render_table.py +0 -0
- {flask_exts-0.1.9/tests/templating/bootstrap4 → flask_exts-0.2.1/tests/template/bootstrap5}/__init__.py +0 -0
- {flask_exts-0.1.9/tests/templating → flask_exts-0.2.1/tests/template}/bootstrap5/test_render_form_row.py +0 -0
- {flask_exts-0.1.9/tests/templating → flask_exts-0.2.1/tests/template}/bootstrap5/test_render_messages.py +0 -0
- {flask_exts-0.1.9/tests/templating → flask_exts-0.2.1/tests/template}/conftest.py +0 -0
- {flask_exts-0.1.9/tests/templating/element → flask_exts-0.2.1/tests/template/macros}/test_render_breadcrumb_item.py +0 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/tests/templates/method.html +0 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/tests/templates/mock.html +0 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/tests/translations/en/LC_MESSAGES/messages.mo +0 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/tests/translations/en/LC_MESSAGES/messages.po +0 -0
- {flask_exts-0.1.9 → flask_exts-0.2.1}/tests/translations/zh_CN/LC_MESSAGES/messages.po +0 -0
- {flask_exts-0.1.9/tests/admin/fileadmin → flask_exts-0.2.1/tests/views}/files/dummy.txt +0 -0
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
v0.2.1
|
|
2
|
+
------
|
|
3
|
+
|
|
4
|
+
Released 2025-02-15
|
|
5
|
+
|
|
6
|
+
- add admin.sqla
|
|
7
|
+
|
|
8
|
+
v0.2.0
|
|
9
|
+
------
|
|
10
|
+
|
|
11
|
+
Released 2025-01-07
|
|
12
|
+
|
|
13
|
+
- update templates.macros
|
|
14
|
+
|
|
1
15
|
v0.1.9
|
|
2
16
|
------
|
|
3
17
|
|
|
@@ -17,7 +31,7 @@ v0.1.7
|
|
|
17
31
|
|
|
18
32
|
Released 2024-10-13
|
|
19
33
|
|
|
20
|
-
- add theme for
|
|
34
|
+
- add theme for template
|
|
21
35
|
- admin view framework
|
|
22
36
|
|
|
23
37
|
v0.1.6
|
|
@@ -28,7 +42,6 @@ Released 2024-09-14
|
|
|
28
42
|
- merge translations of wtforms, flask_exts and app into flask_babel.get_translations()
|
|
29
43
|
- update FileField and ImageField
|
|
30
44
|
- add url for template.static
|
|
31
|
-
- use namespace ns.bootstrap to control bootstrap's css and js
|
|
32
45
|
|
|
33
46
|
v0.1.5
|
|
34
47
|
------
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
MIT License
|
|
2
2
|
|
|
3
|
-
Copyright (c) 2024-present
|
|
3
|
+
Copyright (c) 2024-present David Hua <david.dong.hua@gmail.com>
|
|
4
4
|
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
6
|
of this software and associated documentation files (the "Software"), to deal
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: Flask-Exts
|
|
3
|
-
Version: 0.1
|
|
3
|
+
Version: 0.2.1
|
|
4
4
|
Summary: Flask extensions with admin, SQLAlchemy, babel, forms, fields, widgets, and so on.
|
|
5
5
|
Project-URL: Documentation, https://flask-exts.readthedocs.io
|
|
6
6
|
Project-URL: Source, https://github.com/ojso/flask-exts
|
|
7
7
|
Project-URL: Homepage, https://github.com/ojso/flask-exts
|
|
8
8
|
Project-URL: Issues, https://github.com/ojso/flask-exts/issues
|
|
9
|
-
Author-email:
|
|
9
|
+
Author-email: David Hua <david.dong.hua@gmail.com>
|
|
10
10
|
License: MIT License
|
|
11
11
|
|
|
12
|
-
Copyright (c) 2024-present
|
|
12
|
+
Copyright (c) 2024-present David Hua <david.dong.hua@gmail.com>
|
|
13
13
|
|
|
14
14
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
15
15
|
of this software and associated documentation files (the "Software"), to deal
|
|
@@ -28,6 +28,7 @@ License: MIT License
|
|
|
28
28
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
29
29
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
30
30
|
SOFTWARE.
|
|
31
|
+
License-File: LICENSE.rst
|
|
31
32
|
Keywords: admin,babel,flask,form,sql,widget
|
|
32
33
|
Classifier: Development Status :: 3 - Alpha
|
|
33
34
|
Classifier: Environment :: Web Environment
|
|
@@ -44,8 +45,10 @@ Requires-Dist: flask-babel>=4.0
|
|
|
44
45
|
Requires-Dist: flask-login>=0.6
|
|
45
46
|
Requires-Dist: flask-sqlalchemy>=3.0
|
|
46
47
|
Requires-Dist: flask>=3.0
|
|
47
|
-
Requires-Dist:
|
|
48
|
+
Requires-Dist: tablib>=3.0
|
|
48
49
|
Requires-Dist: wtforms>=3.0
|
|
50
|
+
Provides-Extra: rediscli
|
|
51
|
+
Requires-Dist: redis>=4.0.0; extra == 'rediscli'
|
|
49
52
|
Description-Content-Type: text/x-rst
|
|
50
53
|
|
|
51
54
|
Flask Exts
|
|
@@ -54,8 +57,6 @@ Flask Exts
|
|
|
54
57
|
Flask-Exts is mainly inspired by:
|
|
55
58
|
|
|
56
59
|
- `WTForms <https://github.com/wtforms/wtforms/>`_
|
|
57
|
-
- `Flask-WTF <https://github.com/wtforms/flask-wtf/>`_
|
|
58
|
-
- `Bootstrap-Flask <https://github.com/helloflask/bootstrap-flask>`_
|
|
59
60
|
- `Flask-Admin <https://github.com/flask-admin/flask-admin/>`_
|
|
60
61
|
|
|
61
62
|
Flask-Exts is part rewrited from above and well tested.
|
|
@@ -75,3 +76,20 @@ Install and update using pip:
|
|
|
75
76
|
|
|
76
77
|
$ pip install -U Flask-Exts
|
|
77
78
|
|
|
79
|
+
Examples
|
|
80
|
+
----------
|
|
81
|
+
|
|
82
|
+
.. code-block:: python
|
|
83
|
+
|
|
84
|
+
from flask import Flask
|
|
85
|
+
from flask_exts import Manager
|
|
86
|
+
|
|
87
|
+
app = Flask(__name__)
|
|
88
|
+
app.config["SECRET_KEY"] = "dev"
|
|
89
|
+
# Manager init
|
|
90
|
+
manager = Manager()
|
|
91
|
+
manager.init_app(app)
|
|
92
|
+
|
|
93
|
+
if __name__ == "__main__":
|
|
94
|
+
app.run(debug=True)
|
|
95
|
+
|
|
@@ -4,8 +4,6 @@ Flask Exts
|
|
|
4
4
|
Flask-Exts is mainly inspired by:
|
|
5
5
|
|
|
6
6
|
- `WTForms <https://github.com/wtforms/wtforms/>`_
|
|
7
|
-
- `Flask-WTF <https://github.com/wtforms/flask-wtf/>`_
|
|
8
|
-
- `Bootstrap-Flask <https://github.com/helloflask/bootstrap-flask>`_
|
|
9
7
|
- `Flask-Admin <https://github.com/flask-admin/flask-admin/>`_
|
|
10
8
|
|
|
11
9
|
Flask-Exts is part rewrited from above and well tested.
|
|
@@ -25,3 +23,20 @@ Install and update using pip:
|
|
|
25
23
|
|
|
26
24
|
$ pip install -U Flask-Exts
|
|
27
25
|
|
|
26
|
+
Examples
|
|
27
|
+
----------
|
|
28
|
+
|
|
29
|
+
.. code-block:: python
|
|
30
|
+
|
|
31
|
+
from flask import Flask
|
|
32
|
+
from flask_exts import Manager
|
|
33
|
+
|
|
34
|
+
app = Flask(__name__)
|
|
35
|
+
app.config["SECRET_KEY"] = "dev"
|
|
36
|
+
# Manager init
|
|
37
|
+
manager = Manager()
|
|
38
|
+
manager.init_app(app)
|
|
39
|
+
|
|
40
|
+
if __name__ == "__main__":
|
|
41
|
+
app.run(debug=True)
|
|
42
|
+
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# extract messages from source files and generate a POT file
|
|
2
|
+
pybabel extract -F babel/babel.cfg -k lazy_gettext -o babel/messages.pot --project Flask-Exts src/flask_exts/ tests/
|
|
3
|
+
|
|
4
|
+
# update PO files from a POT file
|
|
5
|
+
pybabel update -i babel/messages.pot -d src/flask_exts/translations -D messages
|
|
6
|
+
|
|
7
|
+
# compile message catalogs to MO files
|
|
8
|
+
pybabel compile -f -D messages -d src/flask_exts/translations/
|
|
9
|
+
|