simpledomcontrol 0.158.9__tar.gz → 0.160.0__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.
- simpledomcontrol-0.160.0/LICENSE +21 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/PKG-INFO +21 -11
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/README.md +3 -0
- simpledomcontrol-0.160.0/pyproject.toml +70 -0
- simpledomcontrol-0.160.0/sdc/__main__.py +92 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_core/apps.py +1 -1
- simpledomcontrol-0.160.0/sdc_core/consumers.py +1328 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_core/jwt_utils.py +3 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_core/management/commands/init_add/sdc_core_manager.py +2 -1
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_core/management/commands/sdc_cc.py +0 -1
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_core/management/commands/sdc_db_tools.py +27 -24
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_core/management/commands/sdc_get_controller_infos.py +1 -1
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_core/management/commands/sdc_get_model_infos.py +1 -1
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_core/management/commands/sdc_init.py +1 -1
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_core/management/commands/sdc_make_model_js.py +3 -2
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_core/management/commands/sdc_new_model.py +1 -0
- simpledomcontrol-0.160.0/sdc_core/management/commands/sdc_open_api.py +437 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_core/management/commands/sdc_overwrite_lib_file.py +10 -3
- simpledomcontrol-0.160.0/sdc_core/management/commands/sdc_prepare_teaching.py +129 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_core/management/commands/sdc_shell_execute_script.py +2 -1
- simpledomcontrol-0.160.0/sdc_core/management/commands/sdc_teach.py +316 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_core/management/commands/utils/__init__.py +2 -2
- simpledomcontrol-0.160.0/sdc_core/management/commands/utils/teach_apps.py +73 -0
- simpledomcontrol-0.160.0/sdc_core/management/commands/utils/teach_controllers.py +113 -0
- simpledomcontrol-0.160.0/sdc_core/management/commands/utils/teach_crawler.py +629 -0
- simpledomcontrol-0.160.0/sdc_core/management/commands/utils/teach_markdown.py +274 -0
- simpledomcontrol-0.160.0/sdc_core/management/commands/utils/teach_models.py +104 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_core/rest_api.py +80 -68
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_core/sdc_extentions/forms.py +4 -2
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_core/sdc_extentions/models.py +64 -30
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_core/sdc_extentions/search.py +8 -7
- simpledomcontrol-0.160.0/sdc_core/sdc_extentions/test_utils.py +17 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_core/sdc_extentions/views.py +40 -6
- simpledomcontrol-0.160.0/sdc_core/signals.py +46 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_core/template_files/Assets/gulpfile.jsx +7 -0
- simpledomcontrol-0.160.0/sdc_core/template_files/Assets/tests/config/pre-test-setup.js +132 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_core/template_files/Assets/tests/config/test-setup.js +10 -6
- simpledomcontrol-0.160.0/sdc_core/template_files/Assets/webpack.config/webpack.default.config.jsx +63 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_core/template_files/asgi.py.txt +9 -4
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_core/template_files/package.json +1 -1
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_core/template_files/routing.py.txt +1 -0
- simpledomcontrol-0.160.0/sdc_core/template_files/settings_extension.py.txt +182 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_core/template_files/templates/base.html +2 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_tools/Assets/bin/sdc_tools/controller/sdc_alert_messenger/sdc_alert_messenger.js +5 -0
- {simpledomcontrol-0.158.9/sdc_tools/Assets/src → simpledomcontrol-0.160.0/sdc_tools/Assets/bin}/sdc_tools/controller/sdc_detail_view/sdc_detail_view.js +7 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_tools/Assets/bin/sdc_tools/controller/sdc_dummy/sdc_dummy.js +3 -0
- {simpledomcontrol-0.158.9/sdc_tools/Assets/src → simpledomcontrol-0.160.0/sdc_tools/Assets/bin}/sdc_tools/controller/sdc_error/sdc_error.js +7 -0
- {simpledomcontrol-0.158.9/sdc_tools/Assets/src → simpledomcontrol-0.160.0/sdc_tools/Assets/bin}/sdc_tools/controller/sdc_list_view/sdc_list_view.js +9 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_tools/Assets/bin/sdc_tools/controller/sdc_model_form/sdc_model_form.js +11 -0
- {simpledomcontrol-0.158.9/sdc_tools/Assets/src → simpledomcontrol-0.160.0/sdc_tools/Assets/bin}/sdc_tools/controller/sdc_navigator/sdc_navigator.js +10 -0
- {simpledomcontrol-0.158.9/sdc_tools/Assets/src → simpledomcontrol-0.160.0/sdc_tools/Assets/bin}/sdc_tools/controller/sdc_search_select/sdc_search_select.js +5 -0
- {simpledomcontrol-0.158.9/sdc_tools/Assets/src → simpledomcontrol-0.160.0/sdc_tools/Assets/bin}/sdc_tools/controller/sdc_search_view/sdc_search_view.js +5 -0
- simpledomcontrol-0.160.0/sdc_tools/Assets/bin/sdc_tools/sdc_tools.organizer.js +1 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_tools/Assets/bin/sdc_tools/sdc_tools.style.css +219 -0
- simpledomcontrol-0.160.0/sdc_tools/Assets/src/sdc_tools/controller/sdc_ai_assistant/markdown.js +278 -0
- simpledomcontrol-0.160.0/sdc_tools/Assets/src/sdc_tools/controller/sdc_ai_assistant/sdc_ai_assistant.js +855 -0
- simpledomcontrol-0.160.0/sdc_tools/Assets/src/sdc_tools/controller/sdc_ai_assistant/sdc_ai_assistant.scss +229 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_tools/Assets/src/sdc_tools/controller/sdc_alert_messenger/sdc_alert_messenger.js +5 -0
- {simpledomcontrol-0.158.9/sdc_tools/Assets/bin → simpledomcontrol-0.160.0/sdc_tools/Assets/src}/sdc_tools/controller/sdc_detail_view/sdc_detail_view.js +7 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_tools/Assets/src/sdc_tools/controller/sdc_dummy/sdc_dummy.js +3 -0
- {simpledomcontrol-0.158.9/sdc_tools/Assets/bin → simpledomcontrol-0.160.0/sdc_tools/Assets/src}/sdc_tools/controller/sdc_error/sdc_error.js +7 -0
- {simpledomcontrol-0.158.9/sdc_tools/Assets/bin → simpledomcontrol-0.160.0/sdc_tools/Assets/src}/sdc_tools/controller/sdc_list_view/sdc_list_view.js +9 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_tools/Assets/src/sdc_tools/controller/sdc_model_form/sdc_model_form.js +11 -0
- {simpledomcontrol-0.158.9/sdc_tools/Assets/bin → simpledomcontrol-0.160.0/sdc_tools/Assets/src}/sdc_tools/controller/sdc_navigator/sdc_navigator.js +10 -0
- {simpledomcontrol-0.158.9/sdc_tools/Assets/bin → simpledomcontrol-0.160.0/sdc_tools/Assets/src}/sdc_tools/controller/sdc_search_select/sdc_search_select.js +5 -0
- {simpledomcontrol-0.158.9/sdc_tools/Assets/bin → simpledomcontrol-0.160.0/sdc_tools/Assets/src}/sdc_tools/controller/sdc_search_view/sdc_search_view.js +5 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_tools/Assets/src/sdc_tools/sdc_tools.organizer.js +1 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_tools/Assets/src/sdc_tools/sdc_tools.style.scss +1 -0
- simpledomcontrol-0.160.0/sdc_tools/Assets/tests/sdc_tools.test.js +456 -0
- simpledomcontrol-0.160.0/sdc_tools/SDC_SKILL.json +69 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_tools/sdc_urls.py +1 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_tools/sdc_views.py +14 -1
- simpledomcontrol-0.160.0/sdc_tools/templates/sdc_tools/sdc/sdc_ai_assistant.html +70 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_tools/templates/widgets/searchable_select.html +2 -1
- {simpledomcontrol-0.158.9/sdc_user/Assets/src → simpledomcontrol-0.160.0/sdc_user/Assets/bin}/sdc_user/controller/register/register.js +9 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_user/Assets/bin/sdc_user/controller/sdc_change_password/sdc_change_password.js +7 -0
- {simpledomcontrol-0.158.9/sdc_user/Assets/src → simpledomcontrol-0.160.0/sdc_user/Assets/bin}/sdc_user/controller/sdc_confirm_email/sdc_confirm_email.js +7 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_user/Assets/bin/sdc_user/controller/sdc_login/sdc_login.js +14 -5
- {simpledomcontrol-0.158.9/sdc_user/Assets/src → simpledomcontrol-0.160.0/sdc_user/Assets/bin}/sdc_user/controller/sdc_logout/sdc_logout.js +5 -0
- {simpledomcontrol-0.158.9/sdc_user/Assets/src → simpledomcontrol-0.160.0/sdc_user/Assets/bin}/sdc_user/controller/sdc_password_forgotten/sdc_password_forgotten.js +13 -1
- {simpledomcontrol-0.158.9/sdc_user/Assets/src → simpledomcontrol-0.160.0/sdc_user/Assets/bin}/sdc_user/controller/sdc_reset_password/sdc_reset_password.js +8 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_user/Assets/bin/sdc_user/controller/sdc_user/sdc_user.js +13 -7
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_user/Assets/bin/sdc_user/controller/sdc_user_nav_btn/sdc_user_nav_btn.js +3 -0
- simpledomcontrol-0.160.0/sdc_user/Assets/bin/sdc_user/sdc_user.organizer.js +1 -0
- {simpledomcontrol-0.158.9/sdc_user/Assets/bin → simpledomcontrol-0.160.0/sdc_user/Assets/src}/sdc_user/controller/register/register.js +9 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_user/Assets/src/sdc_user/controller/sdc_change_password/sdc_change_password.js +7 -0
- {simpledomcontrol-0.158.9/sdc_user/Assets/bin → simpledomcontrol-0.160.0/sdc_user/Assets/src}/sdc_user/controller/sdc_confirm_email/sdc_confirm_email.js +7 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_user/Assets/src/sdc_user/controller/sdc_login/sdc_login.js +14 -5
- {simpledomcontrol-0.158.9/sdc_user/Assets/bin → simpledomcontrol-0.160.0/sdc_user/Assets/src}/sdc_user/controller/sdc_logout/sdc_logout.js +5 -0
- {simpledomcontrol-0.158.9/sdc_user/Assets/bin → simpledomcontrol-0.160.0/sdc_user/Assets/src}/sdc_user/controller/sdc_password_forgotten/sdc_password_forgotten.js +13 -1
- {simpledomcontrol-0.158.9/sdc_user/Assets/bin → simpledomcontrol-0.160.0/sdc_user/Assets/src}/sdc_user/controller/sdc_reset_password/sdc_reset_password.js +8 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_user/Assets/src/sdc_user/controller/sdc_user/sdc_user.js +13 -7
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_user/Assets/src/sdc_user/controller/sdc_user_nav_btn/sdc_user_nav_btn.js +3 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_user/Assets/tests/sdc_user.test.js +2 -2
- simpledomcontrol-0.160.0/sdc_user/SDC_SKILL.json +134 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_user/forms.py +17 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_user/mails.py +37 -10
- simpledomcontrol-0.160.0/sdc_user/migrations/__init__.py +0 -0
- simpledomcontrol-0.160.0/sdc_user/models.py +134 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_user/sdc_views.py +54 -12
- simpledomcontrol-0.160.0/sdc_user/templates/sdc_user/sdc/sdc_change_password.html +7 -0
- simpledomcontrol-0.160.0/sdc_user/tests.py +32 -0
- simpledomcontrol-0.158.9/pyproject.toml +0 -53
- simpledomcontrol-0.158.9/sdc_core/consumers.py +0 -516
- simpledomcontrol-0.158.9/sdc_core/management/commands/sdc_open_api.py +0 -445
- simpledomcontrol-0.158.9/sdc_core/signals.py +0 -39
- simpledomcontrol-0.158.9/sdc_core/template_files/Assets/tests/config/pre-test-setup.js +0 -94
- simpledomcontrol-0.158.9/sdc_core/template_files/Assets/webpack.config/webpack.default.config.jsx +0 -56
- simpledomcontrol-0.158.9/sdc_core/template_files/settings_extension.py.txt +0 -123
- simpledomcontrol-0.158.9/sdc_tools/Assets/bin/sdc_tools/sdc_tools.organizer.js +0 -1
- simpledomcontrol-0.158.9/sdc_tools/Assets/tests/sdc_tools.test.js +0 -192
- simpledomcontrol-0.158.9/sdc_user/Assets/bin/sdc_user/sdc_user.organizer.js +0 -1
- simpledomcontrol-0.158.9/sdc_user/models.py +0 -73
- simpledomcontrol-0.158.9/sdc_user/templates/sdc_user/sdc/sdc_change_password.html +0 -2
- simpledomcontrol-0.158.9/sdc_user/tests.py +0 -3
- {simpledomcontrol-0.158.9/sdc_core → simpledomcontrol-0.160.0/sdc}/__init__.py +0 -0
- {simpledomcontrol-0.158.9/sdc_core/management → simpledomcontrol-0.160.0/sdc_core}/__init__.py +0 -0
- {simpledomcontrol-0.158.9/sdc_core/management/commands → simpledomcontrol-0.160.0/sdc_core/management}/__init__.py +0 -0
- {simpledomcontrol-0.158.9/sdc_core/sdc_extentions → simpledomcontrol-0.160.0/sdc_core/management/commands}/__init__.py +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_core/management/commands/_private.py +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_core/management/commands/init_add/__init__.py +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_core/management/commands/init_add/add_controller_manager.py +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_core/management/commands/init_add/add_model_manager.py +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_core/management/commands/init_add/options.py +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_core/management/commands/init_add/settings_manager.py +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_core/management/commands/init_add/utils.py +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_core/management/commands/sdc_get_controller_url.py +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_core/management/commands/sdc_is_installed.py +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_core/management/commands/sdc_update_links.py +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_core/management/commands/sdc_update_url.py +0 -0
- {simpledomcontrol-0.158.9/sdc_core/templatetags → simpledomcontrol-0.160.0/sdc_core/sdc_extentions}/__init__.py +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_core/sdc_extentions/import_manager.py +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_core/sdc_extentions/response.py +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_core/template_files/.devcontainer/Dockerfile +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_core/template_files/.devcontainer/devcontainer.json +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_core/template_files/.devcontainer/on_create.sh +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_core/template_files/.devcontainer/on_startup.sh +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_core/template_files/Assets/babel.config.json +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_core/template_files/Assets/src/index.organizer.js +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_core/template_files/Assets/src/index.style.scss +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_core/template_files/Assets/static/img/favicon.png +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_core/template_files/Assets/tests/config/post-test-teardown.js +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_core/template_files/Assets/webpack.config/webpack.bundle.config.jsx +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_core/template_files/Assets/webpack.config/webpack.development.config.jsx +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_core/template_files/Assets/webpack.config/webpack.production.config.jsx +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_core/template_files/controller/template_controller.js.txt +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_core/template_files/controller/template_css.scss +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_core/template_files/controller/template_test.js.txt +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_core/template_files/controller/template_view.html +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_core/template_files/js_test.js.txt +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_core/template_files/models/detail.html +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_core/template_files/models/list.html +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_core/template_files/sdc_urls.py.txt +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_core/template_files/sdc_views.py.txt +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_core/template_files/templates/elements/form.html +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_core/template_files/templates/elements/inline_form.html +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_core/template_files/templates/index.html +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_core/template_files/urls.py.txt +0 -0
- {simpledomcontrol-0.158.9/sdc_tools → simpledomcontrol-0.160.0/sdc_core/templatetags}/__init__.py +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_core/templatetags/addclass.py +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_core/templatetags/indexfilter.py +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_core/templatetags/sdc_filter.py +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_tools/Assets/bin/sdc_tools/controller/sdc_auto_submit/sdc_auto_submit.js +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_tools/Assets/bin/sdc_tools/controller/sdc_navigation_client/sdc_navigation_client.js +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_tools/Assets/bin/sdc_tools/controller/sdc_update_on_change/sdc_update_on_change.js +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_tools/Assets/src/sdc_tools/controller/sdc_alert_messenger/sdc_alert_messenger.scss +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_tools/Assets/src/sdc_tools/controller/sdc_auto_submit/sdc_auto_submit.js +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_tools/Assets/src/sdc_tools/controller/sdc_detail_view/sdc_detail_view.scss +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_tools/Assets/src/sdc_tools/controller/sdc_dummy/sdc_dummy.scss +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_tools/Assets/src/sdc_tools/controller/sdc_error/sdc_error.scss +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_tools/Assets/src/sdc_tools/controller/sdc_list_view/sdc_list_view.scss +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_tools/Assets/src/sdc_tools/controller/sdc_model_form/sdc_model_form.scss +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_tools/Assets/src/sdc_tools/controller/sdc_navigation_client/sdc_navigation_client.js +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_tools/Assets/src/sdc_tools/controller/sdc_navigator/sdc_navigator.scss +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_tools/Assets/src/sdc_tools/controller/sdc_search_select/sdc_search_select.scss +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_tools/Assets/src/sdc_tools/controller/sdc_search_view/sdc_search_view.scss +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_tools/Assets/src/sdc_tools/controller/sdc_update_on_change/sdc_update_on_change.js +0 -0
- {simpledomcontrol-0.158.9/sdc_tools/migrations → simpledomcontrol-0.160.0/sdc_tools}/__init__.py +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_tools/admin.py +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_tools/apps.py +0 -0
- {simpledomcontrol-0.158.9/sdc_user → simpledomcontrol-0.160.0/sdc_tools/migrations}/__init__.py +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_tools/models.py +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_tools/templates/email/base.html +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_tools/templates/sdc_tools/sdc/dummy_sdc.html +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_tools/templates/sdc_tools/sdc/sdc_alert_messenger.html +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_tools/templates/sdc_tools/sdc/sdc_detail_view.html +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_tools/templates/sdc_tools/sdc/sdc_dummy.html +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_tools/templates/sdc_tools/sdc/sdc_error.html +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_tools/templates/sdc_tools/sdc/sdc_list_view.html +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_tools/templates/sdc_tools/sdc/sdc_model_form.html +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_tools/templates/sdc_tools/sdc/sdc_navigator.html +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_tools/templates/sdc_tools/sdc/sdc_search_select.html +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_tools/templates/sdc_tools/sdc/sdc_search_view.html +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_tools/tests.py +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_tools/views.py +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_tools/widgets.py +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_user/Assets/bin/sdc_user/sdc_user.style.css +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_user/Assets/src/sdc_user/controller/register/register.scss +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_user/Assets/src/sdc_user/controller/sdc_change_password/sdc_change_password.scss +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_user/Assets/src/sdc_user/controller/sdc_confirm_email/sdc_confirm_email.scss +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_user/Assets/src/sdc_user/controller/sdc_login/sdc_login.scss +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_user/Assets/src/sdc_user/controller/sdc_logout/sdc_logout.scss +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_user/Assets/src/sdc_user/controller/sdc_password_forgotten/sdc_password_forgotten.scss +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_user/Assets/src/sdc_user/controller/sdc_reset_password/sdc_reset_password.scss +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_user/Assets/src/sdc_user/controller/sdc_user/sdc_user.scss +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_user/Assets/src/sdc_user/controller/sdc_user_nav_btn/sdc_user_nav_btn.scss +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_user/Assets/src/sdc_user/sdc_user.organizer.js +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_user/Assets/src/sdc_user/sdc_user.style.scss +0 -0
- {simpledomcontrol-0.158.9/sdc_user/migrations → simpledomcontrol-0.160.0/sdc_user}/__init__.py +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_user/admin.py +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_user/apps.py +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_user/migrations/0001_initial.py +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_user/sdc_urls.py +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_user/templates/email/confirm.html +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_user/templates/email/reset_password.html +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_user/templates/sdc_user/models/SdcUser/SdcUser_details.html +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_user/templates/sdc_user/models/SdcUser/SdcUser_list.html +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_user/templates/sdc_user/sdc/register.html +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_user/templates/sdc_user/sdc/sdc_confirm_email.html +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_user/templates/sdc_user/sdc/sdc_login.html +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_user/templates/sdc_user/sdc/sdc_logout.html +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_user/templates/sdc_user/sdc/sdc_password_forgotten.html +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_user/templates/sdc_user/sdc/sdc_reset_password.html +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_user/templates/sdc_user/sdc/sdc_user_nav_btn.html +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_user/templates/widgets/read_only_password_hash.html +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_user/views.py +0 -0
- {simpledomcontrol-0.158.9 → simpledomcontrol-0.160.0}/sdc_user/widgets.py +0 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2023-2026 Martin Starman
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -1,20 +1,23 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: SimpleDomControl
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.160.0
|
|
4
4
|
Summary: Simple DOM control -> a django MVC framework
|
|
5
|
-
License:
|
|
5
|
+
License-Expression: MIT
|
|
6
|
+
License-File: LICENSE
|
|
6
7
|
Keywords: django,MVC
|
|
7
8
|
Author: Martin Starman
|
|
8
9
|
Author-email: private@martin-starman.com
|
|
9
10
|
Requires-Python: >=3.13,<4.0
|
|
10
|
-
Classifier: Environment :: Web Environment
|
|
11
|
-
Classifier: License :: OSI Approved :: Apache Software License
|
|
12
|
-
Classifier: Operating System :: OS Independent
|
|
13
11
|
Classifier: Programming Language :: Python :: 3
|
|
14
|
-
Classifier:
|
|
15
|
-
Classifier: Programming Language :: Python :: 3.14
|
|
16
|
-
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
|
|
12
|
+
Classifier: Framework :: Django
|
|
17
13
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
14
|
+
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
|
|
15
|
+
Classifier: Environment :: Web Environment
|
|
16
|
+
Classifier: Operating System :: OS Independent
|
|
17
|
+
Provides-Extra: ai
|
|
18
|
+
Provides-Extra: postgres
|
|
19
|
+
Provides-Extra: teach
|
|
20
|
+
Requires-Dist: anthropic (>=2.3.0,<3.0.0) ; extra == "ai"
|
|
18
21
|
Requires-Dist: attrs (>=25.4.0,<26.0.0)
|
|
19
22
|
Requires-Dist: channels (>=4.3.2,<5.0.0)
|
|
20
23
|
Requires-Dist: channels-redis (>=4.3.0,<5.0.0)
|
|
@@ -22,16 +25,23 @@ Requires-Dist: click (>=8.1.0)
|
|
|
22
25
|
Requires-Dist: daphne (>=4.2.1,<5.0.0)
|
|
23
26
|
Requires-Dist: django (>=6.0.2,<7.0.0)
|
|
24
27
|
Requires-Dist: inquirerpy (>=0.3.4,<0.4.0)
|
|
25
|
-
Requires-Dist:
|
|
26
|
-
Requires-Dist:
|
|
28
|
+
Requires-Dist: openai (>=3.41.0,<4.0.0) ; extra == "ai"
|
|
29
|
+
Requires-Dist: playwright (>=1.64.0,<2.0.0) ; extra == "teach"
|
|
30
|
+
Requires-Dist: psycopg2-binary (>=2.9.11,<3.0.0) ; extra == "postgres"
|
|
27
31
|
Requires-Dist: pyjwt (>=2.11.0,<3.0.0)
|
|
28
32
|
Requires-Dist: pyyaml (>=6.0.3,<7.0.0)
|
|
29
33
|
Requires-Dist: regex (>=2026.1.15,<2027.0.0)
|
|
30
|
-
Project-URL:
|
|
34
|
+
Project-URL: Documentation, https://simpledomcontrol.readthedocs.io/en/latest/
|
|
35
|
+
Project-URL: Homepage, https://github.com/StarmanMartin/SimpleDomControl
|
|
36
|
+
Project-URL: Repository, https://github.com/StarmanMartin/SimpleDomControl
|
|
37
|
+
Project-URL: changelog, https://github.com/StarmanMartin/SimpleDomControl/blob/master/CHANGELOG.md
|
|
31
38
|
Description-Content-Type: text/markdown
|
|
32
39
|
|
|
33
40
|
# Simple Dom Control (SDC)
|
|
34
41
|
|
|
35
42
|
SDC is a framework that combines elements of both the MVC (Model-View-Controller) and MVT (Model-View-Template) patterns. Its main goal is to provide a tool for simple and efficient web development. The name ‘SDC’ is an abbreviation for ‘Simple DOM Control,’ indicating its focus on controlling and manipulating the Document Object Model (DOM), which is crucial for web development, particularly in dynamic web pages.
|
|
36
43
|
|
|
44
|
+
SDC can also describe your UI for AI agents (`manage.py sdc_teach` writes a skill file) and ships an optional
|
|
45
|
+
AI assistant (`<sdc-ai-assistant>`, `pip install "simpledomcontrol[ai]"`) that helps users to use your site.
|
|
46
|
+
|
|
37
47
|
For detailed docs go to [rtd](https://simpledomcontrol.readthedocs.io/en/latest/)
|
|
@@ -2,4 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
SDC is a framework that combines elements of both the MVC (Model-View-Controller) and MVT (Model-View-Template) patterns. Its main goal is to provide a tool for simple and efficient web development. The name ‘SDC’ is an abbreviation for ‘Simple DOM Control,’ indicating its focus on controlling and manipulating the Document Object Model (DOM), which is crucial for web development, particularly in dynamic web pages.
|
|
4
4
|
|
|
5
|
+
SDC can also describe your UI for AI agents (`manage.py sdc_teach` writes a skill file) and ships an optional
|
|
6
|
+
AI assistant (`<sdc-ai-assistant>`, `pip install "simpledomcontrol[ai]"`) that helps users to use your site.
|
|
7
|
+
|
|
5
8
|
For detailed docs go to [rtd](https://simpledomcontrol.readthedocs.io/en/latest/)
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "SimpleDomControl"
|
|
3
|
+
version = "0.160.0"
|
|
4
|
+
description = "Simple DOM control -> a django MVC framework"
|
|
5
|
+
authors = [{ name = "Martin Starman", email = "private@martin-starman.com" }]
|
|
6
|
+
readme = "README.md"
|
|
7
|
+
license = "MIT"
|
|
8
|
+
license-files = ["LICENSE"]
|
|
9
|
+
requires-python = ">=3.13,<4.0"
|
|
10
|
+
keywords = ["django", "MVC"]
|
|
11
|
+
classifiers = [
|
|
12
|
+
"Programming Language :: Python :: 3",
|
|
13
|
+
"Framework :: Django",
|
|
14
|
+
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
15
|
+
"Topic :: Software Development :: Libraries :: Application Frameworks",
|
|
16
|
+
"Environment :: Web Environment",
|
|
17
|
+
"Operating System :: OS Independent",
|
|
18
|
+
]
|
|
19
|
+
dependencies = [
|
|
20
|
+
"daphne (>=4.2.1,<5.0.0)",
|
|
21
|
+
"channels (>=4.3.2,<5.0.0)",
|
|
22
|
+
"channels-redis (>=4.3.0,<5.0.0)",
|
|
23
|
+
"django (>=6.0.2,<7.0.0)",
|
|
24
|
+
"attrs (>=25.4.0,<26.0.0)",
|
|
25
|
+
"regex (>=2026.1.15,<2027.0.0)",
|
|
26
|
+
"click (>=8.1.0)",
|
|
27
|
+
"pyjwt (>=2.11.0,<3.0.0)",
|
|
28
|
+
"inquirerpy (>=0.3.4,<0.4.0)",
|
|
29
|
+
"pyyaml (>=6.0.3,<7.0.0)",
|
|
30
|
+
]
|
|
31
|
+
|
|
32
|
+
[project.optional-dependencies]
|
|
33
|
+
# PostgreSQL driver: pip install "simpledomcontrol[postgres]"
|
|
34
|
+
postgres = ["psycopg2-binary (>=2.9.11,<3.0.0)"]
|
|
35
|
+
# AI assistant (<sdc-ai-assistant>, SDCAiConsumer): pip install "simpledomcontrol[ai]"
|
|
36
|
+
ai = ["anthropic (>=2.3.0,<3.0.0)", "openai (>=3.41.0,<4.0.0)"]
|
|
37
|
+
# sdc_teach (crawls the UI to write the AI skill file; development only): pip install "simpledomcontrol[teach]"
|
|
38
|
+
teach = ["playwright (>=1.64.0,<2.0.0)"]
|
|
39
|
+
|
|
40
|
+
[project.urls]
|
|
41
|
+
homepage = "https://github.com/StarmanMartin/SimpleDomControl"
|
|
42
|
+
repository = "https://github.com/StarmanMartin/SimpleDomControl"
|
|
43
|
+
documentation = "https://simpledomcontrol.readthedocs.io/en/latest/"
|
|
44
|
+
changelog = "https://github.com/StarmanMartin/SimpleDomControl/blob/master/CHANGELOG.md"
|
|
45
|
+
|
|
46
|
+
[project.scripts]
|
|
47
|
+
sdc = "sdc.__main__:cli"
|
|
48
|
+
|
|
49
|
+
[tool.poetry]
|
|
50
|
+
packages = [{include = "sdc_core"}, {include = "sdc_user"}, {include = "sdc_tools"}, {include = "sdc"}]
|
|
51
|
+
|
|
52
|
+
[tool.poetry.group.dev.dependencies]
|
|
53
|
+
pytest = "^9.0.2"
|
|
54
|
+
pillow = "^12.1.0"
|
|
55
|
+
sphinx = "^9.1.0"
|
|
56
|
+
sphinx-toolbox = "^4.1.2"
|
|
57
|
+
sphinx-markdown-builder = "^0.6.9"
|
|
58
|
+
sphinx-rtd-theme = "^3.1.0"
|
|
59
|
+
|
|
60
|
+
[tool.pytest.ini_options]
|
|
61
|
+
pythonpath = [
|
|
62
|
+
"."
|
|
63
|
+
]
|
|
64
|
+
testpaths = [
|
|
65
|
+
"pytests",
|
|
66
|
+
]
|
|
67
|
+
|
|
68
|
+
[build-system]
|
|
69
|
+
requires = ["poetry-core>=2.0.0,<3.0.0"]
|
|
70
|
+
build-backend = "poetry.core.masonry.api"
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Command line tool of SDC: ``sdc new --name <project>`` creates a new Django project with SDC.
|
|
3
|
+
|
|
4
|
+
Installed as the console script ``sdc`` (also ``python -m sdc``).
|
|
5
|
+
"""
|
|
6
|
+
import os
|
|
7
|
+
import re
|
|
8
|
+
import shutil
|
|
9
|
+
import subprocess
|
|
10
|
+
import sys
|
|
11
|
+
import venv
|
|
12
|
+
from importlib import metadata
|
|
13
|
+
from pathlib import Path
|
|
14
|
+
|
|
15
|
+
import click
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def _default_package():
|
|
19
|
+
"""The simpledomcontrol version of this installation, so the new project uses the same one."""
|
|
20
|
+
try:
|
|
21
|
+
return f"simpledomcontrol=={metadata.version('SimpleDomControl')}"
|
|
22
|
+
except metadata.PackageNotFoundError:
|
|
23
|
+
return "simpledomcontrol"
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
def _run(cmd, cwd):
|
|
27
|
+
click.echo(f"$ {' '.join(str(c) for c in cmd)}")
|
|
28
|
+
result = subprocess.run(cmd, cwd=cwd)
|
|
29
|
+
if result.returncode != 0:
|
|
30
|
+
raise click.ClickException(f"Command failed with exit code {result.returncode}: {' '.join(map(str, cmd))}")
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
def _venv_python(venv_dir: Path) -> Path:
|
|
34
|
+
if os.name == "nt":
|
|
35
|
+
return venv_dir / "Scripts" / "python.exe"
|
|
36
|
+
return venv_dir / "bin" / "python"
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
def _add_sdc_core(settings_path: Path):
|
|
40
|
+
text = settings_path.read_text()
|
|
41
|
+
if "'sdc_core'" in text or '"sdc_core"' in text:
|
|
42
|
+
return
|
|
43
|
+
new_text, count = re.subn(r"INSTALLED_APPS\s*=\s*\[", "INSTALLED_APPS = [\n 'sdc_core',", text, count=1)
|
|
44
|
+
if count != 1:
|
|
45
|
+
raise click.ClickException(f"INSTALLED_APPS not found in {settings_path}")
|
|
46
|
+
settings_path.write_text(new_text)
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
@click.group()
|
|
50
|
+
def cli():
|
|
51
|
+
pass
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
@cli.command(help="Creates a new SDC project in the subdirectory NAME of the current directory.")
|
|
55
|
+
@click.option("--name", prompt="Project name", help="Name of the new project (a valid Python identifier).")
|
|
56
|
+
@click.option("--package", default=None,
|
|
57
|
+
help="pip requirement used to install SDC into the project's virtualenv "
|
|
58
|
+
"(default: the installed version, e.g. simpledomcontrol==0.160.0).")
|
|
59
|
+
@click.option("--skip-npm", is_flag=True, help="Do not run 'npm install'.")
|
|
60
|
+
def new(name, package, skip_npm):
|
|
61
|
+
if not name.isidentifier():
|
|
62
|
+
raise click.BadParameter("The project name must be a valid Python identifier.", param_hint="--name")
|
|
63
|
+
target = Path.cwd() / name
|
|
64
|
+
if target.exists() and any(target.iterdir()):
|
|
65
|
+
raise click.ClickException(f"{target} already exists and is not empty.")
|
|
66
|
+
target.mkdir(parents=True, exist_ok=True)
|
|
67
|
+
|
|
68
|
+
# The virtualenv is created in its final location; moving a virtualenv breaks it.
|
|
69
|
+
venv_dir = target / "venv"
|
|
70
|
+
click.echo(f"Creating virtualenv in {venv_dir}")
|
|
71
|
+
venv.EnvBuilder(with_pip=True).create(venv_dir)
|
|
72
|
+
python = _venv_python(venv_dir)
|
|
73
|
+
|
|
74
|
+
_run([python, "-m", "pip", "install", "--upgrade", "pip"], target)
|
|
75
|
+
_run([python, "-m", "pip", "install", package or _default_package()], target)
|
|
76
|
+
_run([python, "-m", "django", "startproject", name, "."], target)
|
|
77
|
+
_add_sdc_core(target / name / "settings.py")
|
|
78
|
+
_run([python, "manage.py", "sdc_init", "-y"], target)
|
|
79
|
+
|
|
80
|
+
if skip_npm:
|
|
81
|
+
click.echo("Skipped 'npm install'.")
|
|
82
|
+
elif shutil.which("npm"):
|
|
83
|
+
_run(["npm", "install"], target)
|
|
84
|
+
else:
|
|
85
|
+
click.echo("npm was not found; run 'npm install' in the project directory to install the client.")
|
|
86
|
+
|
|
87
|
+
click.echo(f"\nDone. Next steps:\n cd {name}\n source venv/bin/activate\n"
|
|
88
|
+
f" python manage.py migrate\n npm run develop # in a second terminal: python manage.py runserver")
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
if __name__ == '__main__':
|
|
92
|
+
cli()
|
|
@@ -8,7 +8,7 @@ class SdcCoreConfig(AppConfig):
|
|
|
8
8
|
def ready(self):
|
|
9
9
|
import sys
|
|
10
10
|
from django.conf import settings
|
|
11
|
-
|
|
11
|
+
import sdc_core.signals # noqa: F401 (registers the signal receivers)
|
|
12
12
|
|
|
13
13
|
if settings.DEBUG and os.path.exists('./Assets'):
|
|
14
14
|
env_vars = {}
|