django-microsys 2.0.1__tar.gz → 2.0.3__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 (275) hide show
  1. {django_microsys-2.0.1 → django_microsys-2.0.3}/PKG-INFO +1 -1
  2. {django_microsys-2.0.1 → django_microsys-2.0.3}/django_microsys.egg-info/PKG-INFO +1 -1
  3. django_microsys-2.0.3/microsys/VERSION +1 -0
  4. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/forms/js/file_field.js +17 -0
  5. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/helpers/scan_link/js/scan_button.js +48 -6
  6. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/templates/microsys/forms/file_input.html +1 -0
  7. django_microsys-2.0.1/microsys/VERSION +0 -1
  8. {django_microsys-2.0.1 → django_microsys-2.0.3}/LICENSE +0 -0
  9. {django_microsys-2.0.1 → django_microsys-2.0.3}/MANIFEST.in +0 -0
  10. {django_microsys-2.0.1 → django_microsys-2.0.3}/README.md +0 -0
  11. {django_microsys-2.0.1 → django_microsys-2.0.3}/django_microsys.egg-info/SOURCES.txt +0 -0
  12. {django_microsys-2.0.1 → django_microsys-2.0.3}/django_microsys.egg-info/dependency_links.txt +0 -0
  13. {django_microsys-2.0.1 → django_microsys-2.0.3}/django_microsys.egg-info/entry_points.txt +0 -0
  14. {django_microsys-2.0.1 → django_microsys-2.0.3}/django_microsys.egg-info/requires.txt +0 -0
  15. {django_microsys-2.0.1 → django_microsys-2.0.3}/django_microsys.egg-info/top_level.txt +0 -0
  16. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/__init__.py +0 -0
  17. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/__main__.py +0 -0
  18. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/admin.py +0 -0
  19. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/api.py +0 -0
  20. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/apps.py +0 -0
  21. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/cli.py +0 -0
  22. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/constants.py +0 -0
  23. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/context_processors.py +0 -0
  24. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/discovery.py +0 -0
  25. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/fetcher.py +0 -0
  26. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/filters.py +0 -0
  27. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/formats/__init__.py +0 -0
  28. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/formats/ar/__init__.py +0 -0
  29. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/formats/ar/formats.py +0 -0
  30. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/formats/en/__init__.py +0 -0
  31. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/formats/en/formats.py +0 -0
  32. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/forms.py +0 -0
  33. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/management/commands/__init__.py +0 -0
  34. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/management/commands/microsys_check.py +0 -0
  35. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/management/commands/microsys_setup.py +0 -0
  36. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/management/commands/migrator.py +0 -0
  37. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/management/commands/seed_activity_log.py +0 -0
  38. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/managers.py +0 -0
  39. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/md2docx_v4.py +0 -0
  40. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/middleware.py +0 -0
  41. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/migrations/0001_initial.py +0 -0
  42. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/migrations/__init__.py +0 -0
  43. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/models.py +0 -0
  44. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/patches.py +0 -0
  45. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/scaffold.py +0 -0
  46. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/scaffold_templates/app/README.md.tmpl +0 -0
  47. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/scaffold_templates/app/__init__.py.tmpl +0 -0
  48. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/scaffold_templates/app/apps.py.tmpl +0 -0
  49. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/scaffold_templates/app/filters.py.tmpl +0 -0
  50. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/scaffold_templates/app/forms.py.tmpl +0 -0
  51. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/scaffold_templates/app/migrations/__init__.py.tmpl +0 -0
  52. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/scaffold_templates/app/models.py.tmpl +0 -0
  53. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/scaffold_templates/app/tables.py.tmpl +0 -0
  54. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/scaffold_templates/app/templates/example_record_confirm_delete.html.tmpl +0 -0
  55. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/scaffold_templates/app/templates/example_record_detail.html.tmpl +0 -0
  56. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/scaffold_templates/app/templates/example_record_form.html.tmpl +0 -0
  57. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/scaffold_templates/app/templates/example_record_list.html.tmpl +0 -0
  58. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/scaffold_templates/app/tests/__init__.py.tmpl +0 -0
  59. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/scaffold_templates/app/tests/test_app.py.tmpl +0 -0
  60. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/scaffold_templates/app/translations.py.tmpl +0 -0
  61. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/scaffold_templates/app/urls.py.tmpl +0 -0
  62. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/scaffold_templates/app/views.py.tmpl +0 -0
  63. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/scaffold_templates/project/.nginx/nginx.conf.tmpl +0 -0
  64. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/scaffold_templates/project/Dockerfile.tmpl +0 -0
  65. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/scaffold_templates/project/README.md.tmpl +0 -0
  66. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/scaffold_templates/project/compose.dev.yml.tmpl +0 -0
  67. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/scaffold_templates/project/compose.yml.tmpl +0 -0
  68. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/scaffold_templates/project/dockerignore.tmpl +0 -0
  69. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/scaffold_templates/project/docs/README.md.tmpl +0 -0
  70. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/scaffold_templates/project/entrypoint.sh.tmpl +0 -0
  71. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/scaffold_templates/project/gitattributes.tmpl +0 -0
  72. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/scaffold_templates/project/gitignore.tmpl +0 -0
  73. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/scaffold_templates/project/gunicorn.py.tmpl +0 -0
  74. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/scaffold_templates/project/manage.py.tmpl +0 -0
  75. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/scaffold_templates/project/package/__init__.py.tmpl +0 -0
  76. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/scaffold_templates/project/package/asgi.py.tmpl +0 -0
  77. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/scaffold_templates/project/package/celery.py.tmpl +0 -0
  78. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/scaffold_templates/project/package/settings.py.tmpl +0 -0
  79. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/scaffold_templates/project/package/urls.py.tmpl +0 -0
  80. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/scaffold_templates/project/package/wsgi.py.tmpl +0 -0
  81. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/scaffold_templates/project/req.txt.tmpl +0 -0
  82. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/scaffold_templates/project/start.ps1.tmpl +0 -0
  83. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/scaffold_templates/project/start.sh.tmpl +0 -0
  84. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/scaffold_templates/project/tests/__init__.py.tmpl +0 -0
  85. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/scaffold_templates/project/tests/test_scaffold.py.tmpl +0 -0
  86. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/signals.py +0 -0
  87. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/bootstrap/bootstrap-icons.css +0 -0
  88. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/bootstrap/bootstrap-icons.woff +0 -0
  89. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/bootstrap/bootstrap-icons.woff2 +0 -0
  90. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/bootstrap/bootstrap.bundle.min.js +0 -0
  91. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/bootstrap/bootstrap.bundle.min.js.map +0 -0
  92. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/bootstrap/bootstrap.min.css +0 -0
  93. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/bootstrap/bootstrap.min.css.map +0 -0
  94. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/bootstrap/bootstrap.rtl.min.css +0 -0
  95. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/bootstrap/bootstrap.rtl.min.css.map +0 -0
  96. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/chart.js/chart.umd.min.js +0 -0
  97. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/favicon.ico +0 -0
  98. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/flatpickr/flatpickr.min.css +0 -0
  99. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/flatpickr/flatpickr.min.js +0 -0
  100. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/flatpickr/locale/ar.d.ts +0 -0
  101. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/flatpickr/locale/ar.js +0 -0
  102. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/img/base_logo.webp +0 -0
  103. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/img/default_profile.webp +0 -0
  104. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/img/login_logo.webp +0 -0
  105. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/accessibility/css/main.css +0 -0
  106. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/accessibility/js/main.js +0 -0
  107. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/activitylog/js/main.js +0 -0
  108. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/forms/css/file_field.css +0 -0
  109. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/forms/css/form_actions.css +0 -0
  110. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/forms/css/form_fields.css +0 -0
  111. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/forms/js/filter_form.js +0 -0
  112. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/helpers/autofill/js/main.js +0 -0
  113. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/helpers/context_menu/css/main.css +0 -0
  114. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/helpers/context_menu/js/main.js +0 -0
  115. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/helpers/context_menu/js/section_manager.js +0 -0
  116. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/helpers/dynamic_modal/js/main.js +0 -0
  117. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/helpers/prevent_double_submit.js +0 -0
  118. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/helpers/scan_link/js/main.js +0 -0
  119. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/helpers/wizard/js/main.js +0 -0
  120. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/language/css/main.css +0 -0
  121. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/language/fonts/TwemojiCountryFlags.woff2 +0 -0
  122. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/language/js/main.js +0 -0
  123. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/language/js/translations.js +0 -0
  124. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/main/css/buttons.css +0 -0
  125. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/main/css/charts.css +0 -0
  126. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/main/css/doc_detail.css +0 -0
  127. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/main/css/dropdowns.css +0 -0
  128. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/main/css/gen_pdf.css +0 -0
  129. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/main/css/gen_report.css +0 -0
  130. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/main/css/index_cards.css +0 -0
  131. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/main/css/main.css +0 -0
  132. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/main/css/navtabs.css +0 -0
  133. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/main/css/pagination.css +0 -0
  134. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/main/css/selectors.css +0 -0
  135. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/main/css/system_setup.css +0 -0
  136. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/main/css/tables.css +0 -0
  137. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/main/css/titlebar.css +0 -0
  138. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/main/fonts/Amiri-Bold.woff2 +0 -0
  139. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/main/fonts/Amiri-BoldItalic.woff2 +0 -0
  140. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/main/fonts/Amiri-Italic.woff2 +0 -0
  141. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/main/fonts/Amiri-Regular.woff2 +0 -0
  142. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/main/fonts/Shabwa-Bold.woff2 +0 -0
  143. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/main/fonts/Shabwa-Medium.woff2 +0 -0
  144. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/main/fonts/Shabwa.woff2 +0 -0
  145. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/main/js/anime.min.js +0 -0
  146. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/main/js/selectors.js +0 -0
  147. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/main/js/system_setup.js +0 -0
  148. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/main/js/tables.js +0 -0
  149. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/sidebar/css/main.css +0 -0
  150. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/sidebar/css/reorder.css +0 -0
  151. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/sidebar/css/theme_picker.css +0 -0
  152. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/sidebar/js/main.js +0 -0
  153. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/sidebar/js/reorder.js +0 -0
  154. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/sidebar/js/theme_picker.js +0 -0
  155. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/themes/css/blue.css +0 -0
  156. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/themes/css/dark.css +0 -0
  157. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/themes/css/gold.css +0 -0
  158. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/themes/css/gothic.css +0 -0
  159. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/themes/css/green.css +0 -0
  160. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/themes/css/light.css +0 -0
  161. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/themes/css/main.css +0 -0
  162. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/themes/css/mono.css +0 -0
  163. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/themes/css/neon.css +0 -0
  164. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/themes/css/red.css +0 -0
  165. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/themes/css/retro.css +0 -0
  166. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/themes/js/main.js +0 -0
  167. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/tutorial/css/main.css +0 -0
  168. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/tutorial/js/driver.js +0 -0
  169. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/tutorial/js/main.js +0 -0
  170. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/users/css/login.css +0 -0
  171. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/users/css/permissions.css +0 -0
  172. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/users/css/profile.css +0 -0
  173. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/users/css/user_hub.css +0 -0
  174. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/users/js/login.js +0 -0
  175. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/users/js/manage_users.js +0 -0
  176. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/users/js/permissions.js +0 -0
  177. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/users/js/profile_2fa.js +0 -0
  178. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/microsys/users/js/user_hub.js +0 -0
  179. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/vanillajs-datepicker/ar.js +0 -0
  180. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/vanillajs-datepicker/datepicker-bs5.min.css +0 -0
  181. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/static/vanillajs-datepicker/datepicker.min.js +0 -0
  182. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/tables.py +0 -0
  183. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/templates/bootstrap5/layout/field_file.html +0 -0
  184. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/templates/microsys/2fa/verify.html +0 -0
  185. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/templates/microsys/activitylog/activity_log.html +0 -0
  186. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/templates/microsys/activitylog/activity_log_detail_modal.html +0 -0
  187. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/templates/microsys/base.html +0 -0
  188. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/templates/microsys/form_base.html +0 -0
  189. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/templates/microsys/forms/assets_head.html +0 -0
  190. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/templates/microsys/forms/assets_scripts.html +0 -0
  191. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/templates/microsys/forms/checkbox_field.html +0 -0
  192. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/templates/microsys/forms/crispy_file_field.html +0 -0
  193. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/templates/microsys/forms/file_field.html +0 -0
  194. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/templates/microsys/forms/filter_assets_head.html +0 -0
  195. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/templates/microsys/forms/filter_assets_scripts.html +0 -0
  196. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/templates/microsys/helpers/dynamic_modal.html +0 -0
  197. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/templates/microsys/helpers/dynamic_modal_combined.html +0 -0
  198. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/templates/microsys/helpers/dynamic_modal_detail.html +0 -0
  199. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/templates/microsys/helpers/dynamic_modal_form.html +0 -0
  200. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/templates/microsys/helpers/dynamic_modal_list.html +0 -0
  201. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/templates/microsys/helpers/global_list.html +0 -0
  202. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/templates/microsys/helpers/micro_context_menu.html +0 -0
  203. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/templates/microsys/helpers/scan_link.html +0 -0
  204. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/templates/microsys/includes/dashboard.html +0 -0
  205. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/templates/microsys/includes/language_catalog_editor.html +0 -0
  206. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/templates/microsys/includes/language_previews.html +0 -0
  207. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/templates/microsys/includes/options.html +0 -0
  208. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/templates/microsys/includes/sidebar_builder.html +0 -0
  209. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/templates/microsys/includes/sidebar_density_previews.html +0 -0
  210. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/templates/microsys/includes/sidebar_items.html +0 -0
  211. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/templates/microsys/includes/system_names_editor.html +0 -0
  212. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/templates/microsys/includes/system_setup.html +0 -0
  213. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/templates/microsys/includes/table_density_previews.html +0 -0
  214. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/templates/microsys/includes/theme_previews.html +0 -0
  215. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/templates/microsys/includes/theme_settings_matrix.html +0 -0
  216. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/templates/microsys/includes/titlebar.html +0 -0
  217. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/templates/microsys/includes/translation_matrix_editor.html +0 -0
  218. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/templates/microsys/includes/tutorial.html +0 -0
  219. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/templates/microsys/list_base.html +0 -0
  220. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/templates/microsys/scopes/scope_actions.html +0 -0
  221. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/templates/microsys/scopes/scope_form.html +0 -0
  222. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/templates/microsys/scopes/scope_manager.html +0 -0
  223. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/templates/microsys/sections/manage_sections.html +0 -0
  224. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/templates/microsys/sections/subsection_select.html +0 -0
  225. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/templates/microsys/sidebar/auto.html +0 -0
  226. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/templates/microsys/sidebar/extra_groups.html +0 -0
  227. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/templates/microsys/sidebar/main.html +0 -0
  228. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/templates/microsys/sidebar/tree.html +0 -0
  229. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/templates/microsys/tables/table.html +0 -0
  230. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/templates/microsys/users/grouped_permissions.html +0 -0
  231. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/templates/microsys/users/manage_users.html +0 -0
  232. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/templates/microsys/users/profile.html +0 -0
  233. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/templates/microsys/users/user_detail_modal.html +0 -0
  234. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/templates/microsys/users/user_form.html +0 -0
  235. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/templates/microsys/users/user_hub.html +0 -0
  236. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/templates/microsys/widgets/profile_image_widget.html +0 -0
  237. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/templates/registration/login.html +0 -0
  238. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/templatetags/__init__.py +0 -0
  239. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/templatetags/microsys_tags.py +0 -0
  240. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/templatetags/microsys_translation.py +0 -0
  241. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/templatetags/sidebar_tags.py +0 -0
  242. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/tests/__init__.py +0 -0
  243. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/tests/test_all.py +0 -0
  244. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/tests/test_api.py +0 -0
  245. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/tests/test_context_processors.py +0 -0
  246. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/tests/test_defaults_and_urls.py +0 -0
  247. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/tests/test_m2m.py +0 -0
  248. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/tests/test_middleware.py +0 -0
  249. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/tests/test_models.py +0 -0
  250. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/tests/test_scaffold.py +0 -0
  251. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/tests/test_sidebar_discovery.py +0 -0
  252. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/tests/test_signals.py +0 -0
  253. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/tests/test_tables.py +0 -0
  254. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/tests/test_utils.py +0 -0
  255. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/tests/test_utils_discovery.py +0 -0
  256. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/tests/test_views.py +0 -0
  257. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/tests/urls_with_prefix_mount.py +0 -0
  258. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/tests/urls_with_root_index.py +0 -0
  259. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/tests/verify_detailed_logs.py +0 -0
  260. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/themes.py +0 -0
  261. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/translations.py +0 -0
  262. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/urls.py +0 -0
  263. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/utils.py +0 -0
  264. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/views/__init__.py +0 -0
  265. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/views/activitylog.py +0 -0
  266. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/views/general.py +0 -0
  267. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/views/profile.py +0 -0
  268. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/views/scopes.py +0 -0
  269. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/views/sections.py +0 -0
  270. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/views/sidebar.py +0 -0
  271. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/views/twofa.py +0 -0
  272. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/views/users.py +0 -0
  273. {django_microsys-2.0.1 → django_microsys-2.0.3}/microsys/widgets.py +0 -0
  274. {django_microsys-2.0.1 → django_microsys-2.0.3}/pyproject.toml +0 -0
  275. {django_microsys-2.0.1 → django_microsys-2.0.3}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: django_microsys
