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.
Files changed (182) hide show
  1. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/PKG-INFO +8 -7
  2. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/README.md +1 -1
  3. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/pyproject.toml +7 -5
  4. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/__init__.py +0 -0
  5. simpledomcontrol-0.4.11/sdc_core/apps.py +27 -0
  6. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/consumers.py +46 -35
  7. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/management/__init__.py +0 -0
  8. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/management/commands/__init__.py +0 -0
  9. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/management/commands/_private.py +0 -0
  10. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/management/commands/init_add/__init__.py +0 -0
  11. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/management/commands/init_add/add_controller_manager.py +254 -254
  12. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/management/commands/init_add/add_model_manager.py +2 -2
  13. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/management/commands/init_add/options.py +40 -40
  14. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/management/commands/init_add/sdc_core_manager.py +50 -50
  15. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/management/commands/init_add/settings_manager.py +127 -116
  16. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/management/commands/init_add/utils.py +80 -80
  17. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/management/commands/sdc_cc.py +76 -76
  18. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/management/commands/sdc_get_controller_infos.py +0 -1
  19. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/management/commands/sdc_init.py +61 -61
  20. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/management/commands/sdc_new_model.py +63 -63
  21. simpledomcontrol-0.4.11/sdc_core/management/commands/sdc_shell_execute_script.py +36 -0
  22. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/management/commands/sdc_update_links.py +85 -84
  23. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/management/commands/sdc_update_url.py +49 -49
  24. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/sdc_extentions/forms.py +25 -25
  25. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/sdc_extentions/import_manager.py +17 -17
  26. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/sdc_extentions/response.py +114 -62
  27. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/sdc_extentions/search.py +59 -59
  28. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/sdc_extentions/views.py +108 -62
  29. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/template_files/Assets/.babelrc +1 -1
  30. simpledomcontrol-0.4.11/sdc_core/template_files/Assets/gulpfile.jsx +38 -0
  31. simpledomcontrol-0.4.11/sdc_core/template_files/Assets/src/index.organizer.js +16 -0
  32. simpledomcontrol-0.4.11/sdc_core/template_files/Assets/tests/config/post-test-teardown.js +6 -0
  33. simpledomcontrol-0.4.11/sdc_core/template_files/Assets/tests/config/pre-test-setup.js +94 -0
  34. simpledomcontrol-0.4.11/sdc_core/template_files/Assets/tests/config/test-setup.js +10 -0
  35. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/template_files/Assets/webpack.config/webpack.default.config.jsx +5 -0
  36. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/template_files/Assets/webpack.config/webpack.development.config.jsx +0 -6
  37. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/template_files/Assets/webpack.config/webpack.production.config.jsx +0 -4
  38. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/template_files/apps/sdc_examples/Add_SDCUser.txt +37 -37
  39. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/template_files/apps/sdc_examples/index.html +50 -50
  40. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/template_files/apps/sdc_examples/server_call.txt +75 -75
  41. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/template_files/asgi.py.txt +30 -30
  42. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/template_files/controller/templade_view.html +2 -2
  43. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/template_files/controller/template_controller.js.txt +44 -44
  44. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/template_files/controller/template_css.scss +3 -3
  45. simpledomcontrol-0.4.11/sdc_core/template_files/js_test.js.txt +8 -0
  46. simpledomcontrol-0.4.11/sdc_core/template_files/package.json +80 -0
  47. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/template_files/routing.py.txt +8 -8
  48. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/template_files/sdc_urls.py.txt +8 -8
  49. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/template_files/sdc_views.py.txt +3 -3
  50. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/template_files/settings_extension.py.txt +38 -38
  51. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/template_files/templates/base.html +32 -32
  52. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/template_files/templates/index.html +22 -22
  53. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/template_files/urls.py.txt +8 -8
  54. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/Assets/src/sdc_tools/controller/sdc_alert_messenger/sdc_alert_messenger.js +7 -3
  55. simpledomcontrol-0.4.11/sdc_tools/Assets/src/sdc_tools/controller/sdc_dummy/sdc_dummy.js +51 -0
  56. simpledomcontrol-0.4.11/sdc_tools/Assets/src/sdc_tools/controller/sdc_dummy/sdc_dummy.scss +3 -0
  57. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/Assets/src/sdc_tools/controller/sdc_error/sdc_error.js +1 -0
  58. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/Assets/src/sdc_tools/controller/sdc_navigator/sdc_navigator.js +47 -30
  59. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/Assets/src/sdc_tools/sdc_tools.organizer.js +1 -0
  60. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/Assets/src/sdc_tools/sdc_tools.style.scss +1 -0
  61. simpledomcontrol-0.4.11/sdc_tools/Assets/tests/sdc_tools.test.js +153 -0
  62. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/__init__.py +0 -0
  63. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/apps.py +5 -5
  64. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/migrations/__init__.py +0 -0
  65. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/sdc_urls.py +1 -0
  66. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/sdc_views.py +54 -48
  67. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/templates/elements/form.html +98 -98
  68. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/templates/elements/inline_form.html +72 -72
  69. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/templates/email/base.html +57 -57
  70. simpledomcontrol-0.4.11/sdc_tools/templates/sdc_tools/sdc/dummy_sdc.html +2 -0
  71. simpledomcontrol-0.4.11/sdc_tools/templates/sdc_tools/sdc/sdc_dummy.html +7 -0
  72. simpledomcontrol-0.4.11/sdc_tools/templates/sdc_tools/sdc/sdc_error.html +5 -0
  73. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/templates/sdc_tools/sdc/sdc_navigator.html +7 -7
  74. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/templatetags/__init__.py +0 -0
  75. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/templatetags/addclass.py +25 -25
  76. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/templatetags/indexfilter.py +16 -16
  77. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/templatetags/sdc_filter.py +43 -43
  78. {simpledomcontrol-0.4.8/sdc_tools → simpledomcontrol-0.4.11/sdc_user}/admin.py +3 -3
  79. {simpledomcontrol-0.4.8/sdc_tools → simpledomcontrol-0.4.11/sdc_user}/models.py +3 -3
  80. {simpledomcontrol-0.4.8/sdc_tools → simpledomcontrol-0.4.11/sdc_user}/tests.py +3 -3
  81. {simpledomcontrol-0.4.8/sdc_tools → simpledomcontrol-0.4.11/sdc_user}/views.py +3 -3
  82. simpledomcontrol-0.4.8/sdc_core/apps.py +0 -5
  83. simpledomcontrol-0.4.8/sdc_core/management/__pycache__/__init__.cpython-310.pyc +0 -0
  84. simpledomcontrol-0.4.8/sdc_core/management/__pycache__/__init__.cpython-39.pyc +0 -0
  85. simpledomcontrol-0.4.8/sdc_core/management/commands/__pycache__/__init__.cpython-310.pyc +0 -0
  86. simpledomcontrol-0.4.8/sdc_core/management/commands/__pycache__/__init__.cpython-39.pyc +0 -0
  87. simpledomcontrol-0.4.8/sdc_core/management/commands/__pycache__/_private.cpython-39.pyc +0 -0
  88. simpledomcontrol-0.4.8/sdc_core/management/commands/__pycache__/sdc_cc.cpython-310.pyc +0 -0
  89. simpledomcontrol-0.4.8/sdc_core/management/commands/__pycache__/sdc_cc.cpython-39.pyc +0 -0
  90. simpledomcontrol-0.4.8/sdc_core/management/commands/__pycache__/sdc_get_controller_infos.cpython-310.pyc +0 -0
  91. simpledomcontrol-0.4.8/sdc_core/management/commands/__pycache__/sdc_get_controller_url.cpython-310.pyc +0 -0
  92. simpledomcontrol-0.4.8/sdc_core/management/commands/__pycache__/sdc_get_model_infos.cpython-310.pyc +0 -0
  93. simpledomcontrol-0.4.8/sdc_core/management/commands/__pycache__/sdc_init.cpython-310.pyc +0 -0
  94. simpledomcontrol-0.4.8/sdc_core/management/commands/__pycache__/sdc_init.cpython-39.pyc +0 -0
  95. simpledomcontrol-0.4.8/sdc_core/management/commands/__pycache__/sdc_new_model.cpython-310.pyc +0 -0
  96. simpledomcontrol-0.4.8/sdc_core/management/commands/__pycache__/sdc_new_model.cpython-39.pyc +0 -0
  97. simpledomcontrol-0.4.8/sdc_core/management/commands/__pycache__/sdc_update_links.cpython-310.pyc +0 -0
  98. simpledomcontrol-0.4.8/sdc_core/management/commands/__pycache__/sdc_update_url.cpython-310.pyc +0 -0
  99. simpledomcontrol-0.4.8/sdc_core/management/commands/__pycache__/sdc_update_url.cpython-39.pyc +0 -0
  100. simpledomcontrol-0.4.8/sdc_core/management/commands/__pycache__/sdc_update_version.cpython-310.pyc +0 -0
  101. simpledomcontrol-0.4.8/sdc_core/management/commands/__pycache__/sdc_update_version.cpython-39.pyc +0 -0
  102. simpledomcontrol-0.4.8/sdc_core/management/commands/init_add/__pycache__/__init__.cpython-310.pyc +0 -0
  103. simpledomcontrol-0.4.8/sdc_core/management/commands/init_add/__pycache__/__init__.cpython-39.pyc +0 -0
  104. simpledomcontrol-0.4.8/sdc_core/management/commands/init_add/__pycache__/add_controller_manager.cpython-310.pyc +0 -0
  105. simpledomcontrol-0.4.8/sdc_core/management/commands/init_add/__pycache__/add_controller_manager.cpython-39.pyc +0 -0
  106. simpledomcontrol-0.4.8/sdc_core/management/commands/init_add/__pycache__/add_model_manager.cpython-310.pyc +0 -0
  107. simpledomcontrol-0.4.8/sdc_core/management/commands/init_add/__pycache__/add_model_manager.cpython-39.pyc +0 -0
  108. simpledomcontrol-0.4.8/sdc_core/management/commands/init_add/__pycache__/options.cpython-310.pyc +0 -0
  109. simpledomcontrol-0.4.8/sdc_core/management/commands/init_add/__pycache__/options.cpython-39.pyc +0 -0
  110. simpledomcontrol-0.4.8/sdc_core/management/commands/init_add/__pycache__/sdc_core_manager.cpython-310.pyc +0 -0
  111. simpledomcontrol-0.4.8/sdc_core/management/commands/init_add/__pycache__/sdc_core_manager.cpython-39.pyc +0 -0
  112. simpledomcontrol-0.4.8/sdc_core/management/commands/init_add/__pycache__/settings_manager.cpython-310.pyc +0 -0
  113. simpledomcontrol-0.4.8/sdc_core/management/commands/init_add/__pycache__/settings_manager.cpython-39.pyc +0 -0
  114. simpledomcontrol-0.4.8/sdc_core/management/commands/init_add/__pycache__/utils.cpython-310.pyc +0 -0
  115. simpledomcontrol-0.4.8/sdc_core/management/commands/init_add/__pycache__/utils.cpython-39.pyc +0 -0
  116. simpledomcontrol-0.4.8/sdc_core/sdc_extentions/__pycache__/__init__.cpython-310.pyc +0 -0
  117. simpledomcontrol-0.4.8/sdc_core/sdc_extentions/__pycache__/forms.cpython-310.pyc +0 -0
  118. simpledomcontrol-0.4.8/sdc_core/sdc_extentions/__pycache__/import_manager.cpython-310.pyc +0 -0
  119. simpledomcontrol-0.4.8/sdc_core/sdc_extentions/__pycache__/models.cpython-310.pyc +0 -0
  120. simpledomcontrol-0.4.8/sdc_core/sdc_extentions/__pycache__/response.cpython-310.pyc +0 -0
  121. simpledomcontrol-0.4.8/sdc_core/sdc_extentions/__pycache__/search.cpython-310.pyc +0 -0
  122. simpledomcontrol-0.4.8/sdc_core/sdc_extentions/__pycache__/views.cpython-310.pyc +0 -0
  123. simpledomcontrol-0.4.8/sdc_core/template_files/Assets/gulpfile.jsx +0 -139
  124. simpledomcontrol-0.4.8/sdc_core/template_files/Assets/src/index.organizer.js +0 -11
  125. simpledomcontrol-0.4.8/sdc_core/template_files/Assets/tests/pre-test-setup.js +0 -19
  126. simpledomcontrol-0.4.8/sdc_core/template_files/Assets/tests/test-setup.js +0 -6
  127. simpledomcontrol-0.4.8/sdc_core/template_files/js_test.js.txt +0 -8
  128. simpledomcontrol-0.4.8/sdc_core/template_files/package.json +0 -59
  129. simpledomcontrol-0.4.8/sdc_tools/Assets/tests/sdc_tools.test.js +0 -20
  130. simpledomcontrol-0.4.8/sdc_tools/migrations/__pycache__/__init__.cpython-310.pyc +0 -0
  131. simpledomcontrol-0.4.8/sdc_tools/templates/sdc_tools/sdc/sdc_error.html +0 -4
  132. simpledomcontrol-0.4.8/sdc_tools/templatetags/__pycache__/__init__.cpython-310.pyc +0 -0
  133. simpledomcontrol-0.4.8/sdc_tools/templatetags/__pycache__/addclass.cpython-310.pyc +0 -0
  134. simpledomcontrol-0.4.8/sdc_tools/templatetags/__pycache__/indexfilter.cpython-310.pyc +0 -0
  135. simpledomcontrol-0.4.8/sdc_tools/templatetags/__pycache__/sdc_filter.cpython-310.pyc +0 -0
  136. simpledomcontrol-0.4.8/sdc_user/migrations/__pycache__/__init__.cpython-310.pyc +0 -0
  137. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/management/commands/sdc_get_controller_url.py +0 -0
  138. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/management/commands/sdc_get_model_infos.py +0 -0
  139. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/management/commands/sdc_is_installed.py +0 -0
  140. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/sdc_extentions/__init__.py +0 -0
  141. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/sdc_extentions/models.py +0 -0
  142. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/template_files/Assets/src/index.style.scss +0 -0
  143. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/template_files/controller/template_test.js.text +0 -0
  144. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/template_files/models/detail.html +0 -0
  145. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_core/template_files/models/list.html +0 -0
  146. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/Assets/src/sdc_tools/controller/sdc_alert_messenger/sdc_alert_messenger.scss +0 -0
  147. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/Assets/src/sdc_tools/controller/sdc_auto_submit/sdc_auto_submit.js +0 -0
  148. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/Assets/src/sdc_tools/controller/sdc_detail_view/sdc_detail_view.js +0 -0
  149. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/Assets/src/sdc_tools/controller/sdc_detail_view/sdc_detail_view.scss +0 -0
  150. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/Assets/src/sdc_tools/controller/sdc_error/sdc_error.scss +0 -0
  151. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/Assets/src/sdc_tools/controller/sdc_list_view/sdc_list_view.js +0 -0
  152. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/Assets/src/sdc_tools/controller/sdc_list_view/sdc_list_view.scss +0 -0
  153. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/Assets/src/sdc_tools/controller/sdc_model_form/sdc_model_form.js +0 -0
  154. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/Assets/src/sdc_tools/controller/sdc_model_form/sdc_model_form.scss +0 -0
  155. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/Assets/src/sdc_tools/controller/sdc_navigation_client/sdc_navigation_client.js +0 -0
  156. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/Assets/src/sdc_tools/controller/sdc_navigator/sdc_navigator.scss +0 -0
  157. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/Assets/src/sdc_tools/controller/sdc_search_view/sdc_search_view.js +0 -0
  158. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/Assets/src/sdc_tools/controller/sdc_search_view/sdc_search_view.scss +0 -0
  159. {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
  160. {simpledomcontrol-0.4.8/sdc_user → simpledomcontrol-0.4.11/sdc_tools}/admin.py +0 -0
  161. {simpledomcontrol-0.4.8/sdc_user → simpledomcontrol-0.4.11/sdc_tools}/models.py +0 -0
  162. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/templates/sdc_tools/sdc/sdc_alert_messenger.html +0 -0
  163. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/templates/sdc_tools/sdc/sdc_detail_view.html +0 -0
  164. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/templates/sdc_tools/sdc/sdc_list_view.html +0 -0
  165. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/templates/sdc_tools/sdc/sdc_model_form.html +0 -0
  166. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_tools/templates/sdc_tools/sdc/sdc_search_view.html +0 -0
  167. {simpledomcontrol-0.4.8/sdc_user → simpledomcontrol-0.4.11/sdc_tools}/tests.py +0 -0
  168. {simpledomcontrol-0.4.8/sdc_user → simpledomcontrol-0.4.11/sdc_tools}/views.py +0 -0
  169. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_user/Assets/src/sdc_user/controller/sdc_login/sdc_login.js +0 -0
  170. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_user/Assets/src/sdc_user/controller/sdc_login/sdc_login.scss +0 -0
  171. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_user/Assets/src/sdc_user/controller/sdc_logout/sdc_logout.js +0 -0
  172. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_user/Assets/src/sdc_user/controller/sdc_logout/sdc_logout.scss +0 -0
  173. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_user/Assets/src/sdc_user/sdc_user.organizer.js +0 -0
  174. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_user/Assets/src/sdc_user/sdc_user.style.scss +0 -0
  175. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_user/Assets/tests/sdc_user.test.js +0 -0
  176. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_user/__init__.py +0 -0
  177. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_user/apps.py +0 -0
  178. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_user/migrations/__init__.py +0 -0
  179. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_user/sdc_urls.py +0 -0
  180. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_user/sdc_views.py +0 -0
  181. {simpledomcontrol-0.4.8 → simpledomcontrol-0.4.11}/sdc_user/templates/sdc_user/sdc/sdc_login.html +0 -0
  182. {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: simpledomcontrol
3
- Version: 0.4.8
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.9,<4.0
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.1.0,<24.0.0)
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.1.0,<5.0.0)
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 (>=4.2.7,<5.0.0)
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.8"
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.9"
21
+ python = "^3.10"
22
22
  daphne = "^4.0.0"
