simpledomcontrol 0.4.8__tar.gz → 0.4.11__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.4.8 → simpledomcontrol-0.4.11}/PKG-INFO +8 -7
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/README.md +1 -1
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/pyproject.toml +7 -5
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/__init__.py +0 -0
- simpledomcontrol-0.4.11/sdc_core/apps.py +27 -0
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/consumers.py +46 -35
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/management/__init__.py +0 -0
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/management/commands/__init__.py +0 -0
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/management/commands/_private.py +0 -0
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/management/commands/init_add/__init__.py +0 -0
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/management/commands/init_add/add_controller_manager.py +254 -254
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/management/commands/init_add/add_model_manager.py +2 -2
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/management/commands/init_add/options.py +40 -40
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/management/commands/init_add/sdc_core_manager.py +50 -50
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/management/commands/init_add/settings_manager.py +127 -116
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/management/commands/init_add/utils.py +80 -80
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/management/commands/sdc_cc.py +76 -76
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/management/commands/sdc_get_controller_infos.py +0 -1
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/management/commands/sdc_init.py +61 -61
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/management/commands/sdc_new_model.py +63 -63
- simpledomcontrol-0.4.11/sdc_core/management/commands/sdc_shell_execute_script.py +36 -0
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/management/commands/sdc_update_links.py +85 -84
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/management/commands/sdc_update_url.py +49 -49
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/sdc_extentions/forms.py +25 -25
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/sdc_extentions/import_manager.py +17 -17
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/sdc_extentions/response.py +114 -62
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/sdc_extentions/search.py +59 -59
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/sdc_extentions/views.py +108 -62
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/template_files/Assets/.babelrc +1 -1
- simpledomcontrol-0.4.11/sdc_core/template_files/Assets/gulpfile.jsx +38 -0
- simpledomcontrol-0.4.11/sdc_core/template_files/Assets/src/index.organizer.js +16 -0
- simpledomcontrol-0.4.11/sdc_core/template_files/Assets/tests/config/post-test-teardown.js +6 -0
- simpledomcontrol-0.4.11/sdc_core/template_files/Assets/tests/config/pre-test-setup.js +94 -0
- simpledomcontrol-0.4.11/sdc_core/template_files/Assets/tests/config/test-setup.js +10 -0
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/template_files/Assets/webpack.config/webpack.default.config.jsx +5 -0
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/template_files/Assets/webpack.config/webpack.development.config.jsx +0 -6
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/template_files/Assets/webpack.config/webpack.production.config.jsx +0 -4
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/template_files/apps/sdc_examples/Add_SDCUser.txt +37 -37
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/template_files/apps/sdc_examples/index.html +50 -50
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/template_files/apps/sdc_examples/server_call.txt +75 -75
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/template_files/asgi.py.txt +30 -30
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/template_files/controller/templade_view.html +2 -2
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/template_files/controller/template_controller.js.txt +44 -44
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/template_files/controller/template_css.scss +3 -3
- simpledomcontrol-0.4.11/sdc_core/template_files/js_test.js.txt +8 -0
- simpledomcontrol-0.4.11/sdc_core/template_files/package.json +80 -0
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/template_files/routing.py.txt +8 -8
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/template_files/sdc_urls.py.txt +8 -8
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/template_files/sdc_views.py.txt +3 -3
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/template_files/settings_extension.py.txt +38 -38
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/template_files/templates/base.html +32 -32
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/template_files/templates/index.html +22 -22
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/template_files/urls.py.txt +8 -8
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/Assets/src/sdc_tools/controller/sdc_alert_messenger/sdc_alert_messenger.js +7 -3
- simpledomcontrol-0.4.11/sdc_tools/Assets/src/sdc_tools/controller/sdc_dummy/sdc_dummy.js +51 -0
- simpledomcontrol-0.4.11/sdc_tools/Assets/src/sdc_tools/controller/sdc_dummy/sdc_dummy.scss +3 -0
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/Assets/src/sdc_tools/controller/sdc_error/sdc_error.js +1 -0
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/Assets/src/sdc_tools/controller/sdc_navigator/sdc_navigator.js +47 -30
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/Assets/src/sdc_tools/sdc_tools.organizer.js +1 -0
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/Assets/src/sdc_tools/sdc_tools.style.scss +1 -0
- simpledomcontrol-0.4.11/sdc_tools/Assets/tests/sdc_tools.test.js +153 -0
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/__init__.py +0 -0
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/apps.py +5 -5
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/migrations/__init__.py +0 -0
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/sdc_urls.py +1 -0
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/sdc_views.py +54 -48
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/templates/elements/form.html +98 -98
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/templates/elements/inline_form.html +72 -72
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/templates/email/base.html +57 -57
- simpledomcontrol-0.4.11/sdc_tools/templates/sdc_tools/sdc/dummy_sdc.html +2 -0
- simpledomcontrol-0.4.11/sdc_tools/templates/sdc_tools/sdc/sdc_dummy.html +7 -0
- simpledomcontrol-0.4.11/sdc_tools/templates/sdc_tools/sdc/sdc_error.html +5 -0
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/templates/sdc_tools/sdc/sdc_navigator.html +7 -7
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/templatetags/__init__.py +0 -0
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/templatetags/addclass.py +25 -25
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/templatetags/indexfilter.py +16 -16
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/templatetags/sdc_filter.py +43 -43
- {simpledomcontrol-0.4.8/sdc_tools → simpledomcontrol-0.4.11/sdc_user}/admin.py +3 -3
- {simpledomcontrol-0.4.8/sdc_tools → simpledomcontrol-0.4.11/sdc_user}/models.py +3 -3
- {simpledomcontrol-0.4.8/sdc_tools → simpledomcontrol-0.4.11/sdc_user}/tests.py +3 -3
- {simpledomcontrol-0.4.8/sdc_tools → simpledomcontrol-0.4.11/sdc_user}/views.py +3 -3
- simpledomcontrol-0.4.8/sdc_core/apps.py +0 -5
- simpledomcontrol-0.4.8/sdc_core/management/__pycache__/__init__.cpython-310.pyc +0 -0
- simpledomcontrol-0.4.8/sdc_core/management/__pycache__/__init__.cpython-39.pyc +0 -0
- simpledomcontrol-0.4.8/sdc_core/management/commands/__pycache__/__init__.cpython-310.pyc +0 -0
- simpledomcontrol-0.4.8/sdc_core/management/commands/__pycache__/__init__.cpython-39.pyc +0 -0
- simpledomcontrol-0.4.8/sdc_core/management/commands/__pycache__/_private.cpython-39.pyc +0 -0
- simpledomcontrol-0.4.8/sdc_core/management/commands/__pycache__/sdc_cc.cpython-310.pyc +0 -0
- simpledomcontrol-0.4.8/sdc_core/management/commands/__pycache__/sdc_cc.cpython-39.pyc +0 -0
- simpledomcontrol-0.4.8/sdc_core/management/commands/__pycache__/sdc_get_controller_infos.cpython-310.pyc +0 -0
- simpledomcontrol-0.4.8/sdc_core/management/commands/__pycache__/sdc_get_controller_url.cpython-310.pyc +0 -0
- simpledomcontrol-0.4.8/sdc_core/management/commands/__pycache__/sdc_get_model_infos.cpython-310.pyc +0 -0
- simpledomcontrol-0.4.8/sdc_core/management/commands/__pycache__/sdc_init.cpython-310.pyc +0 -0
- simpledomcontrol-0.4.8/sdc_core/management/commands/__pycache__/sdc_init.cpython-39.pyc +0 -0
- simpledomcontrol-0.4.8/sdc_core/management/commands/__pycache__/sdc_new_model.cpython-310.pyc +0 -0
- simpledomcontrol-0.4.8/sdc_core/management/commands/__pycache__/sdc_new_model.cpython-39.pyc +0 -0
- simpledomcontrol-0.4.8/sdc_core/management/commands/__pycache__/sdc_update_links.cpython-310.pyc +0 -0
- simpledomcontrol-0.4.8/sdc_core/management/commands/__pycache__/sdc_update_url.cpython-310.pyc +0 -0
- simpledomcontrol-0.4.8/sdc_core/management/commands/__pycache__/sdc_update_url.cpython-39.pyc +0 -0
- simpledomcontrol-0.4.8/sdc_core/management/commands/__pycache__/sdc_update_version.cpython-310.pyc +0 -0
- simpledomcontrol-0.4.8/sdc_core/management/commands/__pycache__/sdc_update_version.cpython-39.pyc +0 -0
- simpledomcontrol-0.4.8/sdc_core/management/commands/init_add/__pycache__/__init__.cpython-310.pyc +0 -0
- simpledomcontrol-0.4.8/sdc_core/management/commands/init_add/__pycache__/__init__.cpython-39.pyc +0 -0
- simpledomcontrol-0.4.8/sdc_core/management/commands/init_add/__pycache__/add_controller_manager.cpython-310.pyc +0 -0
- simpledomcontrol-0.4.8/sdc_core/management/commands/init_add/__pycache__/add_controller_manager.cpython-39.pyc +0 -0
- simpledomcontrol-0.4.8/sdc_core/management/commands/init_add/__pycache__/add_model_manager.cpython-310.pyc +0 -0
- simpledomcontrol-0.4.8/sdc_core/management/commands/init_add/__pycache__/add_model_manager.cpython-39.pyc +0 -0
- simpledomcontrol-0.4.8/sdc_core/management/commands/init_add/__pycache__/options.cpython-310.pyc +0 -0
- simpledomcontrol-0.4.8/sdc_core/management/commands/init_add/__pycache__/options.cpython-39.pyc +0 -0
- simpledomcontrol-0.4.8/sdc_core/management/commands/init_add/__pycache__/sdc_core_manager.cpython-310.pyc +0 -0
- simpledomcontrol-0.4.8/sdc_core/management/commands/init_add/__pycache__/sdc_core_manager.cpython-39.pyc +0 -0
- simpledomcontrol-0.4.8/sdc_core/management/commands/init_add/__pycache__/settings_manager.cpython-310.pyc +0 -0
- simpledomcontrol-0.4.8/sdc_core/management/commands/init_add/__pycache__/settings_manager.cpython-39.pyc +0 -0
- simpledomcontrol-0.4.8/sdc_core/management/commands/init_add/__pycache__/utils.cpython-310.pyc +0 -0
- simpledomcontrol-0.4.8/sdc_core/management/commands/init_add/__pycache__/utils.cpython-39.pyc +0 -0
- simpledomcontrol-0.4.8/sdc_core/sdc_extentions/__pycache__/__init__.cpython-310.pyc +0 -0
- simpledomcontrol-0.4.8/sdc_core/sdc_extentions/__pycache__/forms.cpython-310.pyc +0 -0
- simpledomcontrol-0.4.8/sdc_core/sdc_extentions/__pycache__/import_manager.cpython-310.pyc +0 -0
- simpledomcontrol-0.4.8/sdc_core/sdc_extentions/__pycache__/models.cpython-310.pyc +0 -0
- simpledomcontrol-0.4.8/sdc_core/sdc_extentions/__pycache__/response.cpython-310.pyc +0 -0
- simpledomcontrol-0.4.8/sdc_core/sdc_extentions/__pycache__/search.cpython-310.pyc +0 -0
- simpledomcontrol-0.4.8/sdc_core/sdc_extentions/__pycache__/views.cpython-310.pyc +0 -0
- simpledomcontrol-0.4.8/sdc_core/template_files/Assets/gulpfile.jsx +0 -139
- simpledomcontrol-0.4.8/sdc_core/template_files/Assets/src/index.organizer.js +0 -11
- simpledomcontrol-0.4.8/sdc_core/template_files/Assets/tests/pre-test-setup.js +0 -19
- simpledomcontrol-0.4.8/sdc_core/template_files/Assets/tests/test-setup.js +0 -6
- simpledomcontrol-0.4.8/sdc_core/template_files/js_test.js.txt +0 -8
- simpledomcontrol-0.4.8/sdc_core/template_files/package.json +0 -59
- simpledomcontrol-0.4.8/sdc_tools/Assets/tests/sdc_tools.test.js +0 -20
- simpledomcontrol-0.4.8/sdc_tools/migrations/__pycache__/__init__.cpython-310.pyc +0 -0
- simpledomcontrol-0.4.8/sdc_tools/templates/sdc_tools/sdc/sdc_error.html +0 -4
- simpledomcontrol-0.4.8/sdc_tools/templatetags/__pycache__/__init__.cpython-310.pyc +0 -0
- simpledomcontrol-0.4.8/sdc_tools/templatetags/__pycache__/addclass.cpython-310.pyc +0 -0
- simpledomcontrol-0.4.8/sdc_tools/templatetags/__pycache__/indexfilter.cpython-310.pyc +0 -0
- simpledomcontrol-0.4.8/sdc_tools/templatetags/__pycache__/sdc_filter.cpython-310.pyc +0 -0
- simpledomcontrol-0.4.8/sdc_user/migrations/__pycache__/__init__.cpython-310.pyc +0 -0
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/management/commands/sdc_get_controller_url.py +0 -0
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/management/commands/sdc_get_model_infos.py +0 -0
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/management/commands/sdc_is_installed.py +0 -0
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/sdc_extentions/__init__.py +0 -0
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/sdc_extentions/models.py +0 -0
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/template_files/Assets/src/index.style.scss +0 -0
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/template_files/controller/template_test.js.text +0 -0
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/template_files/models/detail.html +0 -0
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/template_files/models/list.html +0 -0
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/Assets/src/sdc_tools/controller/sdc_alert_messenger/sdc_alert_messenger.scss +0 -0
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/Assets/src/sdc_tools/controller/sdc_auto_submit/sdc_auto_submit.js +0 -0
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/Assets/src/sdc_tools/controller/sdc_detail_view/sdc_detail_view.js +0 -0
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/Assets/src/sdc_tools/controller/sdc_detail_view/sdc_detail_view.scss +0 -0
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/Assets/src/sdc_tools/controller/sdc_error/sdc_error.scss +0 -0
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/Assets/src/sdc_tools/controller/sdc_list_view/sdc_list_view.js +0 -0
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/Assets/src/sdc_tools/controller/sdc_list_view/sdc_list_view.scss +0 -0
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/Assets/src/sdc_tools/controller/sdc_model_form/sdc_model_form.js +0 -0
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/Assets/src/sdc_tools/controller/sdc_model_form/sdc_model_form.scss +0 -0
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/Assets/src/sdc_tools/controller/sdc_navigation_client/sdc_navigation_client.js +0 -0
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/Assets/src/sdc_tools/controller/sdc_navigator/sdc_navigator.scss +0 -0
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/Assets/src/sdc_tools/controller/sdc_search_view/sdc_search_view.js +0 -0
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/Assets/src/sdc_tools/controller/sdc_search_view/sdc_search_view.scss +0 -0
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/Assets/src/sdc_tools/controller/sdc_update_on_change/sdc_update_on_change.js +0 -0
- {simpledomcontrol-0.4.8/sdc_user → simpledomcontrol-0.4.11/sdc_tools}/admin.py +0 -0
- {simpledomcontrol-0.4.8/sdc_user → simpledomcontrol-0.4.11/sdc_tools}/models.py +0 -0
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/templates/sdc_tools/sdc/sdc_alert_messenger.html +0 -0
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/templates/sdc_tools/sdc/sdc_detail_view.html +0 -0
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/templates/sdc_tools/sdc/sdc_list_view.html +0 -0
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/templates/sdc_tools/sdc/sdc_model_form.html +0 -0
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/templates/sdc_tools/sdc/sdc_search_view.html +0 -0
- {simpledomcontrol-0.4.8/sdc_user → simpledomcontrol-0.4.11/sdc_tools}/tests.py +0 -0
- {simpledomcontrol-0.4.8/sdc_user → simpledomcontrol-0.4.11/sdc_tools}/views.py +0 -0
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_user/Assets/src/sdc_user/controller/sdc_login/sdc_login.js +0 -0
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_user/Assets/src/sdc_user/controller/sdc_login/sdc_login.scss +0 -0
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_user/Assets/src/sdc_user/controller/sdc_logout/sdc_logout.js +0 -0
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_user/Assets/src/sdc_user/controller/sdc_logout/sdc_logout.scss +0 -0
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_user/Assets/src/sdc_user/sdc_user.organizer.js +0 -0
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_user/Assets/src/sdc_user/sdc_user.style.scss +0 -0
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_user/Assets/tests/sdc_user.test.js +0 -0
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_user/__init__.py +0 -0
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_user/apps.py +0 -0
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_user/migrations/__init__.py +0 -0
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_user/sdc_urls.py +0 -0
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_user/sdc_views.py +0 -0
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_user/templates/sdc_user/sdc/sdc_login.html +0 -0
- {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_user/templates/sdc_user/sdc/sdc_logout.html +0 -0
|
@@ -1,28 +1,29 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
|
-
Name:
|
|
3
|
-
Version: 0.4.
|
|
2
|
+
Name: SimpleDomControl
|
|
3
|
+
Version: 0.4.11
|
|
4
4
|
Summary: Simple DOM control -> a django MVC framework
|
|
5
5
|
Home-page: https://github.com/StarmanMartin/sdc
|
|
6
6
|
License: Apache-2.0
|
|
7
7
|
Keywords: django,MVC
|
|
8
8
|
Author: Martin Starman
|
|
9
9
|
Author-email: private@martin-starman.com
|
|
10
|
-
Requires-Python: >=3.
|
|
10
|
+
Requires-Python: >=3.10,<4.0
|
|
11
11
|
Classifier: Environment :: Web Environment
|
|
12
12
|
Classifier: License :: OSI Approved :: Apache Software License
|
|
13
13
|
Classifier: Operating System :: OS Independent
|
|
14
14
|
Classifier: Programming Language :: Python :: 3
|
|
15
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
16
15
|
Classifier: Programming Language :: Python :: 3.10
|
|
17
16
|
Classifier: Programming Language :: Python :: 3.11
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
18
18
|
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
|
|
19
19
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
20
|
-
Requires-Dist: attrs (>=23.
|
|
20
|
+
Requires-Dist: attrs (>=23.2.0,<24.0.0)
|
|
21
21
|
Requires-Dist: channels (>=4.0.0,<5.0.0)
|
|
22
|
-
Requires-Dist: channels-redis (>=4.
|
|
22
|
+
Requires-Dist: channels-redis (>=4.2.0,<5.0.0)
|
|
23
23
|
Requires-Dist: daphne (>=4.0.0,<5.0.0)
|
|
24
|
-
Requires-Dist: django (>=
|
|
24
|
+
Requires-Dist: django (>=5.0.1,<6.0.0)
|
|
25
25
|
Requires-Dist: psycopg2-binary (>=2.9.9,<3.0.0)
|
|
26
|
+
Requires-Dist: regex (>=2023.12.25,<2024.0.0)
|
|
26
27
|
Description-Content-Type: text/markdown
|
|
27
28
|
|
|
28
29
|
simpleDomControl
|
|
@@ -1 +1 @@
|
|
|
1
|
-
simpleDomControl
|
|
1
|
+
simpleDomControl
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "SimpleDomControl"
|
|
3
|
-
version = "0.4.
|
|
3
|
+
version = "0.4.11"
|
|
4
4
|
authors = [ "Martin Starman <private@martin-starman.com>", ]
|
|
5
5
|
description = "Simple DOM control -> a django MVC framework"
|
|
6
6
|
readme = "README.md"
|
|
@@ -18,13 +18,14 @@ classifiers = [
|
|
|
18
18
|
homepage = "https://github.com/StarmanMartin/sdc"
|
|
19
19
|
|
|
20
20
|
[tool.poetry.dependencies]
|
|
21
|
-
python = "^3.
|
|
21
|
+
python = "^3.10"
|
|
22
22
|
daphne = "^4.0.0"
|
|
23
23
|
channels = "^4.0.0"
|
|
24
|
-
channels-redis = "^4.
|
|
25
|
-
django = "^
|
|
24
|
+
channels-redis = "^4.2.0"
|
|
25
|
+
django = "^5.0.1"
|
|
26
26
|
psycopg2-binary = "^2.9.9"
|
|
27
|
-
attrs = "^23.
|
|
27
|
+
attrs = "^23.2.0"
|
|
28
|
+
regex = "^2023.12.25"
|
|
28
29
|
|
|
29
30
|
[tool.pytest.ini_options]
|
|
30
31
|
pythonpath = [
|
|
@@ -36,6 +37,7 @@ testpaths = [
|
|
|
36
37
|
|
|
37
38
|
[tool.poetry.group.dev.dependencies]
|
|
38
39
|
pytest = "^7.2.2"
|
|
40
|
+
pillow = "^10.1.0"
|
|
39
41
|
|
|
40
42
|
[build-system]
|
|
41
43
|
requires = ["poetry-core"]
|
|
File without changes
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import os.path
|
|
2
|
+
|
|
3
|
+
from django.apps import AppConfig
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class SdcCoreConfig(AppConfig):
|
|
7
|
+
name = 'sdc_core'
|
|
8
|
+
def ready(self):
|
|
9
|
+
import sys
|
|
10
|
+
from django.conf import settings
|
|
11
|
+
|
|
12
|
+
if settings.DEBUG and os.path.exists('./Assets'):
|
|
13
|
+
env_vars = {}
|
|
14
|
+
if os.path.exists('./Assets/.sdc_env'):
|
|
15
|
+
with open('./Assets/.sdc_env', 'r', encoding='utf8') as f_read:
|
|
16
|
+
for line in f_read:
|
|
17
|
+
if not line.startswith('#') and line.strip():
|
|
18
|
+
key, value = line.strip().split('=', 1)
|
|
19
|
+
env_vars[key] = value
|
|
20
|
+
env_vars['JSON_DATA_DUMP'] = env_vars.get('JSON_DATA_DUMP', f'"Assets/tests/dumps/test_data_dump.json"')
|
|
21
|
+
env_vars['COPY_DEFAULT_DB'] = env_vars.get('COPY_DEFAULT_DB', "1 # 0 for false or 1 for true")
|
|
22
|
+
env_vars['DB_PYTHON_SCRIPT'] = env_vars.get('DB_PYTHON_SCRIPT', "0 # Add path to pythonscript to prepare DB")
|
|
23
|
+
with open('./Assets/.sdc_env', 'w+', encoding='utf8') as f:
|
|
24
|
+
f.write('\n'.join([f'{x}={y}' for (x,y) in env_vars.items()]))
|
|
25
|
+
|
|
26
|
+
with open('./Assets/.sdc_python_env', 'w+', encoding='utf8') as f:
|
|
27
|
+
f.write(f'PYTHON="{sys.executable}"')
|
|
@@ -9,6 +9,7 @@ from django.utils.datastructures import MultiValueDict
|
|
|
9
9
|
from django.utils.translation import gettext as _f
|
|
10
10
|
from django.apps import apps
|
|
11
11
|
from django.db.models import FileField
|
|
12
|
+
from django.contrib.auth import get_user_model
|
|
12
13
|
from channels.generic.websocket import WebsocketConsumer
|
|
13
14
|
|
|
14
15
|
from asgiref.sync import async_to_sync
|
|
@@ -18,6 +19,12 @@ import json
|
|
|
18
19
|
from sdc_core.sdc_extentions.models import SdcModel
|
|
19
20
|
from sdc_core.sdc_extentions.response import sdc_link_factory, sdc_link_obj_factory
|
|
20
21
|
from sdc_core.sdc_extentions.import_manager import import_function
|
|
22
|
+
from sdc_core.sdc_extentions.views import SdcAccessMixin
|
|
23
|
+
|
|
24
|
+
import logging
|
|
25
|
+
|
|
26
|
+
logger = logging.getLogger(__name__)
|
|
27
|
+
User = get_user_model()
|
|
21
28
|
|
|
22
29
|
ALL_MODELS = {
|
|
23
30
|
model.__name__: model for model in apps.get_models() if hasattr(model, '__is_sdc_model__')
|
|
@@ -28,7 +35,7 @@ importlist = []
|
|
|
28
35
|
|
|
29
36
|
class MsgManager:
|
|
30
37
|
_messages = None
|
|
31
|
-
_msg_filepath = os.path.abspath(settings.BASE_DIR /
|
|
38
|
+
_msg_filepath = os.path.abspath(settings.BASE_DIR / 'templates/sdc_strings.json')
|
|
32
39
|
|
|
33
40
|
@property
|
|
34
41
|
def messages(self):
|
|
@@ -68,15 +75,14 @@ class ConsumerSerializer(Serializer):
|
|
|
68
75
|
|
|
69
76
|
def handle_m2m_field(self, obj, field):
|
|
70
77
|
super().handle_m2m_field(obj, field)
|
|
71
|
-
#self._current[field.name] = {
|
|
78
|
+
# self._current[field.name] = {
|
|
72
79
|
# 'pk': self._current[field.name],
|
|
73
80
|
# 'model': field.related_model.__name__,
|
|
74
81
|
# '__is_sdc_model__': True
|
|
75
|
-
#}
|
|
82
|
+
# }
|
|
76
83
|
|
|
77
84
|
def _value_from_field(self, obj, field):
|
|
78
|
-
|
|
79
|
-
#if hasattr(field, 'foreign_related_fields') and ALL_MODELS.get(
|
|
85
|
+
# if hasattr(field, 'foreign_related_fields') and ALL_MODELS.get(
|
|
80
86
|
# field.related_model.__name__) == field.related_model:
|
|
81
87
|
# return {'pk': super()._value_from_field(obj, field), 'model': field.related_model.__name__,
|
|
82
88
|
# '__is_sdc_model__': True}
|
|
@@ -142,11 +148,19 @@ class SDCConsumer(WebsocketConsumer):
|
|
|
142
148
|
def receive(self, text_data=None, bytes_data=None):
|
|
143
149
|
json_data = {}
|
|
144
150
|
try:
|
|
151
|
+
session = self.scope['session'].load()
|
|
145
152
|
json_data = json.loads(text_data)
|
|
146
153
|
if json_data['event'] == 'sdc_call':
|
|
147
154
|
controller_name = self.to_camel_case(json_data['controller'])
|
|
148
155
|
controller = import_function("%s.sdc_views.%s" % (json_data['app'], controller_name))
|
|
156
|
+
c_instance = controller()
|
|
157
|
+
if isinstance(c_instance, SdcAccessMixin):
|
|
158
|
+
if not c_instance.check_requirements(self.scope['user']):
|
|
159
|
+
raise PermissionDenied()
|
|
149
160
|
method = getattr(controller(), json_data['function'])
|
|
161
|
+
|
|
162
|
+
logger.info(f"SDC call Socket received: {json_data['app']}.{controller_name}.{json_data['function']}")
|
|
163
|
+
|
|
150
164
|
return_vals = method(channel=self, **json_data.get('args', {}))
|
|
151
165
|
return_vals_generator = []
|
|
152
166
|
if isinstance(return_vals, types.GeneratorType):
|
|
@@ -160,20 +174,8 @@ class SDCConsumer(WebsocketConsumer):
|
|
|
160
174
|
'is_error': False
|
|
161
175
|
}))
|
|
162
176
|
for x in return_vals_generator: pass
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
self.group_list.append(json_data['group'])
|
|
166
|
-
async_to_sync(self.channel_layer.group_add)(
|
|
167
|
-
json_data['group'],
|
|
168
|
-
self.channel_name
|
|
169
|
-
)
|
|
170
|
-
elif json_data['event'] == 'sdc_remove_group':
|
|
171
|
-
if json_data['group'] in self.group_list:
|
|
172
|
-
self.group_list.remove(json_data['group'])
|
|
173
|
-
async_to_sync(self.channel_layer.group_discard)(
|
|
174
|
-
json_data['group'],
|
|
175
|
-
self.channel_name
|
|
176
|
-
)
|
|
177
|
+
else:
|
|
178
|
+
raise ValueError("event must be sdc_call")
|
|
177
179
|
|
|
178
180
|
except PermissionDenied:
|
|
179
181
|
self.state_error({
|
|
@@ -182,11 +184,10 @@ class SDCConsumer(WebsocketConsumer):
|
|
|
182
184
|
}, json_data.get('id'))
|
|
183
185
|
|
|
184
186
|
except Exception as e:
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
else:
|
|
187
|
+
extracted_list = traceback.extract_tb(e.__traceback__)
|
|
188
|
+
e_text = [e.__str__()] + [item for item in traceback.StackSummary.from_list(extracted_list).format()]
|
|
189
|
+
logger.error('\n'.join(e_text))
|
|
190
|
+
if not settings.DEBUG:
|
|
190
191
|
e_text = _f('Something went wrong')
|
|
191
192
|
self.state_error({
|
|
192
193
|
'msg': e_text,
|
|
@@ -237,37 +238,40 @@ class SDCModelConsumer(WebsocketConsumer):
|
|
|
237
238
|
'type': event.get('type', 'error'),
|
|
238
239
|
'is_error': True,
|
|
239
240
|
'msg': event.get('msg', ''),
|
|
241
|
+
'event_id': event.get('event_id'),
|
|
240
242
|
'header': event.get('header', ''),
|
|
241
243
|
}))
|
|
242
244
|
|
|
243
245
|
def receive(self, text_data=None, bytes_data=None):
|
|
244
246
|
msg_type = 'error'
|
|
247
|
+
json_data = {}
|
|
245
248
|
try:
|
|
246
249
|
json_data = json.loads(text_data)
|
|
247
250
|
self.scope['request'] = json_data
|
|
248
251
|
msg_type = json_data.get('event_type', msg_type)
|
|
249
252
|
self.scope['event_type'] = msg_type
|
|
250
253
|
event_type = "%s_%s" % (json_data['event'], json_data['event_type'])
|
|
251
|
-
|
|
254
|
+
logger.debug("Socket received: " + event_type)
|
|
255
|
+
self.queryset = json_data['args'].get('model_query', {})
|
|
252
256
|
if not self.model.is_authorised(self.scope['user'], msg_type, self.queryset):
|
|
253
257
|
raise PermissionDenied
|
|
254
258
|
if event_type == 'model_connect':
|
|
255
259
|
self._init_connection(json_data)
|
|
256
|
-
|
|
260
|
+
elif event_type == 'model_edit_form':
|
|
257
261
|
self._load_edit_form(json_data)
|
|
258
|
-
|
|
262
|
+
elif event_type == 'model_create_form':
|
|
259
263
|
self._load_create_form(json_data)
|
|
260
|
-
|
|
264
|
+
elif event_type == 'model_list_view':
|
|
261
265
|
self._load_list_view(json_data)
|
|
262
|
-
|
|
266
|
+
elif event_type == 'model_detail_view':
|
|
263
267
|
self._load_detail_view(json_data)
|
|
264
|
-
|
|
268
|
+
elif event_type == 'model_save':
|
|
265
269
|
self._save_element(json_data)
|
|
266
|
-
|
|
270
|
+
elif event_type == 'model_create':
|
|
267
271
|
self._create_element(json_data)
|
|
268
|
-
|
|
272
|
+
elif event_type == 'model_upload':
|
|
269
273
|
self._upload_file(json_data)
|
|
270
|
-
|
|
274
|
+
elif event_type == 'model_delete':
|
|
271
275
|
self._delete_element(json_data)
|
|
272
276
|
elif event_type == 'model_load':
|
|
273
277
|
model_data = ConsumerSerializer().serialize(self._load_model())
|
|
@@ -280,23 +284,30 @@ class SDCModelConsumer(WebsocketConsumer):
|
|
|
280
284
|
},
|
|
281
285
|
'is_error': False
|
|
282
286
|
}))
|
|
287
|
+
else:
|
|
288
|
+
raise ValueError(
|
|
289
|
+
f"{json_data['event']} must be 'model' and {json_data['event_type']} must be in [load, delete, upload, create, save, detail_view, 'connect', 'edit_form', 'create_form', 'list_view']")
|
|
283
290
|
except PermissionDenied as e:
|
|
291
|
+
logger.error("403 Not allowed!")
|
|
284
292
|
self.state_error({
|
|
285
293
|
'type': msg_type,
|
|
286
294
|
'msg': _f('403 Not allowed!'),
|
|
295
|
+
'event_id': json_data.get('event_id'),
|
|
287
296
|
'header': _f('Upps!!')
|
|
288
297
|
})
|
|
289
298
|
|
|
290
299
|
except Exception as e:
|
|
300
|
+
extracted_list = traceback.extract_tb(e.__traceback__)
|
|
301
|
+
e_text = [e.__str__()] + [item for item in traceback.StackSummary.from_list(extracted_list).format()]
|
|
291
302
|
if settings.DEBUG:
|
|
292
|
-
extracted_list = traceback.extract_tb(e.__traceback__)
|
|
293
303
|
traceback.print_tb(e.__traceback__)
|
|
294
|
-
e_text = e.__str__() + '\n'.join([item for item in traceback.StackSummary.from_list(extracted_list).format()])
|
|
295
304
|
else:
|
|
305
|
+
logger.error(e_text)
|
|
296
306
|
e_text = _f('Something went wrong')
|
|
297
307
|
self.state_error({
|
|
298
308
|
'type': msg_type,
|
|
299
309
|
'msg': e_text,
|
|
310
|
+
'event_id': json_data.get('event_id'),
|
|
300
311
|
'header': _f('Upps!!')
|
|
301
312
|
})
|
|
302
313
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/management/commands/init_add/__init__.py
RENAMED
|
File without changes
|