3
- Version: 2.0.1
3
+ Version: 2.0.3
4
4
  Summary: Django microSYS (System Integration Service) - Multilingual Django Starter Pack, Packed with Features.
5
5
  Author-email: DeBeski <debeski1@gmail.com>
6
6
  License: NON-COMMERCIAL
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: django-microsys
3
- Version: 2.0.1
3
+ Version: 2.0.3
4
4
  Summary: Django microSYS (System Integration Service) - Multilingual Django Starter Pack, Packed with Features.
5
5
  Author-email: DeBeski <debeski1@gmail.com>
6
6
  License: NON-COMMERCIAL
@@ -0,0 +1 @@
1
+ 2.0.3
@@ -88,6 +88,7 @@
88
88
  const input = widget.querySelector('[data-archive-file-input="true"]');
89
89
  const drop = widget.querySelector("[data-archive-file-drop]");
90
90
  const uploadButton = widget.querySelector("[data-archive-file-upload]");
91
+ const scanButton = widget.querySelector("[data-archive-file-scan]");
91
92
  const clearButton = widget.querySelector("[data-archive-file-clear]");
92
93
  const clearCheckbox = widget.querySelector(".archive-file-clear-checkbox");
93
94
 
@@ -101,7 +102,23 @@
101
102
  });
