Bloomerp 1.0.0.dev36__tar.gz → 1.0.0.dev38__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 (893) hide show
  1. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/Bloomerp.egg-info/PKG-INFO +1 -1
  2. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/Bloomerp.egg-info/SOURCES.txt +18 -1
  3. bloomerp-1.0.0.dev38/Bloomerp.egg-info/entry_points.txt +2 -0
  4. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/PKG-INFO +1 -1
  5. bloomerp-1.0.0.dev38/bloomerp/cli/__init__.py +3 -0
  6. bloomerp-1.0.0.dev38/bloomerp/cli/main.py +104 -0
  7. bloomerp-1.0.0.dev38/bloomerp/cli/template_project/<app-name>/admin.py +1 -0
  8. bloomerp-1.0.0.dev38/bloomerp/cli/template_project/<app-name>/apps.py +6 -0
  9. bloomerp-1.0.0.dev38/bloomerp/cli/template_project/<app-name>/migrations/__init__.py +1 -0
  10. bloomerp-1.0.0.dev38/bloomerp/cli/template_project/<app-name>/models/sample.py +10 -0
  11. bloomerp-1.0.0.dev38/bloomerp/cli/template_project/<app-name>/views/sample.py +17 -0
  12. bloomerp-1.0.0.dev38/bloomerp/cli/template_project/config/__init__.py +1 -0
  13. bloomerp-1.0.0.dev38/bloomerp/cli/template_project/config/asgi.py +7 -0
  14. bloomerp-1.0.0.dev38/bloomerp/cli/template_project/config/settings/base.py +67 -0
  15. bloomerp-1.0.0.dev38/bloomerp/cli/template_project/config/settings/bloomerp.py +29 -0
  16. bloomerp-1.0.0.dev38/bloomerp/cli/template_project/config/urls.py +7 -0
  17. bloomerp-1.0.0.dev38/bloomerp/cli/template_project/config/wsgi.py +7 -0
  18. bloomerp-1.0.0.dev38/bloomerp/cli/template_project/manage.py +20 -0
  19. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/components/detail_tabs_preference.py +11 -6
  20. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/components/global_search.py +57 -22
  21. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/config/definition.py +4 -1
  22. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/field_types.py +16 -1
  23. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/models/users/user_detail_view_preference.py +12 -4
  24. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/services/detail_view_services.py +109 -34
  25. bloomerp-1.0.0.dev38/bloomerp/static/bloomerp/css/dist/styles.css +2 -0
  26. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/main.js +2 -2
  27. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/main.js.map +1 -1
  28. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/components/global_search.html +47 -10
  29. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/detail_views/bloomerp_base_detail_view.html +39 -0
  30. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/views/mixins/htmx_mixin.py +1 -0
  31. bloomerp-1.0.0.dev38/bloomerp/workspaces/canvas_tile/__init__.py +0 -0
  32. bloomerp-1.0.0.dev38/bloomerp/workspaces/dataview_tile/__init__.py +0 -0
  33. bloomerp-1.0.0.dev38/bloomerp/workspaces/links_tile/__init__.py +0 -0
  34. bloomerp-1.0.0.dev38/bloomerp/workspaces/text_tile/__init__.py +1 -0
  35. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/pyproject.toml +2 -2
  36. bloomerp-1.0.0.dev36/Bloomerp.egg-info/entry_points.txt +0 -2
  37. bloomerp-1.0.0.dev36/bloomerp/cli.py +0 -342
  38. bloomerp-1.0.0.dev36/bloomerp/static/bloomerp/css/dist/styles.css +0 -2
  39. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/Bloomerp.egg-info/dependency_links.txt +0 -0
  40. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/Bloomerp.egg-info/requires.txt +0 -0
  41. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/Bloomerp.egg-info/top_level.txt +0 -0
  42. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/README.md +0 -0
  43. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/__init__.py +0 -0
  44. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/admin.py +0 -0
  45. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/apps.py +0 -0
  46. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/auth.py +0 -0
  47. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/automation/actions/__init__.py +0 -0
  48. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/automation/actions/call_api.py +0 -0
  49. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/automation/actions/create_object.py +0 -0
  50. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/automation/actions/delete_object.py +0 -0
  51. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/automation/actions/send_email.py +0 -0
  52. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/automation/base_executor.py +0 -0
  53. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/automation/defintion.py +0 -0
  54. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/automation/flows/__init__.py +0 -0
  55. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/automation/flows/if_condition.py +0 -0
  56. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/automation/triggers/base.py +0 -0
  57. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/automation/triggers/human_trigger.py +0 -0
  58. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/automation/triggers/object_crud_trigger.py +0 -0
  59. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/automation/triggers/webhook_trigger.py +0 -0
  60. {bloomerp-1.0.0.dev36/bloomerp/workspaces/text_tile → bloomerp-1.0.0.dev38/bloomerp/cli/template_project/<app-name>}/__init__.py +0 -0
  61. {bloomerp-1.0.0.dev36/bloomerp/form_fields → bloomerp-1.0.0.dev38/bloomerp/cli/template_project/<app-name>/models}/__init__.py +0 -0
  62. {bloomerp-1.0.0.dev36/bloomerp/migrations → bloomerp-1.0.0.dev38/bloomerp/cli/template_project/<app-name>/views}/__init__.py +0 -0
  63. {bloomerp-1.0.0.dev36/bloomerp/modules → bloomerp-1.0.0.dev38/bloomerp/cli/template_project/config/settings}/__init__.py +0 -0
  64. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/components/access_control/preview_permissions_table.py +0 -0
  65. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/components/application_fields/filters.py +0 -0
  66. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/components/automation/render_workflow_node.py +0 -0
  67. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/components/bookmark.py +0 -0
  68. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/components/bulk_actions/bulk_upload.py +0 -0
  69. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/components/comments.py +0 -0
  70. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/components/detail_tabs_folder_modal.py +0 -0
  71. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/components/document_templates/generate_document_template.py +0 -0
  72. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/components/execute_sql_query.py +0 -0
  73. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/components/files.py +0 -0
  74. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/components/llm/ai_conversations.py +0 -0
  75. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/components/objects/bulk_update_objects.py +0 -0
  76. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/components/objects/crud_object.py +0 -0
  77. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/components/objects/dataview.py +0 -0
  78. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/components/objects/delete_object.py +0 -0
  79. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/components/objects/object_preview.py +0 -0
  80. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/components/objects/search_objects.py +0 -0
  81. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/components/project_management/create_todo.py +0 -0
  82. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/components/project_management/todos.py +0 -0
  83. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/components/sign_file.py +0 -0
  84. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/components/todos.py +0 -0
  85. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/components/workspaces/available_workspace_tiles.py +0 -0
  86. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/components/workspaces/crud_layout_available_fields.py +0 -0
  87. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/components/workspaces/crud_layout_preference.py +0 -0
  88. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/components/workspaces/crud_layout_render_field.py +0 -0
  89. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/components/workspaces/delete_workspace.py +0 -0
  90. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/components/workspaces/edit_workspace.py +0 -0
  91. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/components/workspaces/preview_workspace_tile.py +0 -0
  92. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/components/workspaces/render_workspace_tile.py +0 -0
  93. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/components/workspaces/save_workspace_layout.py +0 -0
  94. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/components/workspaces/share_workspace.py +0 -0
  95. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/components/workspaces/sidebar.py +0 -0
  96. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/config/__init__.py +0 -0
  97. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/config/settings.py +0 -0
  98. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/config/validator.py +0 -0
  99. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/consumers.py +0 -0
  100. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/context_processors.py +0 -0
  101. {bloomerp-1.0.0.dev36/bloomerp/services → bloomerp-1.0.0.dev38/bloomerp/form_fields}/__init__.py +0 -0
  102. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/form_fields/icon_field.py +0 -0
  103. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/forms/auth.py +0 -0
  104. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/forms/bulk_upload_form.py +0 -0
  105. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/forms/core.py +0 -0
  106. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/forms/document_templates.py +0 -0
  107. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/forms/layouts.py +0 -0
  108. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/forms/model_form.py +0 -0
  109. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/forms/sidebar.py +0 -0
  110. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/forms/widgets.py +0 -0
  111. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/forms/workspaces.py +0 -0
  112. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/management/commands/create_sdk.py +0 -0
  113. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/management/commands/get_urls.py +0 -0
  114. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/management/commands/save_application_fields.py +0 -0
  115. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/management/commands/validate_bloomerp.py +0 -0
  116. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/middleware.py +0 -0
  117. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/migrations/0001_initial.py +0 -0
  118. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/migrations/0002_workspace_single_module_context.py +0 -0
  119. {bloomerp-1.0.0.dev36/bloomerp/tasks → bloomerp-1.0.0.dev38/bloomerp/migrations}/__init__.py +0 -0
  120. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/model_fields/code_field.py +0 -0
  121. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/model_fields/file_field.py +0 -0
  122. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/model_fields/icon_field.py +0 -0
  123. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/model_fields/status_field.py +0 -0
  124. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/model_fields/text_editor_field.py +0 -0
  125. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/model_fields/user_field.py +0 -0
  126. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/models/__init__.py +0 -0
  127. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/models/access_control/__init__.py +0 -0
  128. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/models/access_control/field_policy.py +0 -0
  129. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/models/access_control/policy.py +0 -0
  130. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/models/access_control/row_policy.py +0 -0
  131. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/models/access_control/row_policy_rule.py +0 -0
  132. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/models/activity_log.py +0 -0
  133. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/models/application_field.py +0 -0
  134. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/models/automation/__init__.py +0 -0
  135. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/models/automation/workflow.py +0 -0
  136. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/models/automation/workflow_edge.py +0 -0
  137. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/models/automation/workflow_node.py +0 -0
  138. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/models/automation/workflow_run.py +0 -0
  139. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/models/base_bloomerp_model.py +0 -0
  140. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/models/communication/__init__.py +0 -0
  141. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/models/communication/comment.py +0 -0
  142. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/models/communication/mention.py +0 -0
  143. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/models/communication/message.py +0 -0
  144. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/models/communication/signature_request.py +0 -0
  145. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/models/definition.py +0 -0
  146. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/models/document_templates/__init__.py +0 -0
  147. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/models/document_templates/document_tempate_styling.py +0 -0
  148. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/models/document_templates/document_template.py +0 -0
  149. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/models/document_templates/document_template_free_variable.py +0 -0
  150. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/models/document_templates/document_template_header.py +0 -0
  151. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/models/files/__init__.py +0 -0
  152. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/models/files/file.py +0 -0
  153. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/models/files/file_folder.py +0 -0
  154. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/models/llm/__init__.py +0 -0
  155. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/models/llm/ai_conversation.py +0 -0
  156. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/models/mixins/__init__.py +0 -0
  157. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/models/mixins/absolute_url_model_mixin.py +0 -0
  158. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/models/mixins/avatar_model_mixin.py +0 -0
  159. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/models/mixins/content_layout_model_mixin.py +0 -0
  160. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/models/mixins/string_search_model_mixin.py +0 -0
  161. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/models/mixins/timestamp_model_mixin.py +0 -0
  162. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/models/mixins/user_stamp_model_mixin.py +0 -0
  163. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/models/mixins/uuid_model_mixin.py +0 -0
  164. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/models/project_management/__init__.py +0 -0
  165. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/models/project_management/todo.py +0 -0
  166. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/models/project_management/todo_label.py +0 -0
  167. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/models/users/__init__.py +0 -0
  168. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/models/users/bookmark.py +0 -0
  169. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/models/users/user.py +0 -0
  170. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/models/users/user_create_view_preference.py +0 -0
  171. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/models/users/user_list_view_preference.py +0 -0
  172. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/models/workspaces/__init__.py +0 -0
  173. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/models/workspaces/database_connection.py +0 -0
  174. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/models/workspaces/sidebar.py +0 -0
  175. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/models/workspaces/sidebar_item.py +0 -0
  176. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/models/workspaces/sql_query.py +0 -0
  177. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/models/workspaces/tile.py +0 -0
  178. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/models/workspaces/workspace.py +0 -0
  179. {bloomerp-1.0.0.dev36/bloomerp/views → bloomerp-1.0.0.dev38/bloomerp/modules}/__init__.py +0 -0
  180. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/modules/automation.py +0 -0
  181. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/modules/core.py +0 -0
  182. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/modules/definition.py +0 -0
  183. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/modules/misc.py +0 -0
  184. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/modules/users.py +0 -0
  185. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/router.py +0 -0
  186. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/routing.py +0 -0
  187. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/sdk/base.py +0 -0
  188. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/sdk/javascript.py +0 -0
  189. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/sdk/python.py +0 -0
  190. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/sdk/typescript.py +0 -0
  191. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/serializers/access_control.py +0 -0
  192. {bloomerp-1.0.0.dev36/bloomerp/views/api/sql → bloomerp-1.0.0.dev38/bloomerp/services}/__init__.py +0 -0
  193. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/services/bulk_services.py +0 -0
  194. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/services/create_view_services.py +0 -0
  195. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/services/document_services.py +0 -0
  196. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/services/file_services.py +0 -0
  197. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/services/notification_services.py +0 -0
  198. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/services/object_services.py +0 -0
  199. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/services/permission_services.py +0 -0
  200. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/services/sectioned_layout_services.py +0 -0
  201. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/services/sql_services.py +0 -0
  202. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/services/user_services.py +0 -0
  203. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/services/workflow_services.py +0 -0
  204. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/services/workspace_services.py +0 -0
  205. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/signals/__init__.py +0 -0
  206. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/signals/automations.py +0 -0
  207. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/icons/add-circle.svg +0 -0
  208. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/icons/add.svg +0 -0
  209. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/icons/ai.svg +0 -0
  210. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/icons/alt-arrow-right.svg +0 -0
  211. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/icons/archive.svg +0 -0
  212. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/icons/arrow-right.svg +0 -0
  213. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/icons/bell.svg +0 -0
  214. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/icons/bookmark-filled.svg +0 -0
  215. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/icons/bookmark.svg +0 -0
  216. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/icons/chat-line.svg +0 -0
  217. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/icons/chat-round.svg +0 -0
  218. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/icons/clipboard-list.svg +0 -0
  219. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/icons/clipboard.svg +0 -0
  220. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/icons/close.svg +0 -0
  221. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/icons/code.svg +0 -0
  222. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/icons/database.svg +0 -0
  223. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/icons/delete.svg +0 -0
  224. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/icons/dots.svg +0 -0
  225. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/icons/download.svg +0 -0
  226. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/icons/edit.svg +0 -0
  227. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/icons/editor-text.svg +0 -0
  228. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/icons/eye.svg +0 -0
  229. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/icons/file.svg +0 -0
  230. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/icons/filter.svg +0 -0
  231. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/icons/flag.svg +0 -0
  232. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/icons/folder.svg +0 -0
  233. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/icons/forward.svg +0 -0
  234. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/icons/html.svg +0 -0
  235. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/icons/info.svg +0 -0
  236. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/icons/insert-content.svg +0 -0
  237. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/icons/magic-stick.svg +0 -0
  238. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/icons/menu-dots.svg +0 -0
  239. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/icons/notebook.svg +0 -0
  240. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/icons/pen.svg +0 -0
  241. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/icons/refresh.svg +0 -0
  242. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/icons/settings.svg +0 -0
  243. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/icons/share.svg +0 -0
  244. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/icons/success.svg +0 -0
  245. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/icons/text-editor.svg +0 -0
  246. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/icons/text.svg +0 -0
  247. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/img/default-user.jpg +0 -0
  248. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/img/login-side-section.png +0 -0
  249. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/img/logo-touch-icon.png +0 -0
  250. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/img/logo.png +0 -0
  251. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/img/spinner.gif +0 -0
  252. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/Assistant-Bold.woff2 +0 -0
  253. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/Assistant-Medium.woff2 +0 -0
  254. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/Assistant-Regular.woff2 +0 -0
  255. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/Assistant-SemiBold.woff2 +0 -0
  256. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/Tableau10-B-NsZVaP.js +0 -0
  257. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/Tableau10-B-NsZVaP.js.map +0 -0
  258. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/_commonjs-dynamic-modules-TDtrdbi3.js +0 -0
  259. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/_commonjs-dynamic-modules-TDtrdbi3.js.map +0 -0
  260. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/ar-SA-G6X2FPQ2-CK2Gu2Y5.js +0 -0
  261. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/ar-SA-G6X2FPQ2-CK2Gu2Y5.js.map +0 -0
  262. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/arc-DaW-gdDM.js +0 -0
  263. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/arc-DaW-gdDM.js.map +0 -0
  264. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/array-BKyUJesY.js +0 -0
  265. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/array-BKyUJesY.js.map +0 -0
  266. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/az-AZ-76LH7QW2-CKmAwp1N.js +0 -0
  267. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/az-AZ-76LH7QW2-CKmAwp1N.js.map +0 -0
  268. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/bg-BG-XCXSNQG7-CWygTFku.js +0 -0
  269. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/bg-BG-XCXSNQG7-CWygTFku.js.map +0 -0
  270. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/blockDiagram-38ab4fdb-BBcDLEtG.js +0 -0
  271. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/blockDiagram-38ab4fdb-BBcDLEtG.js.map +0 -0
  272. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/bn-BD-2XOGV67Q-DuL68nNM.js +0 -0
  273. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/bn-BD-2XOGV67Q-DuL68nNM.js.map +0 -0
  274. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/c4Diagram-3d4e48cf-lpy0lBqf.js +0 -0
  275. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/c4Diagram-3d4e48cf-lpy0lBqf.js.map +0 -0
  276. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/ca-ES-6MX7JW3Y-B69sm8qr.js +0 -0
  277. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/ca-ES-6MX7JW3Y-B69sm8qr.js.map +0 -0
  278. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/channel-Ba5rdWwT.js +0 -0
  279. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/channel-Ba5rdWwT.js.map +0 -0
  280. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/classDiagram-70f12bd4-Bbcf2OzC.js +0 -0
  281. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/classDiagram-70f12bd4-Bbcf2OzC.js.map +0 -0
  282. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/classDiagram-v2-f2320105-B-2MSq9-.js +0 -0
  283. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/classDiagram-v2-f2320105-B-2MSq9-.js.map +0 -0
  284. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/clone-DrKFBTPT.js +0 -0
  285. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/clone-DrKFBTPT.js.map +0 -0
  286. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/createText-2e5e7dd3-KhyxJJnV.js +0 -0
  287. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/createText-2e5e7dd3-KhyxJJnV.js.map +0 -0
  288. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/cs-CZ-2BRQDIVT-BCanBcxR.js +0 -0
  289. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/cs-CZ-2BRQDIVT-BCanBcxR.js.map +0 -0
  290. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/da-DK-5WZEPLOC-Di_u1pON.js +0 -0
  291. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/da-DK-5WZEPLOC-Di_u1pON.js.map +0 -0
  292. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/de-DE-XR44H4JA-DtEHufg9.js +0 -0
  293. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/de-DE-XR44H4JA-DtEHufg9.js.map +0 -0
  294. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/directory-open-01563666-DWU9wJ6I.js +0 -0
  295. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/directory-open-01563666-DWU9wJ6I.js.map +0 -0
  296. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/directory-open-4ed118d0-CunoC1EB.js +0 -0
  297. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/directory-open-4ed118d0-CunoC1EB.js.map +0 -0
  298. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/edges-e0da2a9e-jmO6-aAj.js +0 -0
  299. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/edges-e0da2a9e-jmO6-aAj.js.map +0 -0
  300. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/el-GR-BZB4AONW-B3ooA35P.js +0 -0
  301. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/el-GR-BZB4AONW-B3ooA35P.js.map +0 -0
  302. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/erDiagram-9861fffd-4aFK3gLr.js +0 -0
  303. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/erDiagram-9861fffd-4aFK3gLr.js.map +0 -0
  304. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/es-ES-U4NZUMDT-C89vbhXk.js +0 -0
  305. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/es-ES-U4NZUMDT-C89vbhXk.js.map +0 -0
  306. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/eu-ES-A7QVB2H4-DAS3HNcb.js +0 -0
  307. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/eu-ES-A7QVB2H4-DAS3HNcb.js.map +0 -0
  308. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/ext-language_tools-VvI1RQQ9.js +0 -0
  309. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/ext-language_tools-VvI1RQQ9.js.map +0 -0
  310. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/fa-IR-HGAKTJCU-DppGf8_q.js +0 -0
  311. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/fa-IR-HGAKTJCU-DppGf8_q.js.map +0 -0
  312. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/fi-FI-Z5N7JZ37-uilqd2NJ.js +0 -0
  313. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/fi-FI-Z5N7JZ37-uilqd2NJ.js.map +0 -0
  314. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/file-open-002ab408-DIuFHtCF.js +0 -0
  315. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/file-open-002ab408-DIuFHtCF.js.map +0 -0
  316. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/file-open-7c801643-684qeFg4.js +0 -0
  317. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/file-open-7c801643-684qeFg4.js.map +0 -0
  318. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/file-save-3189631c-C1wFhQhH.js +0 -0
  319. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/file-save-3189631c-C1wFhQhH.js.map +0 -0
  320. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/file-save-745eba88-Bb9F9Kg7.js +0 -0
  321. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/file-save-745eba88-Bb9F9Kg7.js.map +0 -0
  322. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/flowDb-956e92f1-3zMuB-v2.js +0 -0
  323. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/flowDb-956e92f1-3zMuB-v2.js.map +0 -0
  324. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/flowDiagram-66a62f08-G-6kTyb1.js +0 -0
  325. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/flowDiagram-66a62f08-G-6kTyb1.js.map +0 -0
  326. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/flowDiagram-v2-96b9c2cf-Buk37fc7.js +0 -0
  327. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/flowDiagram-v2-96b9c2cf-Buk37fc7.js.map +0 -0
  328. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/flowchart-elk-definition-4a651766-0BoFZGh4.js +0 -0
  329. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/flowchart-elk-definition-4a651766-0BoFZGh4.js.map +0 -0
  330. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/fr-FR-RHASNOE6-CxpEXN3k.js +0 -0
  331. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/fr-FR-RHASNOE6-CxpEXN3k.js.map +0 -0
  332. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/ganttDiagram-c361ad54-DA78CZLA.js +0 -0
  333. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/ganttDiagram-c361ad54-DA78CZLA.js.map +0 -0
  334. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/gitGraphDiagram-72cf32ee-ubJgA-O8.js +0 -0
  335. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/gitGraphDiagram-72cf32ee-ubJgA-O8.js.map +0 -0
  336. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/gl-ES-HMX3MZ6V-Baj94Mgr.js +0 -0
  337. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/gl-ES-HMX3MZ6V-Baj94Mgr.js.map +0 -0
  338. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/graph-BJ8w43MV.js +0 -0
  339. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/graph-BJ8w43MV.js.map +0 -0
  340. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/he-IL-6SHJWFNN-DlWSA3CP.js +0 -0
  341. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/he-IL-6SHJWFNN-DlWSA3CP.js.map +0 -0
  342. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/hi-IN-IWLTKZ5I-DFtM_rbK.js +0 -0
  343. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/hi-IN-IWLTKZ5I-DFtM_rbK.js.map +0 -0
  344. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/hu-HU-A5ZG7DT2-DjJwQV6U.js +0 -0
  345. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/hu-HU-A5ZG7DT2-DjJwQV6U.js.map +0 -0
  346. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/id-ID-SAP4L64H-CNUZwcT-.js +0 -0
  347. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/id-ID-SAP4L64H-CNUZwcT-.js.map +0 -0
  348. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/image-blob-reduce.esm-D6s-rqMO.js +0 -0
  349. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/image-blob-reduce.esm-D6s-rqMO.js.map +0 -0
  350. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/index-3862675e-CnZunDFP.js +0 -0
  351. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/index-3862675e-CnZunDFP.js.map +0 -0
  352. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/index-ByP55a0-.js +0 -0
  353. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/index-ByP55a0-.js.map +0 -0
  354. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/infoDiagram-f8f76790-ssUZCNU_.js +0 -0
  355. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/infoDiagram-f8f76790-ssUZCNU_.js.map +0 -0
  356. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/init-Gi6I4Gst.js +0 -0
  357. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/init-Gi6I4Gst.js.map +0 -0
  358. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/it-IT-JPQ66NNP-B27GUTt2.js +0 -0
  359. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/it-IT-JPQ66NNP-B27GUTt2.js.map +0 -0
  360. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/ja-JP-DBVTYXUO-B8WamdbO.js +0 -0
  361. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/ja-JP-DBVTYXUO-B8WamdbO.js.map +0 -0
  362. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/journeyDiagram-49397b02-XNwXBdxQ.js +0 -0
  363. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/journeyDiagram-49397b02-XNwXBdxQ.js.map +0 -0
  364. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/kaa-6HZHGXH3-BBK7q2CG.js +0 -0
  365. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/kaa-6HZHGXH3-BBK7q2CG.js.map +0 -0
  366. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/kab-KAB-ZGHBKWFO-C6lcpCZh.js +0 -0
  367. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/kab-KAB-ZGHBKWFO-C6lcpCZh.js.map +0 -0
  368. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/katex-Cbg2ZdjV.js +0 -0
  369. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/katex-Cbg2ZdjV.js.map +0 -0
  370. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/kk-KZ-P5N5QNE5-B2VetCQo.js +0 -0
  371. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/kk-KZ-P5N5QNE5-B2VetCQo.js.map +0 -0
  372. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/km-KH-HSX4SM5Z-D1q5ygn9.js +0 -0
  373. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/km-KH-HSX4SM5Z-D1q5ygn9.js.map +0 -0
  374. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/ko-KR-MTYHY66A-CpZbuWOH.js +0 -0
  375. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/ko-KR-MTYHY66A-CpZbuWOH.js.map +0 -0
  376. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/ku-TR-6OUDTVRD-BNyUf0Bt.js +0 -0
  377. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/ku-TR-6OUDTVRD-BNyUf0Bt.js.map +0 -0
  378. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/layout-Dey6RYL_.js +0 -0
  379. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/layout-Dey6RYL_.js.map +0 -0
  380. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/line-B24sOtFj.js +0 -0
  381. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/line-B24sOtFj.js.map +0 -0
  382. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/linear-BkSjxDAM.js +0 -0
  383. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/linear-BkSjxDAM.js.map +0 -0
  384. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/lt-LT-XHIRWOB4-_zTqBu4S.js +0 -0
  385. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/lt-LT-XHIRWOB4-_zTqBu4S.js.map +0 -0
  386. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/lv-LV-5QDEKY6T-D3fddlas.js +0 -0
  387. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/lv-LV-5QDEKY6T-D3fddlas.js.map +0 -0
  388. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/main.css +0 -0
  389. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/mindmap-definition-fc14e90a-_Ik9ImMw.js +0 -0
  390. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/mindmap-definition-fc14e90a-_Ik9ImMw.js.map +0 -0
  391. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/mode-css-D-OVArme.js +0 -0
  392. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/mode-css-D-OVArme.js.map +0 -0
  393. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/mode-html-QfHwmmzV.js +0 -0
  394. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/mode-html-QfHwmmzV.js.map +0 -0
  395. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/mode-javascript-z0IbjNXF.js +0 -0
  396. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/mode-javascript-z0IbjNXF.js.map +0 -0
  397. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/mode-json-Cn7l4vuz.js +0 -0
  398. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/mode-json-Cn7l4vuz.js.map +0 -0
  399. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/mode-python-DpO_9WT_.js +0 -0
  400. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/mode-python-DpO_9WT_.js.map +0 -0
  401. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/mode-sql-C8joBxoz.js +0 -0
  402. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/mode-sql-C8joBxoz.js.map +0 -0
  403. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/mr-IN-CRQNXWMA-mJGCdWNY.js +0 -0
  404. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/mr-IN-CRQNXWMA-mJGCdWNY.js.map +0 -0
  405. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/my-MM-5M5IBNSE-tCzE3wUe.js +0 -0
  406. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/my-MM-5M5IBNSE-tCzE3wUe.js.map +0 -0
  407. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/nb-NO-T6EIAALU-CcfIyzjM.js +0 -0
  408. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/nb-NO-T6EIAALU-CcfIyzjM.js.map +0 -0
  409. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/nl-NL-IS3SIHDZ-V3Y8eebu.js +0 -0
  410. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/nl-NL-IS3SIHDZ-V3Y8eebu.js.map +0 -0
  411. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/nn-NO-6E72VCQL-Cfqlut23.js +0 -0
  412. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/nn-NO-6E72VCQL-Cfqlut23.js.map +0 -0
  413. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/oc-FR-POXYY2M6-ohBwGZKH.js +0 -0
  414. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/oc-FR-POXYY2M6-ohBwGZKH.js.map +0 -0
  415. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/ordinal-Cboi1Yqb.js +0 -0
  416. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/ordinal-Cboi1Yqb.js.map +0 -0
  417. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/pa-IN-N4M65BXN-CBmdgeU2.js +0 -0
  418. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/pa-IN-N4M65BXN-CBmdgeU2.js.map +0 -0
  419. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/path-CbwjOpE9.js +0 -0
  420. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/path-CbwjOpE9.js.map +0 -0
  421. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/pica-BB6BlTPh.js +0 -0
  422. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/pica-BB6BlTPh.js.map +0 -0
  423. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/pieDiagram-8a3498a8-ykWXg0e6.js +0 -0
  424. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/pieDiagram-8a3498a8-ykWXg0e6.js.map +0 -0
  425. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/pl-PL-T2D74RX3-BJgiuUes.js +0 -0
  426. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/pl-PL-T2D74RX3-BJgiuUes.js.map +0 -0
  427. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/pt-BR-5N22H2LF-DlafgNui.js +0 -0
  428. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/pt-BR-5N22H2LF-DlafgNui.js.map +0 -0
  429. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/pt-PT-UZXXM6DQ-9tFdflGO.js +0 -0
  430. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/pt-PT-UZXXM6DQ-9tFdflGO.js.map +0 -0
  431. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/quadrantDiagram-120e2f19-60h8VhUL.js +0 -0
  432. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/quadrantDiagram-120e2f19-60h8VhUL.js.map +0 -0
  433. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/requirementDiagram-deff3bca-WIV3h0C3.js +0 -0
  434. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/requirementDiagram-deff3bca-WIV3h0C3.js.map +0 -0
  435. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/ro-RO-JPDTUUEW-D7CFGK5Y.js +0 -0
  436. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/ro-RO-JPDTUUEW-D7CFGK5Y.js.map +0 -0
  437. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/roundRect-2e6Pdbcn.js +0 -0
  438. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/roundRect-2e6Pdbcn.js.map +0 -0
  439. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/ru-RU-B4JR7IUQ--pPA0JjS.js +0 -0
  440. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/ru-RU-B4JR7IUQ--pPA0JjS.js.map +0 -0
  441. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/sankeyDiagram-04a897e0-Du6WxD-I.js +0 -0
  442. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/sankeyDiagram-04a897e0-Du6WxD-I.js.map +0 -0
  443. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/sequenceDiagram-704730f1-GcKlMTtP.js +0 -0
  444. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/sequenceDiagram-704730f1-GcKlMTtP.js.map +0 -0
  445. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/si-LK-N5RQ5JYF-C64FsAc5.js +0 -0
  446. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/si-LK-N5RQ5JYF-C64FsAc5.js.map +0 -0
  447. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/sk-SK-C5VTKIMK-aE0uH2SW.js +0 -0
  448. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/sk-SK-C5VTKIMK-aE0uH2SW.js.map +0 -0
  449. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/sl-SI-NN7IZMDC-Dph0kz_u.js +0 -0
  450. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/sl-SI-NN7IZMDC-Dph0kz_u.js.map +0 -0
  451. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/stateDiagram-587899a1-N4TLoQEY.js +0 -0
  452. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/stateDiagram-587899a1-N4TLoQEY.js.map +0 -0
  453. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/stateDiagram-v2-d93cdb3a-D_Yrr8Fl.js +0 -0
  454. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/stateDiagram-v2-d93cdb3a-D_Yrr8Fl.js.map +0 -0
  455. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/styles-6aaf32cf-Smyq2-dj.js +0 -0
  456. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/styles-6aaf32cf-Smyq2-dj.js.map +0 -0
  457. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/styles-9a916d00-B_AgfPKS.js +0 -0
  458. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/styles-9a916d00-B_AgfPKS.js.map +0 -0
  459. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/styles-c10674c1-BkQljQuy.js +0 -0
  460. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/styles-c10674c1-BkQljQuy.js.map +0 -0
  461. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/subset-shared.chunk-CDXhA_Wq.js +0 -0
  462. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/subset-shared.chunk-CDXhA_Wq.js.map +0 -0
  463. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/subset-worker.chunk-DU1iOD2Y.js +0 -0
  464. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/subset-worker.chunk-DU1iOD2Y.js.map +0 -0
  465. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/sv-SE-XGPEYMSR-C7sC_7mW.js +0 -0
  466. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/sv-SE-XGPEYMSR-C7sC_7mW.js.map +0 -0
  467. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/svgDrawCommon-08f97a94-CigDLztM.js +0 -0
  468. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/svgDrawCommon-08f97a94-CigDLztM.js.map +0 -0
  469. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/ta-IN-2NMHFXQM-DFFiee37.js +0 -0
  470. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/ta-IN-2NMHFXQM-DFFiee37.js.map +0 -0
  471. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/th-TH-HPSO5L25-4Wno9YgB.js +0 -0
  472. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/th-TH-HPSO5L25-4Wno9YgB.js.map +0 -0
  473. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/theme-chrome-DJhsRuk2.js +0 -0
  474. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/theme-chrome-DJhsRuk2.js.map +0 -0
  475. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/timeline-definition-85554ec2-CW5L4AdV.js +0 -0
  476. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/timeline-definition-85554ec2-CW5L4AdV.js.map +0 -0
  477. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/tr-TR-DEFEU3FU-CtRCfv3G.js +0 -0
  478. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/tr-TR-DEFEU3FU-CtRCfv3G.js.map +0 -0
  479. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/uk-UA-QMV73CPH-C_gySul2.js +0 -0
  480. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/uk-UA-QMV73CPH-C_gySul2.js.map +0 -0
  481. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/vi-VN-M7AON7JQ-DhAxvLha.js +0 -0
  482. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/vi-VN-M7AON7JQ-DhAxvLha.js.map +0 -0
  483. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/xychartDiagram-e933f94c-8tQw0CB3.js +0 -0
  484. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/xychartDiagram-e933f94c-8tQw0CB3.js.map +0 -0
  485. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/zh-CN-LNUGB5OW-BXqXStir.js +0 -0
  486. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/zh-CN-LNUGB5OW-BXqXStir.js.map +0 -0
  487. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/zh-HK-E62DVLB3-5ytNjPYj.js +0 -0
  488. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/zh-HK-E62DVLB3-5ytNjPYj.js.map +0 -0
  489. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/zh-TW-RAJ6MFWO-Cjr-rcDc.js +0 -0
  490. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/dist/zh-TW-RAJ6MFWO-Cjr-rcDc.js.map +0 -0
  491. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/htmx-download.js +0 -0
  492. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/js/llm.js +0 -0
  493. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/vendor/fontawesome/css/all.min.css +0 -0
  494. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/vendor/fontawesome/webfonts/fa-brands-400.woff2 +0 -0
  495. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/vendor/fontawesome/webfonts/fa-regular-400.woff2 +0 -0
  496. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/vendor/fontawesome/webfonts/fa-solid-900.woff2 +0 -0
  497. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/bloomerp/vendor/fontawesome/webfonts/fa-v4compatibility.woff2 +0 -0
  498. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static/css/dist/styles.css +0 -0
  499. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static_src/node_modules/katex/src/fonts/generate_fonts.py +0 -0
  500. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static_src/node_modules/katex/src/metrics/extract_tfms.py +0 -0
  501. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static_src/node_modules/katex/src/metrics/extract_ttfs.py +0 -0
  502. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static_src/node_modules/katex/src/metrics/format_json.py +0 -0
  503. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static_src/node_modules/katex/src/metrics/parse_tfm.py +0 -0
  504. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/static_src/node_modules/shell-quote/print.py +0 -0
  505. {bloomerp-1.0.0.dev36/bloomerp/views/detail → bloomerp-1.0.0.dev38/bloomerp/tasks}/__init__.py +0 -0
  506. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/tasks/base.py +0 -0
  507. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/tasks/bulk_upload_task.py +0 -0
  508. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/403.html +0 -0
  509. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/access_control_views/manage_permissions/wizard_global_permissions.html +0 -0
  510. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/access_control_views/manage_permissions/wizard_object_access_control.html +0 -0
  511. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/access_control_views/manage_permissions/wizard_policy_details.html +0 -0
  512. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/access_control_views/policy_list.html +0 -0
  513. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/auth_views/login_view.html +0 -0
  514. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/auth_views/password_reset_done_view.html +0 -0
  515. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/auth_views/password_reset_view.html +0 -0
  516. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/auth_views/profile_overview.html +0 -0
  517. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/auth_views/profile_password_reset.html +0 -0
  518. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/base_wizard.html +0 -0
  519. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/bloomerp_base.html +0 -0
  520. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/bloomerp_htmx_base_view.html +0 -0
  521. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/components/access_control/preview_permissions_table.html +0 -0
  522. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/components/access_control/row_policy.html +0 -0
  523. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/components/application_fields/lookup_operators.html +0 -0
  524. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/components/application_fields/value_input.html +0 -0
  525. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/components/automation/render_workflow_node.html +0 -0
  526. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/components/bookmark.html +0 -0
  527. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/components/bulk_actions/download_bulk_upload_template_form.html +0 -0
  528. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/components/bulk_update_objects.html +0 -0
  529. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/components/bulk_upload_table.html +0 -0
  530. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/components/comments.html +0 -0
  531. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/components/detail_tabs/folder_modal_form.html +0 -0
  532. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/components/execute_sql_query.html +0 -0
  533. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/components/files/browser.html +0 -0
  534. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/components/filters/advanced_lookup.html +0 -0
  535. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/components/filters/init.html +0 -0
  536. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/components/filters/related_fields_select.html +0 -0
  537. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/components/fk_search_results.html +0 -0
  538. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/components/generate_document_template.html +0 -0
  539. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/components/layouts/available_items.html +0 -0
  540. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/components/llm/ai_conversation.html +0 -0
  541. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/components/llm/ai_conversations.html +0 -0
  542. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/components/object_model_form.html +0 -0
  543. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/components/objects/dataview.html +0 -0
  544. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/components/objects/object_preview.html +0 -0
  545. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/components/objects/search_results.html +0 -0
  546. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/components/preview_document_template.html +0 -0
  547. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/components/project_management/create_todo.html +0 -0
  548. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/components/project_management/todos.html +0 -0
  549. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/components/search_results.html +0 -0
  550. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/components/sidebar/content.html +0 -0
  551. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/components/sidebar/select_sidebar_items.html +0 -0
  552. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/components/test_cotton_component.html +0 -0
  553. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/components/todos.html +0 -0
  554. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/components/workspace_widget.html +0 -0
  555. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/components/workspaces/delete_workspace.html +0 -0
  556. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/components/workspaces/edit_workspace.html +0 -0
  557. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/components/workspaces/preview_workspace_tile.html +0 -0
  558. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/components/workspaces/render_workspace_tile.html +0 -0
  559. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/components/workspaces/share_workspace.html +0 -0
  560. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/components/workspaces/tile_builders/analytics_tile_builder.html +0 -0
  561. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/components/workspaces/tile_builders/dataview_tile_builder.html +0 -0
  562. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/components/workspaces/tile_builders/default_tile_builder.html +0 -0
  563. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/components/workspaces/tile_builders/links_tile_builder.html +0 -0
  564. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/components/workspaces/tile_builders/text_tile_builder.html +0 -0
  565. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/blocktrans.html +0 -0
  566. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/comments/comment.html +0 -0
  567. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/comments/container.html +0 -0
  568. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/footer.html +0 -0
  569. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/header/header.html +0 -0
  570. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/add.html +0 -0
  571. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/ai.html +0 -0
  572. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/arrow_left.html +0 -0
  573. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/arrow_right.html +0 -0
  574. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/base_icon.html +0 -0
  575. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/bookmark.html +0 -0
  576. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/bookmark_fill.html +0 -0
  577. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/calendar.html +0 -0
  578. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/chart.html +0 -0
  579. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/chat.html +0 -0
  580. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/check.svg +0 -0
  581. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/chevron_left.html +0 -0
  582. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/chevron_right.html +0 -0
  583. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/close.html +0 -0
  584. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/collapse.svg +0 -0
  585. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/copy.svg +0 -0
  586. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/delete.html +0 -0
  587. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/download.svg +0 -0
  588. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/drag.svg +0 -0
  589. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/edit.html +0 -0
  590. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/email.svg +0 -0
  591. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/error.html +0 -0
  592. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/expand.html +0 -0
  593. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/external_link.svg +0 -0
  594. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/eye.html +0 -0
  595. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/file.svg +0 -0
  596. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/filter.html +0 -0
  597. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/folder.svg +0 -0
  598. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/fullscreen.html +0 -0
  599. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/gant.html +0 -0
  600. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/help.svg +0 -0
  601. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/home.svg +0 -0
  602. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/info.svg +0 -0
  603. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/kanban.html +0 -0
  604. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/lines_horizontal.html +0 -0
  605. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/list.html +0 -0
  606. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/list.svg +0 -0
  607. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/lock.svg +0 -0
  608. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/logout.svg +0 -0
  609. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/map.svg +0 -0
  610. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/menu.svg +0 -0
  611. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/message.svg +0 -0
  612. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/notification.svg +0 -0
  613. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/page_type.html +0 -0
  614. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/pivot_table.html +0 -0
  615. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/plus.html +0 -0
  616. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/plus_circle.html +0 -0
  617. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/refresh.svg +0 -0
  618. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/save.svg +0 -0
  619. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/scroll.html +0 -0
  620. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/search.svg +0 -0
  621. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/settings.html +0 -0
  622. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/shield.svg +0 -0
  623. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/sidebar_right.html +0 -0
  624. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/sidebar_right_selected.html +0 -0
  625. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/sort.html +0 -0
  626. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/sort.svg +0 -0
  627. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/spinner.svg +0 -0
  628. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/table.svg +0 -0
  629. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/tags.svg +0 -0
  630. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/three_dots.html +0 -0
  631. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/todo.html +0 -0
  632. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/unlock.svg +0 -0
  633. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/upload.svg +0 -0
  634. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/user.svg +0 -0
  635. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/zoom_in.svg +0 -0
  636. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/icons/zoom_out.svg +0 -0
  637. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/object_crud_container.html +0 -0
  638. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/sidebar/body.html +0 -0
  639. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/sidebar/dropdown_list_container.html +0 -0
  640. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/sidebar/dropdown_section.html +0 -0
  641. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/sidebar/item.html +0 -0
  642. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/trans.html +0 -0
  643. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/ui/avatar.html +0 -0
  644. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/ui/breadcrumb/body.html +0 -0
  645. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/ui/breadcrumb/item.html +0 -0
  646. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/ui/container.html +0 -0
  647. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/ui/data_view/actions.html +0 -0
  648. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/ui/data_view/calendar.html +0 -0
  649. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/ui/data_view/card.html +0 -0
  650. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/ui/data_view/display_options.html +0 -0
  651. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/ui/data_view/gant_chart.html +0 -0
  652. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/ui/data_view/kanban.html +0 -0
  653. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/ui/data_view/options/select.html +0 -0
  654. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/ui/data_view/pivot_table.html +0 -0
  655. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/ui/data_view/table.html +0 -0
  656. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/ui/drawer.html +0 -0
  657. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/ui/dropdown/README.md +0 -0
  658. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/ui/dropdown/body.html +0 -0
  659. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/ui/dropdown/divider.html +0 -0
  660. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/ui/dropdown/item.html +0 -0
  661. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/ui/dropdown/submenu.html +0 -0
  662. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/ui/dropdown/title.html +0 -0
  663. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/ui/inputs/dropdown_input.html +0 -0
  664. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/ui/inputs/permissions.html +0 -0
  665. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/ui/inputs/selectable_cards/container.html +0 -0
  666. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/ui/inputs/selectable_cards/item.html +0 -0
  667. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/ui/inputs/sql_query_editor.html +0 -0
  668. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/ui/inputs/text_editor.html +0 -0
  669. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/ui/menu/container.html +0 -0
  670. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/ui/menu/item.html +0 -0
  671. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/ui/message.html +0 -0
  672. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/ui/modal.html +0 -0
  673. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/ui/modal_button.html +0 -0
  674. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/ui/search_section/container.html +0 -0
  675. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/ui/steps.html +0 -0
  676. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/ui/tabs/container.html +0 -0
  677. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/ui/tabs/item.html +0 -0
  678. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/ui/text/help_text.html +0 -0
  679. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/ui/text/label.html +0 -0
  680. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/ui/text/muted.html +0 -0
  681. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/ui/text/subtitle.html +0 -0
  682. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/ui/text/text.html +0 -0
  683. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/ui/text/title.html +0 -0
  684. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/ui/tooltip.html +0 -0
  685. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/website_builder.html +0 -0
  686. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/workflow.html +0 -0
  687. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/workspaces/container.html +0 -0
  688. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/workspaces/preview_tile_container.html +0 -0
  689. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/workspaces/tile.html +0 -0
  690. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/workspaces/tiles/canvas.html +0 -0
  691. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/workspaces/tiles/kpi.html +0 -0
  692. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/workspaces/tiles/link.html +0 -0
  693. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/workspaces/tiles/pie_chart.html +0 -0
  694. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/workspaces/tiles/table.html +0 -0
  695. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/workspaces/tiles/text.html +0 -0
  696. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/cotton/workspaces/tiles/two_dim_chart.html +0 -0
  697. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/create_views/bloomerp_base_wizard_create_view.html +0 -0
  698. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/create_views/bloomerp_create_view.html +0 -0
  699. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/create_website.html +0 -0
  700. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/delete_views/bloomerp_delete_view.html +0 -0
  701. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/detail_views/bloomerp_detail_activity_view.html +0 -0
  702. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/detail_views/bloomerp_detail_comments_view.html +0 -0
  703. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/detail_views/bloomerp_detail_files_view.html +0 -0
  704. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/detail_views/bloomerp_detail_m2m_view.html +0 -0
  705. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/detail_views/bloomerp_detail_overview_view.html +0 -0
  706. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/detail_views/bloomerp_foreign_relationship_view.html +0 -0
  707. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/detail_views/snippets/card_header.html +0 -0
  708. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/detail_views/snippets/post_comment_snippet.html +0 -0
  709. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/document_template_views/bloomerp_detail_document_generator_view.html +0 -0
  710. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/document_template_views/bloomerp_document_template_editor_view.html +0 -0
  711. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/document_template_views/bloomerp_document_template_generate_view.html +0 -0
  712. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/document_template_views/bloomerp_document_template_generated_documents_view.html +0 -0
  713. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/document_template_views/bloomerp_document_template_list_view.html +0 -0
  714. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/htmx_addendum.html +0 -0
  715. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/inclusion_tags/dataview_value.html +0 -0
  716. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/inclusion_tags/layout_field.html +0 -0
  717. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/inclusion_tags/object_preview_value.html +0 -0
  718. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/list_views/bloomerp_bookmarks_view.html +0 -0
  719. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/list_views/bloomerp_file_list_view.html +0 -0
  720. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/list_views/bloomerp_list_view.html +0 -0
  721. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/list_views/bulk_upload_wizard/confirm_step.html +0 -0
  722. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/list_views/bulk_upload_wizard/review_field.html +0 -0
  723. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/list_views/bulk_upload_wizard/review_step.html +0 -0
  724. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/list_views/bulk_upload_wizard/upload_step.html +0 -0
  725. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/list_views/snippets/filter_dropdown.html +0 -0
  726. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/mixins/bloomerp_layout_form_mixin.html +0 -0
  727. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/snippets/403.html +0 -0
  728. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/snippets/avatar.html +0 -0
  729. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/snippets/form_snippet.html +0 -0
  730. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/snippets/head.html +0 -0
  731. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/snippets/llm_modal_snippet.html +0 -0
  732. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/snippets/signature_snippet.html +0 -0
  733. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/snippets/vite_bundle.html +0 -0
  734. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/tailwind/display_form.html +0 -0
  735. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/tailwind/errors.html +0 -0
  736. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/tailwind/errors_formset.html +0 -0
  737. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/tailwind/field.html +0 -0
  738. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/tailwind/inputs.html +0 -0
  739. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/tailwind/layout/alert.html +0 -0
  740. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/tailwind/layout/attrs.html +0 -0
  741. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/tailwind/layout/baseinput.html +0 -0
  742. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/tailwind/layout/button.html +0 -0
  743. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/tailwind/layout/buttonholder.html +0 -0
  744. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/tailwind/layout/checkboxselectmultiple.html +0 -0
  745. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/tailwind/layout/checkboxselectmultiple_inline.html +0 -0
  746. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/tailwind/layout/column.html +0 -0
  747. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/tailwind/layout/div.html +0 -0
  748. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/tailwind/layout/field_errors.html +0 -0
  749. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/tailwind/layout/field_errors_block.html +0 -0
  750. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/tailwind/layout/field_with_buttons.html +0 -0
  751. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/tailwind/layout/fieldset.html +0 -0
  752. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/tailwind/layout/formactions.html +0 -0
  753. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/tailwind/layout/help_text.html +0 -0
  754. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/tailwind/layout/help_text_and_errors.html +0 -0
  755. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/tailwind/layout/inline_field.html +0 -0
  756. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/tailwind/layout/prepended_appended_text.html +0 -0
  757. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/tailwind/layout/radioselect.html +0 -0
  758. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/tailwind/layout/radioselect_inline.html +0 -0
  759. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/tailwind/layout/row.html +0 -0
  760. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/tailwind/layout/select.html +0 -0
  761. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/tailwind/layout/select_option.html +0 -0
  762. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/tailwind/table_inline_formset.html +0 -0
  763. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/tailwind/uni_form.html +0 -0
  764. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/tailwind/uni_formset.html +0 -0
  765. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/tailwind/whole_uni_form.html +0 -0
  766. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/tailwind/whole_uni_formset.html +0 -0
  767. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/user_views/inbox_view.html +0 -0
  768. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/user_views/new_password_done_view.html +0 -0
  769. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/user_views/new_password_view.html +0 -0
  770. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/user_views/notification_setting_view.html +0 -0
  771. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/user_views/snippets/user_content_type_selection_snippet.html +0 -0
  772. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/utils/blank_form.html +0 -0
  773. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/utils/template_and_message.html +0 -0
  774. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/widgets/bloomerp_file_field_widget.html +0 -0
  775. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/widgets/code_editor_widget.html +0 -0
  776. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/widgets/foreign_field_widget.html +0 -0
  777. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/widgets/icon_picker_widget.html +0 -0
  778. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/widgets/one_to_many_field_widget.html +0 -0
  779. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/widgets/rich_text_editor_widget.html +0 -0
  780. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/widgets/tiny_mce_text_editor_widget.html +0 -0
  781. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/workspace_views/bloomerp_home_view.html +0 -0
  782. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/workspace_views/bloomerp_workspace_view.html +0 -0
  783. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/workspace_views/create_tile_wizard/1.html +0 -0
  784. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/workspace_views/create_tile_wizard/create_tile.html +0 -0
  785. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/workspace_views/create_tile_wizard/create_tile_analytics_builder.html +0 -0
  786. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/workspace_views/create_tile_wizard/create_tile_final_config.html +0 -0
  787. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/workspace_views/create_tile_wizard/create_tile_select_query.html +0 -0
  788. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/workspace_views/create_tile_wizard/create_tile_select_type.html +0 -0
  789. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/workspace_views/create_tile_wizard/create_tile_type_config.html +0 -0
  790. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/workspace_views/create_workspace_view.html +0 -0
  791. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templates/workspace_views/my_workspaces_view.html +0 -0
  792. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templatetags/bloomerp.py +0 -0
  793. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templatetags/bloomerp_ui.py +0 -0
  794. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/templatetags/globals.py +0 -0
  795. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/urls.py +0 -0
  796. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/utils/api.py +0 -0
  797. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/utils/document_templates.py +0 -0
  798. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/utils/encryption.py +0 -0
  799. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/utils/filters.py +0 -0
  800. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/utils/model_io.py +0 -0
  801. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/utils/models.py +0 -0
  802. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/utils/pdf.py +0 -0
  803. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/utils/realtime.py +0 -0
  804. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/utils/requests.py +0 -0
  805. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/utils/sql.py +0 -0
  806. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/utils/urls.py +0 -0
  807. {bloomerp-1.0.0.dev36/bloomerp/views/user → bloomerp-1.0.0.dev38/bloomerp/views}/__init__.py +0 -0
  808. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/views/access_control/manage_permissions.py +0 -0
  809. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/views/access_control/policy_list.py +0 -0
  810. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/views/access_control/update.py +0 -0
  811. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/views/api/__init__.py +0 -0
  812. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/views/api/access_control.py +0 -0
  813. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/views/api/api_views.py +0 -0
  814. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/views/api/auth.py +0 -0
  815. {bloomerp-1.0.0.dev36/bloomerp/widgets → bloomerp-1.0.0.dev38/bloomerp/views/api/sql}/__init__.py +0 -0
  816. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/views/api/sql/accessible_tables.py +0 -0
  817. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/views/api/sql/queries.py +0 -0
  818. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/views/api/workflow_webhook.py +0 -0
  819. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/views/auth.py +0 -0
  820. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/views/base.py +0 -0
  821. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/views/core/__init__.py +0 -0
  822. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/views/core/bookmarks.py +0 -0
  823. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/views/core/bulk_upload.py +0 -0
  824. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/views/core/create_view.py +0 -0
  825. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/views/core/detail_comments.py +0 -0
  826. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/views/core/file_list.py +0 -0
  827. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/views/core/list_view.py +0 -0
  828. {bloomerp-1.0.0.dev36/bloomerp/workspaces/analytics_tile → bloomerp-1.0.0.dev38/bloomerp/views/detail}/__init__.py +0 -0
  829. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/views/detail/access_control.py +0 -0
  830. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/views/detail/activity_log.py +0 -0
  831. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/views/detail/base_detail.py +0 -0
  832. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/views/detail/comments.py +0 -0
  833. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/views/detail/delete_view.py +0 -0
  834. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/views/detail/files.py +0 -0
  835. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/views/detail/foreign_relationship.py +0 -0
  836. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/views/detail/overview.py +0 -0
  837. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/views/document_templates/__init__.py +0 -0
  838. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/views/document_templates/document_template_editor.py +0 -0
  839. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/views/document_templates/generate_document_template.py +0 -0
  840. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/views/document_templates/generate_document_template_for_model.py +0 -0
  841. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/views/document_templates/generated_document_template_list.py +0 -0
  842. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/views/mixins/__init__.py +0 -0
  843. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/views/mixins/conditional_staff_required_mixin.py +0 -0
  844. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/views/mixins/layout_form_mixin.py +0 -0
  845. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/views/mixins/model_context_mixin.py +0 -0
  846. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/views/mixins/model_form_view_mixin.py +0 -0
  847. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/views/mixins/wizard_mixin.py +0 -0
  848. {bloomerp-1.0.0.dev36/bloomerp/workspaces/canvas_tile → bloomerp-1.0.0.dev38/bloomerp/views/user}/__init__.py +0 -0
  849. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/views/user/admin_reset_password.py +0 -0
  850. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/views/user/create_user.py +0 -0
  851. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/views/user/inbox.py +0 -0
  852. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/views/user/profile.py +0 -0
  853. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/views/user/reset_password.py +0 -0
  854. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/views/website_builder/create_website.py +0 -0
  855. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/views/workspace/base_workspace_view.py +0 -0
  856. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/views/workspace/create_tile.py +0 -0
  857. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/views/workspace/create_workspace.py +0 -0
  858. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/views/workspace/home.py +0 -0
  859. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/views/workspace/module_home.py +0 -0
  860. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/views/workspace/my_workspaces.py +0 -0
  861. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/views/workspace/workspace.py +0 -0
  862. {bloomerp-1.0.0.dev36/bloomerp/workspaces/dataview_tile → bloomerp-1.0.0.dev38/bloomerp/widgets}/__init__.py +0 -0
  863. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/widgets/code_editor_widget.py +0 -0
  864. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/widgets/file_field_widget.py +0 -0
  865. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/widgets/foreign_field_widget.py +0 -0
  866. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/widgets/icon_picker_widget.py +0 -0
  867. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/widgets/one_to_many_field_widget.py +0 -0
  868. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/widgets/select_widget.py +0 -0
  869. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/widgets/text_editor.py +0 -0
  870. {bloomerp-1.0.0.dev36/bloomerp/workspaces/links_tile → bloomerp-1.0.0.dev38/bloomerp/workspaces/analytics_tile}/__init__.py +0 -0
  871. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/workspaces/analytics_tile/kpi.py +0 -0
  872. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/workspaces/analytics_tile/map.py +0 -0
  873. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/workspaces/analytics_tile/model.py +0 -0
  874. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/workspaces/analytics_tile/pie_chart.py +0 -0
  875. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/workspaces/analytics_tile/pivot_table.py +0 -0
  876. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/workspaces/analytics_tile/render.py +0 -0
  877. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/workspaces/analytics_tile/table.py +0 -0
  878. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/workspaces/analytics_tile/three_dim_chart.py +0 -0
  879. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/workspaces/analytics_tile/two_dim_chart.py +0 -0
  880. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/workspaces/analytics_tile/utils.py +0 -0
  881. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/workspaces/base.py +0 -0
  882. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/workspaces/canvas_tile/model.py +0 -0
  883. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/workspaces/canvas_tile/render.py +0 -0
  884. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/workspaces/dataview_tile/form.py +0 -0
  885. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/workspaces/dataview_tile/model.py +0 -0
  886. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/workspaces/dataview_tile/render.py +0 -0
  887. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/workspaces/links_tile/model.py +0 -0
  888. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/workspaces/links_tile/render.py +0 -0
  889. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/workspaces/orchestrator.py +0 -0
  890. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/workspaces/text_tile/model.py +0 -0
  891. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/workspaces/text_tile/render.py +0 -0
  892. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/bloomerp/workspaces/tiles.py +0 -0
  893. {bloomerp-1.0.0.dev36 → bloomerp-1.0.0.dev38}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: Bloomerp