23
23
  channels = "^4.0.0"
24
- channels-redis = "^4.1.0"
25
- django = "^4.2.7"
24
+ channels-redis = "^4.2.0"
25
+ django = "^5.0.1"
26
26
  psycopg2-binary = "^2.9.9"
27
- attrs = "^23.1.0"
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"]
@@ -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 / 'templates/sdc_strings.json')
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
- elif json_data['event'] == 'sdc_add_group':
164
- if json_data['group'] not in self.group_list:
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
- if settings.DEBUG:
186
- extracted_list = traceback.extract_tb(e.__traceback__)
187
- traceback.print_tb(e.__traceback__)
188
- e_text = e.__str__() + '\n'.join([item for item in traceback.StackSummary.from_list(extracted_list).format()])
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
- self.queryset = json_data['args']['model_query']
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
- if event_type == 'model_edit_form':
260
+ elif event_type == 'model_edit_form':
257
261
  self._load_edit_form(json_data)
258
- if event_type == 'model_create_form':
262
+ elif event_type == 'model_create_form':
259
263
  self._load_create_form(json_data)
260
- if event_type == 'model_list_view':
264
+ elif event_type == 'model_list_view':
261
265
  self._load_list_view(json_data)
262
- if event_type == 'model_detail_view':
266
+ elif event_type == 'model_detail_view':
263
267
  self._load_detail_view(json_data)
264
- if event_type == 'model_save':
268
+ elif event_type == 'model_save':
265
269
  self._save_element(json_data)
266
- if event_type == 'model_create':
270
+ elif event_type == 'model_create':
267
271
  self._create_element(json_data)
268
- if event_type == 'model_upload':
272
+ elif event_type == 'model_upload':
269
273
  self._upload_file(json_data)
270
- if event_type == 'model_delete':
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