102
103
  }
103
104
 
105
+ if (scanButton) {
106
+ ["pointerdown", "pointerup", "mousedown", "mouseup", "click", "dblclick"].forEach((eventName) => {
107
+ scanButton.addEventListener(eventName, function (event) {
108
+ event.preventDefault();
109
+ event.stopPropagation();
110
+ if (typeof event.stopImmediatePropagation === "function") {
111
+ event.stopImmediatePropagation();
112
+ }
113
+ });
114
+ });
115
+ }
116
+
104
117
  drop.addEventListener("click", function (event) {
118
+ if (event.target.closest("[data-archive-file-upload]")) return;
119
+ if (event.target.closest("[data-archive-file-scan]")) return;
120
+ if (event.target.closest("[data-archive-file-clear]")) return;
121
+ if (event.target.closest("[data-archive-file-link]")) return;
105
122
  if (event.target.closest("a, button")) return;
106
123
  input.click();
107
124
  });
@@ -18,6 +18,37 @@
18
18
  };
19
19
  }
20
20
 
21
+ function widgetForButton(button) {
22
+ return button.closest("[data-archive-file-widget]");
23
+ }
24
+
25
+ function setWidgetStatus(button, message) {
26
+ const widget = widgetForButton(button);
27
+ if (!widget) return;
28
+
29
+ const meta = widget.querySelector("[data-archive-file-meta]");
30
+ if (!meta) return;
31
+
32
+ if (!button.dataset.scanOriginalMeta) {
33
+ button.dataset.scanOriginalMeta = meta.textContent || "";
34
+ }
35
+
36
+ meta.textContent = message;
37
+ }
38
+
39
+ function restoreWidgetStatus(button) {
40
+ const widget = widgetForButton(button);
41
+ if (!widget) return;
42
+
43
+ const meta = widget.querySelector("[data-archive-file-meta]");
44
+ if (!meta) return;
45
+
46
+ if (button.dataset.scanOriginalMeta !== undefined) {
47
+ meta.textContent = button.dataset.scanOriginalMeta;
48
+ delete button.dataset.scanOriginalMeta;
49
+ }
50
+ }
51
+
21
52
  function setVisualState(button, state, title) {
22
53
  const icons = {
23
54
  idle: '<i class="bi bi-printer"></i>',
@@ -37,12 +68,14 @@
37
68
  button.disabled = false;
38
69
  delete button.dataset.scanJobId;
39
70
  delete button.dataset.scanBusyFlag;
71
+ restoreWidgetStatus(button);
40
72
  setVisualState(button, "idle", messages.label);
41
73
  }
42
74
 
43
75
  function setWorkingState(button, message) {
44
76
  button.disabled = true;
45
77
  button.dataset.scanBusyFlag = "true";
78
+ setWidgetStatus(button, message);
46
79
  setVisualState(button, "working", message);
47
80
  }
48
81
 
@@ -50,6 +83,7 @@
50
83
  const messages = messagesFor(button);
51
84
  button.disabled = false;
52
85
  delete button.dataset.scanBusyFlag;
86
+ restoreWidgetStatus(button);
53
87
  setVisualState(button, "complete", messages.completed);
54
88
  }