3
- Version: 1.0.0.dev36
3
+ Version: 1.0.0.dev38
4
4
  Summary: Bloomerp is an open-source Business Management Software framework that lets you create fully functional business management applications just by defining your Django database models.
5
5
  Requires-Python: >=3.12
6
6
  Description-Content-Type: text/markdown
@@ -10,7 +10,6 @@ bloomerp/__init__.py
10
10
  bloomerp/admin.py
11
11
  bloomerp/apps.py
12
12
  bloomerp/auth.py
13
- bloomerp/cli.py
14
13
  bloomerp/consumers.py
15
14
  bloomerp/context_processors.py
16
15
  bloomerp/field_types.py
@@ -31,6 +30,24 @@ bloomerp/automation/triggers/base.py
31
30
  bloomerp/automation/triggers/human_trigger.py
32
31
  bloomerp/automation/triggers/object_crud_trigger.py
33
32
  bloomerp/automation/triggers/webhook_trigger.py
33
+ bloomerp/cli/__init__.py
34
+ bloomerp/cli/main.py
35
+ bloomerp/cli/template_project/manage.py
36
+ bloomerp/cli/template_project/<app-name>/__init__.py
37
+ bloomerp/cli/template_project/<app-name>/admin.py
38
+ bloomerp/cli/template_project/<app-name>/apps.py
39
+ bloomerp/cli/template_project/<app-name>/migrations/__init__.py
40
+ bloomerp/cli/template_project/<app-name>/models/__init__.py
41
+ bloomerp/cli/template_project/<app-name>/models/sample.py
42
+ bloomerp/cli/template_project/<app-name>/views/__init__.py
43
+ bloomerp/cli/template_project/<app-name>/views/sample.py
44
+ bloomerp/cli/template_project/config/__init__.py
45
+ bloomerp/cli/template_project/config/asgi.py
46
+ bloomerp/cli/template_project/config/urls.py
47
+ bloomerp/cli/template_project/config/wsgi.py
48
+ bloomerp/cli/template_project/config/settings/__init__.py
49
+ bloomerp/cli/template_project/config/settings/base.py
50
+ bloomerp/cli/template_project/config/settings/bloomerp.py
34
51
  bloomerp/components/bookmark.py