55
89
 
@@ -99,10 +133,8 @@
99
133
  }
100
134
 
101
135
  function assignBlobToInput(fileInput, blob) {
102
- const safeName = (fileInput.name || fileInput.id || "scanned_document")
103
- .replace(/[^a-z0-9_-]+/gi, "_")
104
- .replace(/^_+|_+$/g, "") || "scanned_document";
105
- const file = new File([blob], `${safeName}.pdf`, { type: "application/pdf" });
136
+ const timestamp = new Date().toISOString().replace(/[:.]/g, "-");
137
+ const file = new File([blob], `scanned-document-${timestamp}.pdf`, { type: "application/pdf" });
106
138
  const dataTransfer = new DataTransfer();
107
139
  dataTransfer.items.add(file);
108
140
  fileInput.files = dataTransfer.files;
@@ -154,7 +186,13 @@
154
186
  document.querySelectorAll(".scan-btn").forEach((button) => {
155
187
  setVisualState(button, "idle", messagesFor(button).label);
156
188
 
157
- button.addEventListener("click", async function () {
189
+ button.addEventListener("click", async function (event) {
190
+ event.preventDefault();
191
+ event.stopPropagation();
192
+ if (typeof event.stopImmediatePropagation === "function") {
193
+ event.stopImmediatePropagation();
194
+ }
195
+
158
196
  if (button.dataset.scanBusyFlag === "true") {
159
197
  return;
160
198
  }
@@ -191,12 +229,15 @@
191
229
  button.dataset.scanJobId = jobId;
192
230
  activeButtonsByJobId.set(jobId, button);
193
231
 
194
- const blob = await scanner.waitForResult(jobId);
232
+ const blob = await scanner.waitForResult(jobId, {
233
+ timeoutMs: 5 * 60 * 1000,
234
+ });
195
235
  assignBlobToInput(fileInput, blob);
196
236
  setCompletedState(button);
197
237
  } catch (error) {
198
238
  const message = resolveErrorMessage(button, error);
199
239
  resetButton(button);
240
+ setWidgetStatus(button, message);
200
241
  showButtonError(button, message);
201
242
  } finally {
202
243
  if (jobId) {
@@ -204,6 +245,7 @@
204
245
  }
205
246
  delete button.dataset.scanJobId;
206
247
  if (button.innerHTML.indexOf("bi-check-lg") === -1) {
248
+ button.disabled = false;
207
249
  delete button.dataset.scanBusyFlag;
208
250
  }
209
251
  }
@@ -56,6 +56,7 @@
56
56
  data-scan-busy="{{ MS_TRANS.scan_busy_message|default:'Another scan is already running. Wait for it to finish, then try again.' }}"
57
57
  data-scan-cancelled="{{ MS_TRANS.scan_cancelled_message|default:'The scan was cancelled.' }}"
58
58
  data-scan-timeout="{{ MS_TRANS.scan_timeout_message|default:'The scan took too long to finish.' }}"
59
+ data-scan-stalled="{{ MS_TRANS.scan_stalled_message|default:'The scan helper appears to be stuck. Check the ScanLink tray app, scanner dialog, or scanner driver and try again.' }}"
59
60
  data-scan-no-scanners="{{ MS_TRANS.scan_no_scanners_message|default:'No TWAIN scanner is available on this computer.' }}"
60
61
  data-scan-open-source="{{ MS_TRANS.scan_open_source_failed_message|default:'The selected scanner could not be opened.' }}"
61
62
  data-scan-failed="{{ MS_TRANS.scan_failed_message|default:'The scan could not be completed.' }}"
@@ -1 +0,0 @@
1
- 2.0.1
File without changes