35
52
  bloomerp/components/comments.py
36
53
  bloomerp/components/detail_tabs_folder_modal.py
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ bloomerp = bloomerp.cli.main:main
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: Bloomerp
3
- Version: 1.0.0.dev36
3
+ Version: 1.0.0.dev38
4
4
  Summary: Bloomerp is an open-source Business Management Software framework that lets you create fully functional business management applications just by defining your Django database models.
5
5
  Requires-Python: >=3.12
6
6
  Description-Content-Type: text/markdown
@@ -0,0 +1,3 @@
1
+ from .main import main
2
+
3
+ __all__ = ["main"]
@@ -0,0 +1,104 @@
1
+ from __future__ import annotations
2
+
3
+ import keyword
4
+ import re
5
+ from pathlib import Path
6
+
7
+ import click
8
+
9
+
10
+ TEMPLATE_DIR = Path(__file__).resolve().parent / "template_project"
11
+
12
+
13
+ def _slugify_package_name(value: str) -> str:
14
+ slug = re.sub(r"[^a-zA-Z0-9_]+", "_", value).strip("_").lower()
15
+ if not slug:
16
+ raise click.ClickException("Project names must contain at least one letter or number.")
17
+ if slug[0].isdigit():
18
+ slug = f"project_{slug}"
19
+ if keyword.iskeyword(slug):
20
+ slug = f"{slug}_project"
21
+ return slug
22
+
23
+
24
+ def _distribution_name(value: str) -> str:
25
+ slug = re.sub(r"[^a-zA-Z0-9-]+", "-", value).strip("-").lower()
26
+ if not slug:
27
+ raise click.ClickException("Project names must contain at least one letter or number.")
28
+ return slug
29
+
30
+
31
+ def _render_template(text: str, replacements: dict[str, str]) -> str:
32
+ for placeholder, value in replacements.items():
33
+ text = text.replace(placeholder, value)
34
+ return text
35
+
36
+
37
+ def _copy_template_project(target_dir: Path, replacements: dict[str, str]) -> None:
38
+ for source_path in sorted(TEMPLATE_DIR.rglob("*")):
39
+ if "__pycache__" in source_path.parts or source_path.suffix == ".pyc":
40
+ continue
41
+ relative_path = source_path.relative_to(TEMPLATE_DIR)
42
+ rendered_relative_path = Path(
43
+ _render_template(relative_path.as_posix(), replacements)
44
+ )
45
+ destination_path = target_dir / rendered_relative_path
46
+
47
+ if source_path.is_dir():
48
+ destination_path.mkdir(parents=True, exist_ok=True)
49
+ continue
50
+
51
+ destination_path.parent.mkdir(parents=True, exist_ok=True)
52
+ contents = source_path.read_text(encoding="utf-8")
53
+ destination_path.write_text(
54
+ _render_template(contents, replacements),
55
+ encoding="utf-8",
56
+ )
57
+
58
+
59
+ @click.group()
60
+ def main() -> None:
61
+ """Bloomerp command line tools."""
62
+
63
+
64
+ @main.command()
65
+ @click.argument("directory", required=False)
66
+ def init(directory: str | None) -> None:
67
+ """Create a minimal Django project configured for Bloomerp."""
68
+
69
+ target_name = directory or click.prompt("Project directory", default="my-bloomerp-project")
70
+ target_dir = Path(target_name).expanduser().resolve()
71
+
72
+ default_project_name = target_dir.name
73
+ project_name = click.prompt("Project name", default=default_project_name)
74
+ app_name = click.prompt("Main Django app", default="core", show_default=True)
75
+ app_name = _slugify_package_name(app_name)
76
+
77
+ if target_dir.exists() and any(target_dir.iterdir()):
78
+ raise click.ClickException(f"Target directory already exists and is not empty: {target_dir}")
79
+
80
+ replacements = {
81
+ "__PROJECT_NAME__": project_name,
82
+ "__APP_NAME__": app_name,
83
+ "__APP_CLASS_NAME__": "".join(part.capitalize() for part in app_name.split("_")) + "Config",
84
+ "__DISTRIBUTION_NAME__": _distribution_name(project_name),
85
+ "<app-name>": app_name,
86
+ }
87
+
88
+ _copy_template_project(target_dir, replacements)
89
+
90
+ click.echo(f"Created Bloomerp project at {target_dir}")
91
+ click.echo("")
92
+ click.echo("Next steps:")
93
+ click.echo(f" cd {target_dir}")
94
+ click.echo(" python -m venv .venv")
95
+ click.echo(" source .venv/bin/activate")
96
+ click.echo(" pip install -e .")
97
+ click.echo(" python manage.py migrate")
98
+ click.echo(" python manage.py createsuperuser")
99
+ click.echo(" python manage.py save_application_fields")
100
+ click.echo(" python manage.py runserver")
101
+
102
+
103
+ if __name__ == "__main__":
104
+ main()
@@ -0,0 +1 @@
1
+ from django.contrib import admin
@@ -0,0 +1,6 @@
1
+ from django.apps import AppConfig
2
+
3
+
4
+ class __APP_CLASS_NAME__(AppConfig):
5
+ default_auto_field = "django.db.models.BigAutoField"
6
+ name = "__APP_NAME__"
@@ -0,0 +1,10 @@
1
+ from bloomerp.models import BloomerpModel
2
+ from bloomerp.models.definition import (
3
+ BloomerpModelConfig,
4
+ ApiSettings
5
+ )
6
+
7
+ class SampleModel(BloomerpModel):
8
+ bloomerp_config = BloomerpModelConfig(
9
+
10
+ )
@@ -0,0 +1,17 @@
1
+ from bloomerp.router import router
2
+ from bloomerp.views.detail.base_detail import BaseBloomerpDetailView
3
+
4
+ from ..models.sample import SampleModel
5
+
6
+ @router.register("/function-based-view/")
7
+ def sample_function_based_view(request):
8
+ return {"message": "Hello from the function-based view!"}
9
+
10
+
11
+ @router.register(
12
+ path="/class-based-view/",
13
+ route_type="detail",
14
+ models=[SampleModel]
15
+ )
16
+ class SampleClassBasedView(BaseBloomerpDetailView):
17
+ template_name = "sample_detail_view.html"
@@ -0,0 +1,7 @@
1
+ import os
2
+
3
+ from django.core.asgi import get_asgi_application
4
+
5
+ os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.settings.bloomerp")
6
+
7
+ application = get_asgi_application()
@@ -0,0 +1,67 @@
1
+ from pathlib import Path
2
+
3
+
4
+ BASE_DIR = Path(__file__).resolve().parent.parent.parent
5
+
6
+ SECRET_KEY = "change-me"
7
+ DEBUG = True
8
+ ALLOWED_HOSTS = []
9
+
10
+ INSTALLED_APPS = [
11
+ "django.contrib.admin",
12
+ "django.contrib.auth",
13
+ "django.contrib.contenttypes",
14
+ "django.contrib.sessions",
15
+ "django.contrib.messages",
16
+ "django.contrib.staticfiles",
17
+ "__APP_NAME__",
18
+ ]
19
+
20
+ MIDDLEWARE = [
21
+ "django.middleware.security.SecurityMiddleware",
22
+ "django.contrib.sessions.middleware.SessionMiddleware",
23
+ "django.middleware.common.CommonMiddleware",
24
+ "django.middleware.csrf.CsrfViewMiddleware",
25
+ "django.contrib.auth.middleware.AuthenticationMiddleware",
26
+ "django.contrib.messages.middleware.MessageMiddleware",
27
+ "django.middleware.clickjacking.XFrameOptionsMiddleware",
28
+ ]
29
+
30
+ ROOT_URLCONF = "config.urls"
31
+
32
+ TEMPLATES = [
33
+ {
34
+ "BACKEND": "django.template.backends.django.DjangoTemplates",
35
+ "DIRS": [],
36
+ "APP_DIRS": True,
37
+ "OPTIONS": {
38
+ "context_processors": [
39
+ "django.template.context_processors.request",
40
+ "django.contrib.auth.context_processors.auth",
41
+ "django.contrib.messages.context_processors.messages",
42
+ ],
43
+ },
44
+ },
45
+ ]
46
+
47
+ WSGI_APPLICATION = "config.wsgi.application"
48
+ ASGI_APPLICATION = "config.asgi.application"
49
+
50
+ DATABASES = {
51
+ "default": {
52
+ "ENGINE": "django.db.backends.sqlite3",
53
+ "NAME": BASE_DIR / "db.sqlite3",
54
+ }
55
+ }
56
+
57
+ AUTH_PASSWORD_VALIDATORS = []
58
+
59
+ LANGUAGE_CODE = "en-us"
60
+ TIME_ZONE = "UTC"
61
+ USE_I18N = True
62
+ USE_TZ = True
63
+
64
+ STATIC_URL = "static/"
65
+ STATIC_ROOT = BASE_DIR / "staticfiles"
66
+
67
+ DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField"
@@ -0,0 +1,29 @@
1
+ from .base import *
2
+
3
+ from bloomerp.config.settings import (
4
+ BLOOMERP_APPS,
5
+ BLOOMERP_AUTHENTICATION_BACKENDS,
6
+ BLOOMERP_MIDDLEWARE,
7
+ BLOOMERP_SITE_ID,
8
+ BLOOMERP_USER_MODEL,
9
+ )
10
+ from bloomerp.config import BloomerpConfig
11
+
12
+ INSTALLED_APPS += BLOOMERP_APPS
13
+ MIDDLEWARE += BLOOMERP_MIDDLEWARE
14
+ AUTHENTICATION_BACKENDS = BLOOMERP_AUTHENTICATION_BACKENDS
15
+ AUTH_USER_MODEL = BLOOMERP_USER_MODEL
16
+ SITE_ID = BLOOMERP_SITE_ID
17
+
18
+ CRISPY_ALLOWED_TEMPLATE_PACKS = "tailwind"
19
+ CRISPY_TEMPLATE_PACK = "tailwind"
20
+
21
+ BLOOMERP_CONFIG = BloomerpConfig()
22
+
23
+ BLOOMERP_SETTINGS = {
24
+ "globals": {
25
+ "organization_name": "__PROJECT_NAME__",
26
+ },
27
+ "BASE_URL": "",
28
+ "ROUTERS": [],
29
+ }
@@ -0,0 +1,7 @@
1
+ from django.contrib import admin
2
+ from django.urls import include, path
3
+
4
+ urlpatterns = [
5
+ path("admin/", admin.site.urls),
6
+ path("", include("bloomerp.urls")),
7
+ ]
@@ -0,0 +1,7 @@
1
+ import os
2
+
3
+ from django.core.wsgi import get_wsgi_application
4
+
5
+ os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.settings.bloomerp")
6
+
7
+ application = get_wsgi_application()
@@ -0,0 +1,20 @@
1
+ #!/usr/bin/env python
2
+ import os
3
+ import sys
4
+
5
+
6
+ def main():
7
+ os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.settings.bloomerp")
8
+ try:
9
+ from django.core.management import execute_from_command_line
10
+ except ImportError as exc:
11
+ raise ImportError(
12
+ "Couldn't import Django. Are you sure it's installed and "
13
+ "available on your PYTHONPATH environment variable? Did you "
14
+ "forget to activate a virtual environment?"
15
+ ) from exc
16
+ execute_from_command_line(sys.argv)
17
+
18
+
19
+ if __name__ == "__main__":
20
+ main()
@@ -7,6 +7,7 @@ from django.shortcuts import get_object_or_404
7
7
  from bloomerp.models.users.user_detail_view_preference import UserDetailViewPreference
8
8
  from bloomerp.router import router
9
9
  from bloomerp.services.detail_view_services import (
10
+ build_default_tab_state_from_tabs,
10
11
  get_ordered_tab_keys_from_state,
11
12
  get_router_detail_tabs,
12
13
  save_detail_tab_state,
@@ -38,14 +39,18 @@ def detail_tabs_preference(request: HttpRequest) -> HttpResponse:
38
39
 
39
40
  state_raw = request.POST.get('state')
40
41
  if not state_raw:
41
- return HttpResponse('Missing state', status=400)
42
+ state = build_default_tab_state_from_tabs(available_tabs)
43
+ else:
44
+ try:
45
+ state = json.loads(state_raw)
46
+ except json.JSONDecodeError:
47
+ state = build_default_tab_state_from_tabs(available_tabs)
42
48
 
43
49
  try:
44
- state = json.loads(state_raw)
45
- except json.JSONDecodeError:
46
- return HttpResponse('Invalid state payload', status=400)
47
-
48
- requested_keys = get_ordered_tab_keys_from_state(state)
50
+ requested_keys = get_ordered_tab_keys_from_state(state)
51
+ except ValueError:
52
+ state = build_default_tab_state_from_tabs(available_tabs)
53
+ requested_keys = get_ordered_tab_keys_from_state(state)
49
54
 
50
55
  existing_keys = {str(tab.get('key')) for tab in available_tabs if tab.get('key')}
51
56
  for key in requested_keys:
@@ -34,11 +34,17 @@ from django.contrib.auth import get_user_model
34
34
  from django.urls import reverse
35
35
  from django.urls import NoReverseMatch
36
36
 
37
+ from bloomerp.models.application_field import ApplicationField
38
+ from bloomerp.models.base_bloomerp_model import BloomerpModel
39
+ from bloomerp.models.definition import BloomerpModelConfig
37
40
  from bloomerp.router import router
38
41
  from bloomerp.modules.definition import module_registry
39
- from bloomerp.services.permission_services import UserPermissionManager
42
+ from bloomerp.services.permission_services import UserPermissionManager, create_permission_str
40
43
  from bloomerp.utils.models import string_search_queryset
41
44
 
45
+ from django.contrib.auth.models import Permission
46
+ from django.contrib.sessions.models import Session
47
+
42
48
  # -------------------------------
43
49
  # Helper functions
44
50
  # -------------------------------
@@ -108,6 +114,27 @@ def _resolve_models_by_name(model_key: str) -> list:
108
114
  matched.append(model)
109
115
  return matched
110
116
 
117
+ def _ignore_model(model) -> bool:
118
+ """Determines whether a model should be ignored in the search results."""
119
+ internal_models = [
120
+ ContentType,
121
+ ApplicationField,
122
+ Permission,
123
+ Session
124
+ ]
125
+
126
+ if not model or model in internal_models:
127
+ return True
128
+ if getattr(model._meta, "swapped", None):
129
+ return True
130
+
131
+ if hasattr(model, "bloomerp_config") and isinstance(getattr(model, "bloomerp_config"), BloomerpModelConfig):
132
+ config : BloomerpModelConfig = getattr(model, "bloomerp_config")
133
+ if config.is_internal:
134
+ return True
135
+
136
+ return False
137
+
111
138
  def _collect_object_results(
112
139
  request: HttpRequest,
113
140
  permission_manager: UserPermissionManager,
@@ -116,6 +143,19 @@ def _collect_object_results(
116
143
  per_model_limit: int,
117
144
  total_limit: int,
118
145
  ) -> tuple[list, bool]:
146
+ """Collects the results for objects in a way that is accesible to the template
147
+
148
+ Args:
149
+ request (HttpRequest): the request object
150
+ permission_manager (UserPermissionManager): the permissions manager
151
+ models (list): the list of models
152
+ search_value (str): the search value
153
+ per_model_limit (int): limit per model
154
+ total_limit (int): total limit
155
+
156
+ Returns:
157
+ tuple[list, bool]: a tuple containing the list of results and a boolean indicating if the results were truncated
158
+ """
119
159
  results = []
120
160
  total_results = 0
121
161
  truncated = False
@@ -124,26 +164,11 @@ def _collect_object_results(
124
164
  return results, truncated
125
165
 
126
166
  for model in models:
127
- if not model or model == ContentType:
128
- continue
129
- if getattr(model._meta, "swapped", None):
130
- continue
131
-
132
- content_type = ContentType.objects.get_for_model(model)
133
- row_policies_exist = permission_manager.get_row_policies().filter(
134
- content_type=content_type
135
- ).exists()
136
-
137
- permission_name = f"{model._meta.app_label}.view_{model._meta.model_name}"
138
-
139
- if request.user.is_superuser:
140
- base_qs = model.objects.all()
141
- elif row_policies_exist:
142
- base_qs = permission_manager.get_queryset(model, f"view_{model._meta.model_name}")
143
- elif request.user.has_perm(permission_name):
144
- base_qs = model.objects.all()
145
- else:
167
+ if _ignore_model(model):
146
168
  continue
169
+
170
+ # Get the objects
171
+ base_qs = permission_manager.get_queryset(model, create_permission_str(model, "view"))
147
172
 
148
173
  remaining_slots = total_limit - total_results
149
174
  if remaining_slots <= 0:
@@ -169,7 +194,11 @@ def _collect_object_results(
169
194
  {
170
195
  "model_label": model._meta.verbose_name_plural.title(),
171
196
  "module_labels": [item.name for item in module_registry.get_lineage(module.full_id or module.id)] if module else [],
172
- "objects": matching_objects,
197
+ "objects": matching_objects,
198
+ "detail_routes" : router.filter(
199
+ route_type="detail",
200
+ model=model,
201
+ )
173
202
  }
174
203
  )
175
204
 
@@ -180,7 +209,6 @@ def _collect_object_results(
180
209
 
181
210
  return results, truncated
182
211
 
183
-
184
212
  def _get_accessible_models(
185
213
  request: HttpRequest,
186
214
  permission_manager: UserPermissionManager,
@@ -263,6 +291,12 @@ def global_search(request: HttpRequest) -> HttpResponse:
263
291
  for route in router.get_routes():
264
292
  if route.name.startswith("components_"):
265
293
  continue
294
+ if route.path.startswith("/api/"):
295
+ continue
296
+
297
+ # We don't want to include routes that require arguments in the global search, as they cannot be directly navigated to without additional input. This is because the global search is designed for quick navigation, and including routes with required arguments could lead to confusion or dead ends in the search results.
298
+ if route.nr_of_args() > 0:
299
+ continue
266
300
 
267
301
  route_name = route.name or ""
268
302
  route_desc = route.description or ""
@@ -455,6 +489,7 @@ def global_search(request: HttpRequest) -> HttpResponse:
455
489
  TOTAL_LIMIT,
456
490
  )
457
491
  context["results_truncated"] = context["results_truncated"] or truncated
492
+
458
493
 
459
494
  return render(request, "components/global_search.html", context)
460
495
 
@@ -1,7 +1,10 @@
1
1
  from typing import Literal, Optional
2
-
3
2
  from pydantic import BaseModel, Field
4
3
 
4
+ INTERNAL_MODELS = [
5
+
6
+ ]
7
+
5
8
 
6
9
  class SocialProviderSettings(BaseModel):
7
10
  provider: str
@@ -347,6 +347,15 @@ ON_DELETE_FIELD_OPTION = FieldOption(
347
347
  choices=["CASCADE", "PROTECT", "SET_NULL", "SET_DEFAULT", "DO_NOTHING"],
348
348
  )
349
349
 
350
+ CHOICES_FIELD_OPTION = FieldOption(
351
+ "choices",
352
+ "Choices",
353
+ "choices",
354
+ "Fixed options available for this field.",
355
+ required=True,
356
+ default_value=[],
357
+ )
358
+
350
359
  COMMON_FIELD_OPTIONS = [
351
360
  VERBOSE_NAME_FIELD_OPTION,
352
361
  NULL_FIELD_OPTION,
@@ -362,6 +371,12 @@ COMMON_TEXT_FIELD_OPTIONS = [
362
371
  MAX_LENGTH_FIELD_OPTION,
363
372
  ]
364
373
 
374
+ COMMON_CHOICE_FIELD_OPTIONS = [
375
+ *COMMON_FIELD_OPTIONS,
376
+ CHOICES_FIELD_OPTION,
377
+ MAX_LENGTH_FIELD_OPTION,
378
+ ]
379
+
365
380
  COMMON_RELATION_FIELD_OPTIONS = [
366
381
  TO_FIELD_OPTION,
367
382
  VERBOSE_NAME_FIELD_OPTION,
@@ -527,7 +542,7 @@ class FieldType(Enum):
527
542
  default_model_field_args={
528
543
  "max_length": 50,
529
544
  },
530
- field_options=COMMON_TEXT_FIELD_OPTIONS,
545
+ field_options=COMMON_CHOICE_FIELD_OPTIONS,
531
546
  )
532
547
 
533
548
  TEXT_FIELD = FieldTypeDefinition(
@@ -8,8 +8,8 @@ from bloomerp.services.sectioned_layout_services import normalize_layout_payload
8
8
 
9
9
 
10
10
  def get_default_tab_state() -> dict:
11
- from bloomerp.services.detail_view_services import get_default_tab_state_v2
12
- return get_default_tab_state_v2()
11
+ from bloomerp.services.detail_view_services import get_default_tab_state
12
+ return get_default_tab_state()
13
13
 
14
14
  class UserDetailViewPreference(models.Model):
15
15
  """
@@ -60,10 +60,15 @@ class UserDetailViewPreference(models.Model):
60
60
  )
61
61
  if qs.exists():
62
62
  preference = qs.first()
63
+ update_fields: list[str] = []
64
+
63
65
  if not preference.field_layout_obj.rows or not any(row.items for row in preference.field_layout_obj.rows):
64
66
  from bloomerp.services.detail_view_services import get_default_layout
65
67
  preference.field_layout = get_default_layout(content_type=content_type, user=user).model_dump()
66
- preference.save(update_fields=["field_layout"])
68
+ update_fields.append("field_layout")
69
+
70
+ if update_fields:
71
+ preference.save(update_fields=update_fields)
67
72
  return preference
68
73
 
69
74
  return UserDetailViewPreference.create_default_for_user(user, content_type)
@@ -102,7 +107,10 @@ class UserDetailViewPreference(models.Model):
102
107
  from bloomerp.services.detail_view_services import normalize_detail_tab_state
103
108
  if not isinstance(self.tab_state, dict):
104
109
  return get_default_tab_state()
105
- return normalize_detail_tab_state(self.tab_state)
110
+ try:
111
+ return normalize_detail_tab_state(self.tab_state)
112
+ except ValueError:
113
+ return get_default_tab_state()
106
114
 
107
115
 
108
116