Bloomerp 1.0.0.dev27__tar.gz → 1.0.0.dev29__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.
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/Bloomerp.egg-info/PKG-INFO +4 -4
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/Bloomerp.egg-info/SOURCES.txt +1 -2
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/PKG-INFO +4 -4
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/README.md +3 -3
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/views/access_control/manage_permissions.py +3 -2
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/views/access_control/policy_list.py +3 -2
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/views/access_control/update.py +5 -2
- bloomerp-1.0.0.dev29/bloomerp/views/base.py +14 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/views/core/__init__.py +2 -4
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/views/core/bulk_upload.py +2 -1
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/views/core/create_view.py +2 -3
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/views/core/detail_comments.py +2 -2
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/views/core/file_list.py +2 -1
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/views/core/list_view.py +3 -2
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/views/detail/access_control.py +2 -2
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/views/detail/activity_log.py +2 -2
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/views/detail/base_detail.py +2 -1
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/views/detail/comments.py +2 -2
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/views/detail/delete_view.py +2 -2
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/views/detail/files.py +3 -2
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/views/detail/foreign_relationship.py +2 -2
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/views/detail/overview.py +2 -2
- bloomerp-1.0.0.dev29/bloomerp/views/document_templates/__init__.py +1 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/views/document_templates/document_template_editor.py +2 -2
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/views/document_templates/generate_document_template.py +2 -2
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/views/document_templates/generate_document_template_for_model.py +2 -2
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/views/document_templates/generated_document_template_list.py +2 -2
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/views/user/admin_reset_password.py +5 -3
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/views/user/create_user.py +10 -7
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/views/user/inbox.py +2 -1
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/views/user/profile.py +3 -3
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/views/user/reset_password.py +3 -4
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/views/website_builder/create_website.py +2 -1
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/views/workspace/base_workspace_view.py +2 -1
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/views/workspace/create_tile.py +2 -1
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/views/workspace/create_workspace.py +2 -1
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/views/workspace/home.py +2 -1
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/views/workspace/workspace.py +1 -2
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/pyproject.toml +1 -1
- bloomerp-1.0.0.dev27/bloomerp/views/core/delete_view.py +0 -120
- bloomerp-1.0.0.dev27/bloomerp/views/user/base.py +0 -17
- bloomerp-1.0.0.dev27/bloomerp/workspaces/links_tile/__init__.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/Bloomerp.egg-info/dependency_links.txt +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/Bloomerp.egg-info/entry_points.txt +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/Bloomerp.egg-info/requires.txt +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/Bloomerp.egg-info/top_level.txt +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/__init__.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/admin.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/apps.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/automation/actions/__init__.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/automation/actions/call_api.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/automation/actions/create_object.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/automation/actions/delete_object.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/automation/actions/send_email.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/automation/base_executor.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/automation/defintion.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/automation/flows/__init__.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/automation/flows/if_condition.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/automation/triggers/base.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/automation/triggers/human_trigger.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/automation/triggers/object_crud_trigger.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/automation/triggers/webhook_trigger.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/cli.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/components/access_control/preview_permissions_table.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/components/application_fields/filters.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/components/automation/render_workflow_node.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/components/bookmark.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/components/bulk_actions/bulk_upload.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/components/comments.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/components/detail_tabs_folder_modal.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/components/detail_tabs_preference.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/components/document_templates/generate_document_template.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/components/execute_sql_query.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/components/files.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/components/global_search.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/components/llm/ai_conversations.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/components/objects/bulk_update_objects.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/components/objects/crud_object.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/components/objects/dataview.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/components/objects/delete_object.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/components/objects/object_preview.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/components/objects/search_objects.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/components/project_management/create_todo.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/components/project_management/todos.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/components/sign_file.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/components/todos.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/components/workspaces/available_workspace_tiles.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/components/workspaces/crud_layout_available_fields.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/components/workspaces/crud_layout_preference.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/components/workspaces/crud_layout_render_field.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/components/workspaces/delete_workspace.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/components/workspaces/edit_workspace.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/components/workspaces/preview_workspace_tile.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/components/workspaces/render_workspace_tile.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/components/workspaces/save_workspace_layout.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/components/workspaces/share_workspace.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/components/workspaces/sidebar.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/config/__init__.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/config/definition.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/config/settings.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/config/validator.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/consumers.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/context_processors.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/field_types.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/form_fields/__init__.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/form_fields/icon_field.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/forms/auth.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/forms/bulk_upload_form.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/forms/core.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/forms/document_templates.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/forms/layouts.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/forms/model_form.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/forms/sidebar.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/forms/widgets.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/forms/workspaces.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/langchain_tools.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/management/commands/create_sdk.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/management/commands/get_urls.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/management/commands/save_application_fields.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/management/commands/validate_bloomerp.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/middleware.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/migrations/0001_initial.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/migrations/0002_workspace_single_module_context.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/migrations/__init__.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/model_fields/code_field.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/model_fields/file_field.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/model_fields/icon_field.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/model_fields/status_field.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/model_fields/text_editor_field.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/model_fields/user_field.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/models/__init__.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/models/access_control/__init__.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/models/access_control/field_policy.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/models/access_control/policy.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/models/access_control/row_policy.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/models/access_control/row_policy_rule.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/models/activity_log.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/models/application_field.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/models/automation/__init__.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/models/automation/workflow.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/models/automation/workflow_edge.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/models/automation/workflow_node.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/models/automation/workflow_run.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/models/base_bloomerp_model.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/models/communication/__init__.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/models/communication/comment.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/models/communication/mention.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/models/communication/message.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/models/communication/signature_request.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/models/definition.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/models/document_templates/__init__.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/models/document_templates/document_tempate_styling.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/models/document_templates/document_template.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/models/document_templates/document_template_free_variable.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/models/document_templates/document_template_header.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/models/files/__init__.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/models/files/file.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/models/files/file_folder.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/models/llm/__init__.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/models/llm/ai_conversation.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/models/mixins/__init__.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/models/mixins/absolute_url_model_mixin.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/models/mixins/avatar_model_mixin.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/models/mixins/content_layout_model_mixin.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/models/mixins/string_search_model_mixin.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/models/mixins/timestamp_model_mixin.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/models/mixins/user_stamp_model_mixin.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/models/mixins/uuid_model_mixin.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/models/project_management/__init__.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/models/project_management/todo.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/models/project_management/todo_label.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/models/users/__init__.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/models/users/bookmark.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/models/users/user.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/models/users/user_create_view_preference.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/models/users/user_detail_view_preference.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/models/users/user_list_view_preference.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/models/workspaces/__init__.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/models/workspaces/database_connection.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/models/workspaces/sidebar.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/models/workspaces/sidebar_item.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/models/workspaces/sql_query.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/models/workspaces/tile.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/models/workspaces/workspace.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/modules/__init__.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/modules/automation.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/modules/core.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/modules/definition.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/modules/misc.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/modules/users.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/router.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/routing.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/sdk/base.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/sdk/javascript.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/sdk/python.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/sdk/typescript.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/serializers/access_control.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/services/__init__.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/services/bulk_services.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/services/create_view_services.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/services/detail_view_services.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/services/document_services.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/services/file_services.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/services/object_services.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/services/permission_services.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/services/sectioned_layout_services.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/services/sql_services.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/services/user_services.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/services/workflow_services.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/services/workspace_services.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/signals/__init__.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/signals/automations.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/css/dist/styles.css +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/icons/add-circle.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/icons/add.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/icons/ai.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/icons/alt-arrow-right.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/icons/archive.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/icons/arrow-right.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/icons/bell.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/icons/bookmark-filled.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/icons/bookmark.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/icons/chat-line.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/icons/chat-round.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/icons/clipboard-list.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/icons/clipboard.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/icons/close.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/icons/code.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/icons/database.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/icons/delete.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/icons/dots.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/icons/download.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/icons/edit.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/icons/editor-text.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/icons/eye.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/icons/file.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/icons/filter.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/icons/flag.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/icons/folder.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/icons/forward.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/icons/html.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/icons/info.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/icons/insert-content.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/icons/magic-stick.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/icons/menu-dots.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/icons/notebook.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/icons/pen.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/icons/refresh.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/icons/settings.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/icons/share.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/icons/success.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/icons/text-editor.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/icons/text.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/img/default-user.jpg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/img/login-side-section.png +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/img/logo-touch-icon.png +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/img/logo.png +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/img/spinner.gif +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/Assistant-Bold.woff2 +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/Assistant-Medium.woff2 +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/Assistant-Regular.woff2 +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/Assistant-SemiBold.woff2 +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/Tableau10-B-NsZVaP.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/Tableau10-B-NsZVaP.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/_commonjs-dynamic-modules-TDtrdbi3.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/_commonjs-dynamic-modules-TDtrdbi3.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/ar-SA-G6X2FPQ2-CK2Gu2Y5.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/ar-SA-G6X2FPQ2-CK2Gu2Y5.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/arc-DaW-gdDM.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/arc-DaW-gdDM.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/array-BKyUJesY.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/array-BKyUJesY.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/az-AZ-76LH7QW2-CKmAwp1N.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/az-AZ-76LH7QW2-CKmAwp1N.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/bg-BG-XCXSNQG7-CWygTFku.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/bg-BG-XCXSNQG7-CWygTFku.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/blockDiagram-38ab4fdb-BBcDLEtG.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/blockDiagram-38ab4fdb-BBcDLEtG.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/bn-BD-2XOGV67Q-DuL68nNM.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/bn-BD-2XOGV67Q-DuL68nNM.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/c4Diagram-3d4e48cf-lpy0lBqf.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/c4Diagram-3d4e48cf-lpy0lBqf.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/ca-ES-6MX7JW3Y-B69sm8qr.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/ca-ES-6MX7JW3Y-B69sm8qr.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/channel-Ba5rdWwT.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/channel-Ba5rdWwT.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/classDiagram-70f12bd4-Bbcf2OzC.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/classDiagram-70f12bd4-Bbcf2OzC.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/classDiagram-v2-f2320105-B-2MSq9-.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/classDiagram-v2-f2320105-B-2MSq9-.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/clone-DrKFBTPT.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/clone-DrKFBTPT.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/createText-2e5e7dd3-KhyxJJnV.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/createText-2e5e7dd3-KhyxJJnV.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/cs-CZ-2BRQDIVT-BCanBcxR.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/cs-CZ-2BRQDIVT-BCanBcxR.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/da-DK-5WZEPLOC-Di_u1pON.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/da-DK-5WZEPLOC-Di_u1pON.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/de-DE-XR44H4JA-DtEHufg9.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/de-DE-XR44H4JA-DtEHufg9.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/directory-open-01563666-DWU9wJ6I.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/directory-open-01563666-DWU9wJ6I.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/directory-open-4ed118d0-CunoC1EB.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/directory-open-4ed118d0-CunoC1EB.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/edges-e0da2a9e-jmO6-aAj.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/edges-e0da2a9e-jmO6-aAj.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/el-GR-BZB4AONW-B3ooA35P.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/el-GR-BZB4AONW-B3ooA35P.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/erDiagram-9861fffd-4aFK3gLr.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/erDiagram-9861fffd-4aFK3gLr.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/es-ES-U4NZUMDT-C89vbhXk.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/es-ES-U4NZUMDT-C89vbhXk.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/eu-ES-A7QVB2H4-DAS3HNcb.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/eu-ES-A7QVB2H4-DAS3HNcb.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/ext-language_tools-VvI1RQQ9.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/ext-language_tools-VvI1RQQ9.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/fa-IR-HGAKTJCU-DppGf8_q.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/fa-IR-HGAKTJCU-DppGf8_q.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/fi-FI-Z5N7JZ37-uilqd2NJ.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/fi-FI-Z5N7JZ37-uilqd2NJ.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/file-open-002ab408-DIuFHtCF.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/file-open-002ab408-DIuFHtCF.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/file-open-7c801643-684qeFg4.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/file-open-7c801643-684qeFg4.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/file-save-3189631c-C1wFhQhH.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/file-save-3189631c-C1wFhQhH.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/file-save-745eba88-Bb9F9Kg7.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/file-save-745eba88-Bb9F9Kg7.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/flowDb-956e92f1-3zMuB-v2.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/flowDb-956e92f1-3zMuB-v2.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/flowDiagram-66a62f08-G-6kTyb1.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/flowDiagram-66a62f08-G-6kTyb1.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/flowDiagram-v2-96b9c2cf-Buk37fc7.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/flowDiagram-v2-96b9c2cf-Buk37fc7.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/flowchart-elk-definition-4a651766-0BoFZGh4.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/flowchart-elk-definition-4a651766-0BoFZGh4.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/fr-FR-RHASNOE6-CxpEXN3k.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/fr-FR-RHASNOE6-CxpEXN3k.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/ganttDiagram-c361ad54-DA78CZLA.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/ganttDiagram-c361ad54-DA78CZLA.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/gitGraphDiagram-72cf32ee-ubJgA-O8.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/gitGraphDiagram-72cf32ee-ubJgA-O8.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/gl-ES-HMX3MZ6V-Baj94Mgr.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/gl-ES-HMX3MZ6V-Baj94Mgr.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/graph-BJ8w43MV.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/graph-BJ8w43MV.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/he-IL-6SHJWFNN-DlWSA3CP.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/he-IL-6SHJWFNN-DlWSA3CP.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/hi-IN-IWLTKZ5I-DFtM_rbK.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/hi-IN-IWLTKZ5I-DFtM_rbK.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/hu-HU-A5ZG7DT2-DjJwQV6U.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/hu-HU-A5ZG7DT2-DjJwQV6U.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/id-ID-SAP4L64H-CNUZwcT-.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/id-ID-SAP4L64H-CNUZwcT-.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/image-blob-reduce.esm-D6s-rqMO.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/image-blob-reduce.esm-D6s-rqMO.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/index-3862675e-CnZunDFP.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/index-3862675e-CnZunDFP.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/index-ByP55a0-.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/index-ByP55a0-.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/infoDiagram-f8f76790-ssUZCNU_.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/infoDiagram-f8f76790-ssUZCNU_.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/init-Gi6I4Gst.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/init-Gi6I4Gst.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/it-IT-JPQ66NNP-B27GUTt2.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/it-IT-JPQ66NNP-B27GUTt2.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/ja-JP-DBVTYXUO-B8WamdbO.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/ja-JP-DBVTYXUO-B8WamdbO.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/journeyDiagram-49397b02-XNwXBdxQ.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/journeyDiagram-49397b02-XNwXBdxQ.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/kaa-6HZHGXH3-BBK7q2CG.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/kaa-6HZHGXH3-BBK7q2CG.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/kab-KAB-ZGHBKWFO-C6lcpCZh.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/kab-KAB-ZGHBKWFO-C6lcpCZh.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/katex-Cbg2ZdjV.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/katex-Cbg2ZdjV.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/kk-KZ-P5N5QNE5-B2VetCQo.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/kk-KZ-P5N5QNE5-B2VetCQo.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/km-KH-HSX4SM5Z-D1q5ygn9.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/km-KH-HSX4SM5Z-D1q5ygn9.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/ko-KR-MTYHY66A-CpZbuWOH.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/ko-KR-MTYHY66A-CpZbuWOH.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/ku-TR-6OUDTVRD-BNyUf0Bt.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/ku-TR-6OUDTVRD-BNyUf0Bt.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/layout-Dey6RYL_.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/layout-Dey6RYL_.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/line-B24sOtFj.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/line-B24sOtFj.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/linear-BkSjxDAM.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/linear-BkSjxDAM.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/lt-LT-XHIRWOB4-_zTqBu4S.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/lt-LT-XHIRWOB4-_zTqBu4S.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/lv-LV-5QDEKY6T-D3fddlas.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/lv-LV-5QDEKY6T-D3fddlas.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/main.css +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/main.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/main.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/mindmap-definition-fc14e90a-_Ik9ImMw.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/mindmap-definition-fc14e90a-_Ik9ImMw.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/mode-css-D-OVArme.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/mode-css-D-OVArme.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/mode-html-QfHwmmzV.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/mode-html-QfHwmmzV.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/mode-javascript-z0IbjNXF.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/mode-javascript-z0IbjNXF.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/mode-json-Cn7l4vuz.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/mode-json-Cn7l4vuz.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/mode-python-DpO_9WT_.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/mode-python-DpO_9WT_.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/mode-sql-C8joBxoz.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/mode-sql-C8joBxoz.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/mr-IN-CRQNXWMA-mJGCdWNY.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/mr-IN-CRQNXWMA-mJGCdWNY.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/my-MM-5M5IBNSE-tCzE3wUe.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/my-MM-5M5IBNSE-tCzE3wUe.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/nb-NO-T6EIAALU-CcfIyzjM.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/nb-NO-T6EIAALU-CcfIyzjM.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/nl-NL-IS3SIHDZ-V3Y8eebu.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/nl-NL-IS3SIHDZ-V3Y8eebu.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/nn-NO-6E72VCQL-Cfqlut23.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/nn-NO-6E72VCQL-Cfqlut23.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/oc-FR-POXYY2M6-ohBwGZKH.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/oc-FR-POXYY2M6-ohBwGZKH.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/ordinal-Cboi1Yqb.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/ordinal-Cboi1Yqb.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/pa-IN-N4M65BXN-CBmdgeU2.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/pa-IN-N4M65BXN-CBmdgeU2.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/path-CbwjOpE9.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/path-CbwjOpE9.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/pica-BB6BlTPh.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/pica-BB6BlTPh.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/pieDiagram-8a3498a8-ykWXg0e6.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/pieDiagram-8a3498a8-ykWXg0e6.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/pl-PL-T2D74RX3-BJgiuUes.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/pl-PL-T2D74RX3-BJgiuUes.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/pt-BR-5N22H2LF-DlafgNui.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/pt-BR-5N22H2LF-DlafgNui.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/pt-PT-UZXXM6DQ-9tFdflGO.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/pt-PT-UZXXM6DQ-9tFdflGO.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/quadrantDiagram-120e2f19-60h8VhUL.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/quadrantDiagram-120e2f19-60h8VhUL.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/requirementDiagram-deff3bca-WIV3h0C3.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/requirementDiagram-deff3bca-WIV3h0C3.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/ro-RO-JPDTUUEW-D7CFGK5Y.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/ro-RO-JPDTUUEW-D7CFGK5Y.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/roundRect-2e6Pdbcn.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/roundRect-2e6Pdbcn.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/ru-RU-B4JR7IUQ--pPA0JjS.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/ru-RU-B4JR7IUQ--pPA0JjS.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/sankeyDiagram-04a897e0-Du6WxD-I.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/sankeyDiagram-04a897e0-Du6WxD-I.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/sequenceDiagram-704730f1-GcKlMTtP.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/sequenceDiagram-704730f1-GcKlMTtP.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/si-LK-N5RQ5JYF-C64FsAc5.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/si-LK-N5RQ5JYF-C64FsAc5.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/sk-SK-C5VTKIMK-aE0uH2SW.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/sk-SK-C5VTKIMK-aE0uH2SW.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/sl-SI-NN7IZMDC-Dph0kz_u.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/sl-SI-NN7IZMDC-Dph0kz_u.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/stateDiagram-587899a1-N4TLoQEY.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/stateDiagram-587899a1-N4TLoQEY.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/stateDiagram-v2-d93cdb3a-D_Yrr8Fl.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/stateDiagram-v2-d93cdb3a-D_Yrr8Fl.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/styles-6aaf32cf-Smyq2-dj.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/styles-6aaf32cf-Smyq2-dj.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/styles-9a916d00-B_AgfPKS.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/styles-9a916d00-B_AgfPKS.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/styles-c10674c1-BkQljQuy.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/styles-c10674c1-BkQljQuy.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/subset-shared.chunk-CDXhA_Wq.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/subset-shared.chunk-CDXhA_Wq.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/subset-worker.chunk-DU1iOD2Y.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/subset-worker.chunk-DU1iOD2Y.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/sv-SE-XGPEYMSR-C7sC_7mW.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/sv-SE-XGPEYMSR-C7sC_7mW.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/svgDrawCommon-08f97a94-CigDLztM.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/svgDrawCommon-08f97a94-CigDLztM.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/ta-IN-2NMHFXQM-DFFiee37.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/ta-IN-2NMHFXQM-DFFiee37.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/th-TH-HPSO5L25-4Wno9YgB.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/th-TH-HPSO5L25-4Wno9YgB.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/theme-chrome-DJhsRuk2.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/theme-chrome-DJhsRuk2.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/timeline-definition-85554ec2-CW5L4AdV.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/timeline-definition-85554ec2-CW5L4AdV.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/tr-TR-DEFEU3FU-CtRCfv3G.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/tr-TR-DEFEU3FU-CtRCfv3G.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/uk-UA-QMV73CPH-C_gySul2.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/uk-UA-QMV73CPH-C_gySul2.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/vi-VN-M7AON7JQ-DhAxvLha.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/vi-VN-M7AON7JQ-DhAxvLha.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/xychartDiagram-e933f94c-8tQw0CB3.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/xychartDiagram-e933f94c-8tQw0CB3.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/zh-CN-LNUGB5OW-BXqXStir.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/zh-CN-LNUGB5OW-BXqXStir.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/zh-HK-E62DVLB3-5ytNjPYj.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/zh-HK-E62DVLB3-5ytNjPYj.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/zh-TW-RAJ6MFWO-Cjr-rcDc.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/dist/zh-TW-RAJ6MFWO-Cjr-rcDc.js.map +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/htmx-download.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/js/llm.js +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/vendor/fontawesome/css/all.min.css +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/vendor/fontawesome/webfonts/fa-brands-400.woff2 +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/vendor/fontawesome/webfonts/fa-regular-400.woff2 +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/vendor/fontawesome/webfonts/fa-solid-900.woff2 +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/bloomerp/vendor/fontawesome/webfonts/fa-v4compatibility.woff2 +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static/css/dist/styles.css +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static_src/node_modules/katex/src/fonts/generate_fonts.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static_src/node_modules/katex/src/metrics/extract_tfms.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static_src/node_modules/katex/src/metrics/extract_ttfs.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static_src/node_modules/katex/src/metrics/format_json.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static_src/node_modules/katex/src/metrics/parse_tfm.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/static_src/node_modules/shell-quote/print.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/tasks/__init__.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/tasks/base.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/tasks/bulk_upload_task.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/403.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/access_control_views/manage_permissions/wizard_global_permissions.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/access_control_views/manage_permissions/wizard_object_access_control.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/access_control_views/manage_permissions/wizard_policy_details.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/access_control_views/policy_list.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/auth_views/login_view.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/auth_views/password_reset_done_view.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/auth_views/password_reset_view.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/auth_views/profile_overview.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/auth_views/profile_password_reset.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/base_wizard.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/bloomerp_base.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/bloomerp_htmx_base_view.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/components/access_control/preview_permissions_table.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/components/access_control/row_policy.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/components/application_fields/lookup_operators.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/components/application_fields/value_input.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/components/automation/render_workflow_node.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/components/bookmark.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/components/bulk_actions/download_bulk_upload_template_form.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/components/bulk_update_objects.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/components/bulk_upload_table.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/components/comments.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/components/detail_tabs/folder_modal_form.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/components/execute_sql_query.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/components/files/browser.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/components/filters/advanced_lookup.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/components/filters/init.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/components/filters/related_fields_select.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/components/fk_search_results.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/components/generate_document_template.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/components/global_search.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/components/layouts/available_items.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/components/llm/ai_conversation.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/components/llm/ai_conversations.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/components/object_model_form.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/components/objects/dataview.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/components/objects/object_preview.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/components/objects/search_results.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/components/preview_document_template.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/components/project_management/create_todo.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/components/project_management/todos.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/components/search_results.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/components/sidebar/content.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/components/sidebar/select_sidebar_items.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/components/test_cotton_component.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/components/todos.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/components/workspace_widget.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/components/workspaces/delete_workspace.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/components/workspaces/edit_workspace.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/components/workspaces/preview_workspace_tile.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/components/workspaces/render_workspace_tile.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/components/workspaces/share_workspace.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/components/workspaces/tile_builders/analytics_tile_builder.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/components/workspaces/tile_builders/dataview_tile_builder.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/components/workspaces/tile_builders/default_tile_builder.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/components/workspaces/tile_builders/links_tile_builder.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/components/workspaces/tile_builders/text_tile_builder.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/blocktrans.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/comments/comment.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/comments/container.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/footer.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/header/header.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/add.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/ai.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/arrow_left.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/arrow_right.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/base_icon.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/bookmark.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/bookmark_fill.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/calendar.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/chart.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/chat.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/check.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/chevron_left.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/chevron_right.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/close.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/collapse.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/copy.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/delete.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/download.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/drag.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/edit.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/email.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/error.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/expand.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/external_link.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/eye.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/file.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/filter.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/folder.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/fullscreen.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/gant.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/help.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/home.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/info.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/kanban.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/lines_horizontal.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/list.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/list.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/lock.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/logout.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/map.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/menu.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/message.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/notification.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/page_type.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/pivot_table.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/plus.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/plus_circle.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/refresh.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/save.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/scroll.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/search.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/settings.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/shield.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/sidebar_right.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/sidebar_right_selected.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/sort.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/sort.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/spinner.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/table.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/tags.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/three_dots.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/todo.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/unlock.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/upload.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/user.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/zoom_in.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/icons/zoom_out.svg +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/object_crud_container.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/sidebar/body.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/sidebar/dropdown_list_container.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/sidebar/dropdown_section.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/sidebar/item.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/trans.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/ui/avatar.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/ui/breadcrumb/body.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/ui/breadcrumb/item.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/ui/container.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/ui/data_view/actions.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/ui/data_view/calendar.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/ui/data_view/card.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/ui/data_view/display_options.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/ui/data_view/gant_chart.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/ui/data_view/kanban.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/ui/data_view/options/select.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/ui/data_view/pivot_table.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/ui/data_view/table.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/ui/drawer.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/ui/dropdown/README.md +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/ui/dropdown/body.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/ui/dropdown/divider.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/ui/dropdown/item.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/ui/dropdown/submenu.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/ui/dropdown/title.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/ui/inputs/dropdown_input.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/ui/inputs/permissions.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/ui/inputs/selectable_cards/container.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/ui/inputs/selectable_cards/item.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/ui/inputs/sql_query_editor.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/ui/inputs/text_editor.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/ui/menu/container.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/ui/menu/item.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/ui/message.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/ui/modal.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/ui/modal_button.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/ui/search_section/container.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/ui/steps.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/ui/tabs/container.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/ui/tabs/item.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/ui/text/help_text.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/ui/text/label.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/ui/text/muted.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/ui/text/subtitle.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/ui/text/text.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/ui/text/title.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/ui/tooltip.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/website_builder.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/workflow.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/workspaces/container.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/workspaces/preview_tile_container.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/workspaces/tile.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/workspaces/tiles/canvas.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/workspaces/tiles/kpi.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/workspaces/tiles/link.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/workspaces/tiles/pie_chart.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/workspaces/tiles/table.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/workspaces/tiles/text.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/cotton/workspaces/tiles/two_dim_chart.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/create_views/bloomerp_base_wizard_create_view.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/create_views/bloomerp_create_view.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/create_website.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/delete_views/bloomerp_delete_view.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/detail_views/bloomerp_base_detail_view.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/detail_views/bloomerp_detail_activity_view.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/detail_views/bloomerp_detail_comments_view.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/detail_views/bloomerp_detail_files_view.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/detail_views/bloomerp_detail_m2m_view.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/detail_views/bloomerp_detail_overview_view.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/detail_views/bloomerp_foreign_relationship_view.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/detail_views/snippets/card_header.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/detail_views/snippets/post_comment_snippet.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/document_template_views/bloomerp_detail_document_generator_view.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/document_template_views/bloomerp_document_template_editor_view.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/document_template_views/bloomerp_document_template_generate_view.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/document_template_views/bloomerp_document_template_generated_documents_view.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/document_template_views/bloomerp_document_template_list_view.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/htmx_addendum.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/inclusion_tags/dataview_value.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/inclusion_tags/layout_field.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/inclusion_tags/object_preview_value.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/list_views/bloomerp_bookmarks_view.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/list_views/bloomerp_file_list_view.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/list_views/bloomerp_list_view.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/list_views/bulk_upload_wizard/confirm_step.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/list_views/bulk_upload_wizard/review_field.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/list_views/bulk_upload_wizard/review_step.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/list_views/bulk_upload_wizard/upload_step.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/list_views/snippets/filter_dropdown.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/mixins/bloomerp_layout_form_mixin.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/snippets/403.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/snippets/avatar.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/snippets/form_snippet.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/snippets/head.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/snippets/llm_modal_snippet.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/snippets/signature_snippet.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/snippets/vite_bundle.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/tailwind/display_form.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/tailwind/errors.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/tailwind/errors_formset.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/tailwind/field.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/tailwind/inputs.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/tailwind/layout/alert.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/tailwind/layout/attrs.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/tailwind/layout/baseinput.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/tailwind/layout/button.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/tailwind/layout/buttonholder.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/tailwind/layout/checkboxselectmultiple.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/tailwind/layout/checkboxselectmultiple_inline.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/tailwind/layout/column.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/tailwind/layout/div.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/tailwind/layout/field_errors.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/tailwind/layout/field_errors_block.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/tailwind/layout/field_with_buttons.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/tailwind/layout/fieldset.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/tailwind/layout/formactions.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/tailwind/layout/help_text.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/tailwind/layout/help_text_and_errors.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/tailwind/layout/inline_field.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/tailwind/layout/prepended_appended_text.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/tailwind/layout/radioselect.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/tailwind/layout/radioselect_inline.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/tailwind/layout/row.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/tailwind/layout/select.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/tailwind/layout/select_option.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/tailwind/table_inline_formset.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/tailwind/uni_form.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/tailwind/uni_formset.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/tailwind/whole_uni_form.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/tailwind/whole_uni_formset.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/user_views/inbox_view.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/user_views/new_password_done_view.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/user_views/new_password_view.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/user_views/notification_setting_view.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/user_views/snippets/user_content_type_selection_snippet.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/utils/blank_form.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/utils/template_and_message.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/widgets/bloomerp_file_field_widget.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/widgets/code_editor_widget.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/widgets/foreign_field_widget.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/widgets/icon_picker_widget.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/widgets/one_to_many_field_widget.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/widgets/rich_text_editor_widget.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/widgets/tiny_mce_text_editor_widget.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/workspace_views/bloomerp_home_view.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/workspace_views/bloomerp_workspace_view.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/workspace_views/create_tile_wizard/1.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/workspace_views/create_tile_wizard/create_tile.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/workspace_views/create_tile_wizard/create_tile_analytics_builder.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/workspace_views/create_tile_wizard/create_tile_final_config.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/workspace_views/create_tile_wizard/create_tile_select_query.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/workspace_views/create_tile_wizard/create_tile_select_type.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/workspace_views/create_tile_wizard/create_tile_type_config.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/workspace_views/create_workspace_view.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templates/workspace_views/my_workspaces_view.html +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templatetags/bloomerp.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templatetags/bloomerp_ui.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/templatetags/globals.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/urls.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/utils/api.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/utils/document_templates.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/utils/encryption.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/utils/filters.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/utils/model_io.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/utils/models.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/utils/pdf.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/utils/realtime.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/utils/requests.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/utils/sql.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/utils/urls.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/views/__init__.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/views/api/__init__.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/views/api/access_control.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/views/api/api_views.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/views/api/auth.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/views/api/sql/__init__.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/views/api/sql/accessible_tables.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/views/api/sql/queries.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/views/api/workflow_webhook.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/views/core/bookmarks.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/views/detail/__init__.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/views/mixins/__init__.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/views/mixins/conditional_staff_required_mixin.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/views/mixins/htmx_mixin.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/views/mixins/layout_form_mixin.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/views/mixins/model_context_mixin.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/views/mixins/model_form_view_mixin.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/views/mixins/wizard_mixin.py +0 -0
- {bloomerp-1.0.0.dev27/bloomerp/views/document_templates → bloomerp-1.0.0.dev29/bloomerp/views/user}/__init__.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/views/workspace/module_home.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/views/workspace/my_workspaces.py +0 -0
- {bloomerp-1.0.0.dev27/bloomerp/views/user → bloomerp-1.0.0.dev29/bloomerp/widgets}/__init__.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/widgets/code_editor_widget.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/widgets/file_field_widget.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/widgets/foreign_field_widget.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/widgets/icon_picker_widget.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/widgets/one_to_many_field_widget.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/widgets/select_widget.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/widgets/text_editor.py +0 -0
- {bloomerp-1.0.0.dev27/bloomerp/widgets → bloomerp-1.0.0.dev29/bloomerp/workspaces/analytics_tile}/__init__.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/workspaces/analytics_tile/kpi.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/workspaces/analytics_tile/map.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/workspaces/analytics_tile/model.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/workspaces/analytics_tile/pie_chart.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/workspaces/analytics_tile/pivot_table.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/workspaces/analytics_tile/render.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/workspaces/analytics_tile/table.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/workspaces/analytics_tile/three_dim_chart.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/workspaces/analytics_tile/two_dim_chart.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/workspaces/analytics_tile/utils.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/workspaces/base.py +0 -0
- {bloomerp-1.0.0.dev27/bloomerp/workspaces/analytics_tile → bloomerp-1.0.0.dev29/bloomerp/workspaces/canvas_tile}/__init__.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/workspaces/canvas_tile/model.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/workspaces/canvas_tile/render.py +0 -0
- {bloomerp-1.0.0.dev27/bloomerp/workspaces/canvas_tile → bloomerp-1.0.0.dev29/bloomerp/workspaces/dataview_tile}/__init__.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/workspaces/dataview_tile/form.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/workspaces/dataview_tile/model.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/workspaces/dataview_tile/render.py +0 -0
- {bloomerp-1.0.0.dev27/bloomerp/workspaces/dataview_tile → bloomerp-1.0.0.dev29/bloomerp/workspaces/links_tile}/__init__.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/workspaces/links_tile/model.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/workspaces/links_tile/render.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/workspaces/orchestrator.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/workspaces/text_tile/__init__.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/workspaces/text_tile/model.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/workspaces/text_tile/render.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/workspaces/tiles.py +0 -0
- {bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: Bloomerp
|
|
3
|
-
Version: 1.0.0.
|
|
3
|
+
Version: 1.0.0.dev29
|
|
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
|
|
@@ -552,7 +552,7 @@ Suppose we want to send an email to a specific employee or customer without sele
|
|
|
552
552
|
In `views.py`:
|
|
553
553
|
|
|
554
554
|
```python
|
|
555
|
-
from bloomerp.views.detail import
|
|
555
|
+
from bloomerp.views.detail import BaseBloomerpDetailView
|
|
556
556
|
|
|
557
557
|
@router.bloomerp_route(
|
|
558
558
|
path='send-email', # Becomes /employees/{pk}/send-email & /customers/{pk}/send-email
|
|
@@ -562,7 +562,7 @@ from bloomerp.views.detail import BloomerpBaseDetailView
|
|
|
562
562
|
url_name='send_email', # Becomes employees_detail_send_email & customers_detail_send_email
|
|
563
563
|
models=[Employee, Customer],
|
|
564
564
|
)
|
|
565
|
-
class SendEmailView(
|
|
565
|
+
class SendEmailView(BaseBloomerpDetailView):
|
|
566
566
|
template_name = 'send_email.html'
|
|
567
567
|
model: BloomerpModel = None
|
|
568
568
|
|
|
@@ -595,7 +595,7 @@ Create the HTML template `send_email.html`:
|
|
|
595
595
|
</form>
|
|
596
596
|
```
|
|
597
597
|
|
|
598
|
-
Since we inherited from `
|
|
598
|
+
Since we inherited from `BaseBloomerpDetailView`, all necessary context data (like `object`, `model`, and more) is already included.
|
|
599
599
|
|
|
600
600
|
This will produce the following result:
|
|
601
601
|
|
|
@@ -778,6 +778,7 @@ bloomerp/utils/requests.py
|
|
|
778
778
|
bloomerp/utils/sql.py
|
|
779
779
|
bloomerp/utils/urls.py
|
|
780
780
|
bloomerp/views/__init__.py
|
|
781
|
+
bloomerp/views/base.py
|
|
781
782
|
bloomerp/views/access_control/manage_permissions.py
|
|
782
783
|
bloomerp/views/access_control/policy_list.py
|
|
783
784
|
bloomerp/views/access_control/update.py
|
|
@@ -793,7 +794,6 @@ bloomerp/views/core/__init__.py
|
|
|
793
794
|
bloomerp/views/core/bookmarks.py
|
|
794
795
|
bloomerp/views/core/bulk_upload.py
|
|
795
796
|
bloomerp/views/core/create_view.py
|
|
796
|
-
bloomerp/views/core/delete_view.py
|
|
797
797
|
bloomerp/views/core/detail_comments.py
|
|
798
798
|
bloomerp/views/core/file_list.py
|
|
799
799
|
bloomerp/views/core/list_view.py
|
|
@@ -820,7 +820,6 @@ bloomerp/views/mixins/model_form_view_mixin.py
|
|
|
820
820
|
bloomerp/views/mixins/wizard_mixin.py
|
|
821
821
|
bloomerp/views/user/__init__.py
|
|
822
822
|
bloomerp/views/user/admin_reset_password.py
|
|
823
|
-
bloomerp/views/user/base.py
|
|
824
823
|
bloomerp/views/user/create_user.py
|
|
825
824
|
bloomerp/views/user/inbox.py
|
|
826
825
|
bloomerp/views/user/profile.py
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: Bloomerp
|
|
3
|
-
Version: 1.0.0.
|
|
3
|
+
Version: 1.0.0.dev29
|
|
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
|
|
@@ -552,7 +552,7 @@ Suppose we want to send an email to a specific employee or customer without sele
|
|
|
552
552
|
In `views.py`:
|
|
553
553
|
|
|
554
554
|
```python
|
|
555
|
-
from bloomerp.views.detail import
|
|
555
|
+
from bloomerp.views.detail import BaseBloomerpDetailView
|
|
556
556
|
|
|
557
557
|
@router.bloomerp_route(
|
|
558
558
|
path='send-email', # Becomes /employees/{pk}/send-email & /customers/{pk}/send-email
|
|
@@ -562,7 +562,7 @@ from bloomerp.views.detail import BloomerpBaseDetailView
|
|
|
562
562
|
url_name='send_email', # Becomes employees_detail_send_email & customers_detail_send_email
|
|
563
563
|
models=[Employee, Customer],
|
|
564
564
|
)
|
|
565
|
-
class SendEmailView(
|
|
565
|
+
class SendEmailView(BaseBloomerpDetailView):
|
|
566
566
|
template_name = 'send_email.html'
|
|
567
567
|
model: BloomerpModel = None
|
|
568
568
|
|
|
@@ -595,7 +595,7 @@ Create the HTML template `send_email.html`:
|
|
|
595
595
|
</form>
|
|
596
596
|
```
|
|
597
597
|
|
|
598
|
-
Since we inherited from `
|
|
598
|
+
Since we inherited from `BaseBloomerpDetailView`, all necessary context data (like `object`, `model`, and more) is already included.
|
|
599
599
|
|
|
600
600
|
This will produce the following result:
|
|
601
601
|
|
|
@@ -398,7 +398,7 @@ Suppose we want to send an email to a specific employee or customer without sele
|
|
|
398
398
|
In `views.py`:
|
|
399
399
|
|
|
400
400
|
```python
|
|
401
|
-
from bloomerp.views.detail import
|
|
401
|
+
from bloomerp.views.detail import BaseBloomerpDetailView
|
|
402
402
|
|
|
403
403
|
@router.bloomerp_route(
|
|
404
404
|
path='send-email', # Becomes /employees/{pk}/send-email & /customers/{pk}/send-email
|
|
@@ -408,7 +408,7 @@ from bloomerp.views.detail import BloomerpBaseDetailView
|
|
|
408
408
|
url_name='send_email', # Becomes employees_detail_send_email & customers_detail_send_email
|
|
409
409
|
models=[Employee, Customer],
|
|
410
410
|
)
|
|
411
|
-
class SendEmailView(
|
|
411
|
+
class SendEmailView(BaseBloomerpDetailView):
|
|
412
412
|
template_name = 'send_email.html'
|
|
413
413
|
model: BloomerpModel = None
|
|
414
414
|
|
|
@@ -441,7 +441,7 @@ Create the HTML template `send_email.html`:
|
|
|
441
441
|
</form>
|
|
442
442
|
```
|
|
443
443
|
|
|
444
|
-
Since we inherited from `
|
|
444
|
+
Since we inherited from `BaseBloomerpDetailView`, all necessary context data (like `object`, `model`, and more) is already included.
|
|
445
445
|
|
|
446
446
|
This will produce the following result:
|
|
447
447
|
|
{bloomerp-1.0.0.dev27 → bloomerp-1.0.0.dev29}/bloomerp/views/access_control/manage_permissions.py
RENAMED
|
@@ -14,6 +14,7 @@ from bloomerp.models.access_control.policy import Policy
|
|
|
14
14
|
from bloomerp.models.application_field import ApplicationField
|
|
15
15
|
from bloomerp.router import router
|
|
16
16
|
from bloomerp.serializers.access_control import PolicySerializer
|
|
17
|
+
from bloomerp.views.base import BaseBloomerpView
|
|
17
18
|
from bloomerp.views.mixins.conditional_staff_required_mixin import ConditionalStaffRequiredMixin
|
|
18
19
|
from bloomerp.views.mixins.htmx_mixin import HtmxMixin
|
|
19
20
|
from bloomerp.views.mixins.wizard_mixin import BaseStateOrchestrator, WizardMixin, WizardStep
|
|
@@ -267,7 +268,7 @@ def pcs_policy_details(request: HttpRequest, view, orchestrator: BaseStateOrches
|
|
|
267
268
|
name="Create Policy for {model}",
|
|
268
269
|
description="Create an access control policies for {model}",
|
|
269
270
|
)
|
|
270
|
-
class ManageAccessControlForModelView(
|
|
271
|
+
class ManageAccessControlForModelView(BaseBloomerpView, WizardMixin, TemplateView):
|
|
271
272
|
template_name = "base_wizard.html"
|
|
272
273
|
model: type[Model] = None
|
|
273
274
|
|
|
@@ -362,5 +363,5 @@ class ManageAccessControlForModelView(ConditionalStaffRequiredMixin, UserPassesT
|
|
|
362
363
|
return HttpResponseClientRedirect(policy.get_absolute_url())
|
|
363
364
|
return redirect(policy.get_absolute_url())
|
|
364
365
|
|
|
365
|
-
def
|
|
366
|
+
def has_permission(self):
|
|
366
367
|
return self.request.user.is_superuser
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
from bloomerp.router import router
|
|
2
2
|
from django.views.generic import TemplateView
|
|
3
|
+
from bloomerp.views.base import BaseBloomerpView
|
|
3
4
|
from bloomerp.views.mixins.htmx_mixin import HtmxMixin
|
|
4
5
|
from django.db.models import Model
|
|
5
6
|
from django.contrib.contenttypes.models import ContentType
|
|
@@ -13,7 +14,7 @@ from bloomerp.views.mixins.conditional_staff_required_mixin import ConditionalSt
|
|
|
13
14
|
route_type='model',
|
|
14
15
|
models='__all__',
|
|
15
16
|
)
|
|
16
|
-
class ManageAccessControlForModelView(
|
|
17
|
+
class ManageAccessControlForModelView(BaseBloomerpView, TemplateView):
|
|
17
18
|
template_name = "access_control_views/policy_list.html"
|
|
18
19
|
model : Model = None
|
|
19
20
|
|
|
@@ -33,5 +34,5 @@ class ManageAccessControlForModelView(ConditionalStaffRequiredMixin, UserPassesT
|
|
|
33
34
|
return context
|
|
34
35
|
|
|
35
36
|
|
|
36
|
-
def
|
|
37
|
+
def has_permission(self):
|
|
37
38
|
return self.request.user.is_superuser
|
|
@@ -5,6 +5,7 @@ same mechanism as the create view, but with the data pre-filled.
|
|
|
5
5
|
A lot of the logic is therefore reused.
|
|
6
6
|
"""
|
|
7
7
|
|
|
8
|
+
from django.shortcuts import get_object_or_404
|
|
8
9
|
from django.contrib.contenttypes.models import ContentType
|
|
9
10
|
|
|
10
11
|
from bloomerp.models.access_control.policy import Policy
|
|
@@ -19,7 +20,6 @@ from bloomerp.views.access_control.manage_permissions import (
|
|
|
19
20
|
ROW_POLICY_RULES_KEY,
|
|
20
21
|
ManageAccessControlForModelView,
|
|
21
22
|
)
|
|
22
|
-
from bloomerp.views.detail.base_detail import BloomerpBaseDetailView
|
|
23
23
|
|
|
24
24
|
@router.register(
|
|
25
25
|
path="update",
|
|
@@ -28,9 +28,12 @@ from bloomerp.views.detail.base_detail import BloomerpBaseDetailView
|
|
|
28
28
|
route_type="detail",
|
|
29
29
|
models=Policy,
|
|
30
30
|
)
|
|
31
|
-
class UpdatePolicyView(ManageAccessControlForModelView
|
|
31
|
+
class UpdatePolicyView(ManageAccessControlForModelView):
|
|
32
32
|
model = Policy
|
|
33
33
|
|
|
34
|
+
def get_object(self) -> Policy:
|
|
35
|
+
return get_object_or_404(self.model, pk=self.kwargs["pk"])
|
|
36
|
+
|
|
34
37
|
def setup(self, request, *args, **kwargs):
|
|
35
38
|
super().setup(request, *args, **kwargs)
|
|
36
39
|
self.object : Policy = self.get_object()
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
from bloomerp.views.mixins.conditional_staff_required_mixin import ConditionalStaffRequiredMixin
|
|
4
|
+
from bloomerp.views.mixins.htmx_mixin import HtmxMixin
|
|
5
|
+
from django.contrib.auth.mixins import LoginRequiredMixin, PermissionRequiredMixin
|
|
6
|
+
|
|
7
|
+
class BaseBloomerpView(
|
|
8
|
+
ConditionalStaffRequiredMixin,
|
|
9
|
+
LoginRequiredMixin,
|
|
10
|
+
PermissionRequiredMixin,
|
|
11
|
+
HtmxMixin,
|
|
12
|
+
):
|
|
13
|
+
def has_permission(self):
|
|
14
|
+
return True # Override in subclasses as needed
|
|
@@ -1,21 +1,19 @@
|
|
|
1
1
|
from bloomerp.router import router
|
|
2
|
-
from ..detail.base_detail import
|
|
2
|
+
from ..detail.base_detail import BaseBloomerpDetailView
|
|
3
3
|
from .list_view import BloomerpListView
|
|
4
4
|
from .create_view import BloomerpCreateView
|
|
5
5
|
from ..detail.files import BloomerpDetailFileListView
|
|
6
6
|
from .bulk_upload import BloomerpBulkUploadView
|
|
7
7
|
from .file_list import BloomerpFileListView
|
|
8
8
|
from ..detail.comments import BloomerpDetailCommentsView
|
|
9
|
-
from .bookmarks import BloomerpBookmarksView
|
|
10
9
|
|
|
11
10
|
__all__ = [
|
|
12
11
|
"router",
|
|
13
|
-
"
|
|
12
|
+
"BaseBloomerpDetailView",
|
|
14
13
|
"BloomerpListView",
|
|
15
14
|
"BloomerpCreateView",
|
|
16
15
|
"BloomerpDetailFileListView",
|
|
17
16
|
"BloomerpBulkUploadView",
|
|
18
17
|
"BloomerpFileListView",
|
|
19
18
|
"BloomerpDetailCommentsView",
|
|
20
|
-
"BloomerpBookmarksView",
|
|
21
19
|
]
|
|
@@ -15,6 +15,7 @@ from bloomerp.services.bulk_services import (
|
|
|
15
15
|
BulkCrudService,
|
|
16
16
|
)
|
|
17
17
|
from bloomerp.services.permission_services import UserPermissionManager, create_permission_str
|
|
18
|
+
from bloomerp.views.base import BaseBloomerpView
|
|
18
19
|
from bloomerp.views.mixins.conditional_staff_required_mixin import ConditionalStaffRequiredMixin
|
|
19
20
|
from bloomerp.views.mixins.htmx_mixin import HtmxMixin
|
|
20
21
|
from bloomerp.views.mixins.wizard_mixin import BaseStateOrchestrator, WizardMixin, WizardStep
|
|
@@ -203,7 +204,7 @@ def ctx_confirm_step(request: HttpRequest, view:"BloomerpBulkUploadView", orches
|
|
|
203
204
|
route_type="model",
|
|
204
205
|
exclude_models=[File],
|
|
205
206
|
)
|
|
206
|
-
class BloomerpBulkUploadView(
|
|
207
|
+
class BloomerpBulkUploadView(BaseBloomerpView, WizardMixin, TemplateView):
|
|
207
208
|
model = None
|
|
208
209
|
module = None
|
|
209
210
|
state_orchestrator_cls = BaseStateOrchestrator
|
|
@@ -22,6 +22,7 @@ from bloomerp.services.create_view_services import (
|
|
|
22
22
|
)
|
|
23
23
|
from bloomerp.services.permission_services import UserPermissionManager, create_permission_str
|
|
24
24
|
from bloomerp.utils.models import get_detail_view_url
|
|
25
|
+
from bloomerp.views.base import BaseBloomerpView
|
|
25
26
|
from bloomerp.views.mixins.conditional_staff_required_mixin import ConditionalStaffRequiredMixin
|
|
26
27
|
from bloomerp.views.mixins.model_form_view_mixin import BloomerpModelFormViewMixin
|
|
27
28
|
from bloomerp.views.mixins.htmx_mixin import HtmxMixin
|
|
@@ -40,10 +41,8 @@ User = get_user_model()
|
|
|
40
41
|
exclude_models=[File, Tile, SqlQuery, User, Workspace],
|
|
41
42
|
)
|
|
42
43
|
class BloomerpCreateView(
|
|
43
|
-
|
|
44
|
-
PermissionRequiredMixin,
|
|
44
|
+
BaseBloomerpView,
|
|
45
45
|
SuccessMessageMixin,
|
|
46
|
-
HtmxMixin,
|
|
47
46
|
BloomerpModelFormViewMixin,
|
|
48
47
|
BloomerpLayoutFormMixin,
|
|
49
48
|
CreateView,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
from bloomerp.models.communication import Comment
|
|
2
2
|
from bloomerp.router import router
|
|
3
|
-
from bloomerp.views.detail.base_detail import
|
|
3
|
+
from bloomerp.views.detail.base_detail import BaseBloomerpDetailView
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
@router.register(
|
|
@@ -11,7 +11,7 @@ from bloomerp.views.detail.base_detail import BloomerpBaseDetailView
|
|
|
11
11
|
route_type="detail",
|
|
12
12
|
models="__all__",
|
|
13
13
|
)
|
|
14
|
-
class BloomerpDetailCommentsView(
|
|
14
|
+
class BloomerpDetailCommentsView(BaseBloomerpDetailView):
|
|
15
15
|
template_name = "detail_views/bloomerp_detail_comments_view.html"
|
|
16
16
|
model = None
|
|
17
17
|
permissions = ["view"]
|
|
@@ -5,6 +5,7 @@ from django.contrib.contenttypes.models import ContentType
|
|
|
5
5
|
from django.urls import reverse
|
|
6
6
|
from bloomerp.models.application_field import ApplicationField
|
|
7
7
|
from bloomerp.models.files import File
|
|
8
|
+
from bloomerp.views.base import BaseBloomerpView
|
|
8
9
|
from bloomerp.views.mixins.htmx_mixin import HtmxMixin
|
|
9
10
|
from bloomerp.router import router
|
|
10
11
|
|
|
@@ -16,7 +17,7 @@ from bloomerp.router import router
|
|
|
16
17
|
url_name="app",
|
|
17
18
|
description="List of all files across the application.",
|
|
18
19
|
)
|
|
19
|
-
class BloomerpFileListView(
|
|
20
|
+
class BloomerpFileListView(BaseBloomerpView, TemplateView):
|
|
20
21
|
template_name = "list_views/bloomerp_file_list_view.html"
|
|
21
22
|
model = File
|
|
22
23
|
module = None
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
from typing import Any
|
|
2
2
|
from django.db.models import Model
|
|
3
|
-
from django.views.generic
|
|
3
|
+
from django.views.generic import TemplateView
|
|
4
4
|
from django.contrib.auth.mixins import PermissionRequiredMixin
|
|
5
5
|
from bloomerp.models.files import File
|
|
6
6
|
from bloomerp.services.permission_services import UserPermissionManager, create_permission_str
|
|
7
|
+
from bloomerp.views.base import BaseBloomerpView
|
|
7
8
|
from bloomerp.views.mixins.model_context_mixin import BloomerpModelContextMixin
|
|
8
9
|
from bloomerp.router import router
|
|
9
10
|
from bloomerp.views.mixins.htmx_mixin import HtmxMixin
|
|
@@ -17,7 +18,7 @@ from bloomerp.views.mixins.htmx_mixin import HtmxMixin
|
|
|
17
18
|
route_type="model",
|
|
18
19
|
exclude_models=[File],
|
|
19
20
|
)
|
|
20
|
-
class BloomerpListView(
|
|
21
|
+
class BloomerpListView(BaseBloomerpView, BloomerpModelContextMixin, TemplateView):
|
|
21
22
|
model: Model = None
|
|
22
23
|
module = None
|
|
23
24
|
template_name: str = "list_views/bloomerp_list_view.html"
|
|
@@ -3,7 +3,7 @@ A view that shows which users have access to the particular object.
|
|
|
3
3
|
"""
|
|
4
4
|
|
|
5
5
|
from bloomerp.router import router
|
|
6
|
-
from bloomerp.views.detail.base_detail import
|
|
6
|
+
from bloomerp.views.detail.base_detail import BaseBloomerpDetailView
|
|
7
7
|
from django.contrib.auth.mixins import PermissionRequiredMixin
|
|
8
8
|
|
|
9
9
|
# @router.register(
|
|
@@ -13,6 +13,6 @@ from django.contrib.auth.mixins import PermissionRequiredMixin
|
|
|
13
13
|
# description="Check which objects have access to this particular object",
|
|
14
14
|
# models="__all__"
|
|
15
15
|
# )
|
|
16
|
-
# class BloomerpDetailOverviewView(
|
|
16
|
+
# class BloomerpDetailOverviewView(BaseBloomerpDetailView):
|
|
17
17
|
# template_name = "detail_views/bloomerp_detail_access_control_view.html"
|
|
18
18
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
from typing import Any, Dict
|
|
2
2
|
from bloomerp.router import router
|
|
3
|
-
from bloomerp.views.detail.base_detail import
|
|
3
|
+
from bloomerp.views.detail.base_detail import BaseBloomerpDetailView
|
|
4
4
|
from bloomerp.models.activity_log import ActivityLog
|
|
5
5
|
|
|
6
6
|
# @router.register(
|
|
@@ -11,7 +11,7 @@ from bloomerp.models.activity_log import ActivityLog
|
|
|
11
11
|
# route_type="detail",
|
|
12
12
|
# models="__all__",
|
|
13
13
|
# )
|
|
14
|
-
# class BloomerpDetailActivityView(
|
|
14
|
+
# class BloomerpDetailActivityView(BaseBloomerpDetailView):
|
|
15
15
|
# template_name = "detail_views/bloomerp_detail_activity_view.html"
|
|
16
16
|
|
|
17
17
|
# def get_context_data(self, **kwargs: Any) -> Dict[str, Any]:
|
|
@@ -2,6 +2,7 @@ from typing import Any
|
|
|
2
2
|
from django.views.generic.detail import DetailView
|
|
3
3
|
from bloomerp.models.application_field import ApplicationField
|
|
4
4
|
from bloomerp.services.permission_services import UserPermissionManager, create_permission_str
|
|
5
|
+
from bloomerp.views.base import BaseBloomerpView
|
|
5
6
|
from bloomerp.views.mixins.conditional_staff_required_mixin import ConditionalStaffRequiredMixin
|
|
6
7
|
from bloomerp.views.mixins.model_context_mixin import BloomerpModelContextMixin
|
|
7
8
|
from bloomerp.router import router
|
|
@@ -12,7 +13,7 @@ from django.contrib.auth.mixins import PermissionRequiredMixin
|
|
|
12
13
|
|
|
13
14
|
from bloomerp.views.mixins.htmx_mixin import HtmxMixin
|
|
14
15
|
|
|
15
|
-
class
|
|
16
|
+
class BaseBloomerpDetailView(BaseBloomerpView, BloomerpModelContextMixin, DetailView):
|
|
16
17
|
htmx_template = "bloomerp_htmx_base_view.html"
|
|
17
18
|
tabs = None
|
|
18
19
|
exclude_header = False
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
from bloomerp.models.communication import Comment
|
|
2
|
-
from .base_detail import
|
|
2
|
+
from .base_detail import BaseBloomerpDetailView
|
|
3
3
|
from bloomerp.router import router
|
|
4
4
|
|
|
5
5
|
|
|
@@ -11,7 +11,7 @@ from bloomerp.router import router
|
|
|
11
11
|
route_type="detail",
|
|
12
12
|
models="__all__",
|
|
13
13
|
)
|
|
14
|
-
class BloomerpDetailCommentsView(
|
|
14
|
+
class BloomerpDetailCommentsView(BaseBloomerpDetailView):
|
|
15
15
|
template_name = "detail_views/bloomerp_detail_comments_view.html"
|
|
16
16
|
model = None
|
|
17
17
|
|
|
@@ -15,7 +15,7 @@ from bloomerp.services.permission_services import UserPermissionManager
|
|
|
15
15
|
from bloomerp.services.permission_services import create_permission_str
|
|
16
16
|
from bloomerp.utils.models import get_delete_view_url
|
|
17
17
|
from bloomerp.utils.models import get_list_view_url
|
|
18
|
-
from bloomerp.views.detail.base_detail import
|
|
18
|
+
from bloomerp.views.detail.base_detail import BaseBloomerpDetailView
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
User = get_user_model()
|
|
@@ -30,7 +30,7 @@ User = get_user_model()
|
|
|
30
30
|
route_type="detail",
|
|
31
31
|
exclude_models=[File, Tile, SqlQuery, User],
|
|
32
32
|
)
|
|
33
|
-
class BloomerpDeleteView(
|
|
33
|
+
class BloomerpDeleteView(BaseBloomerpDetailView):
|
|
34
34
|
template_name = "delete_views/bloomerp_delete_view.html"
|
|
35
35
|
|
|
36
36
|
def get_delete_permission(self) -> str:
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
|
|
2
2
|
from bloomerp.models.files import File
|
|
3
3
|
from django.urls import reverse
|
|
4
|
-
from .base_detail import
|
|
4
|
+
from .base_detail import BaseBloomerpDetailView
|
|
5
5
|
from bloomerp.router import router
|
|
6
6
|
from bloomerp.services.file_services import ensure_folder_hierarchy_for_object
|
|
7
7
|
|
|
@@ -13,7 +13,7 @@ from bloomerp.services.file_services import ensure_folder_hierarchy_for_object
|
|
|
13
13
|
route_type="detail",
|
|
14
14
|
exclude_models=[File],
|
|
15
15
|
)
|
|
16
|
-
class BloomerpDetailFileListView(
|
|
16
|
+
class BloomerpDetailFileListView(BaseBloomerpDetailView):
|
|
17
17
|
template_name = "detail_views/bloomerp_detail_files_view.html"
|
|
18
18
|
modules = None
|
|
19
19
|
permission_fields = [("files", "view")]
|
|
@@ -32,6 +32,7 @@ class BloomerpDetailFileListView(BloomerpBaseDetailView):
|
|
|
32
32
|
context["file_browser_url"] = f"{reverse('components_files')}?{params.urlencode()}"
|
|
33
33
|
return context
|
|
34
34
|
|
|
35
|
+
|
|
35
36
|
|
|
36
37
|
|
|
37
38
|
|
|
@@ -6,10 +6,10 @@ from bloomerp.models.communication import Comment
|
|
|
6
6
|
from bloomerp.models.files import File
|
|
7
7
|
from bloomerp.router import router
|
|
8
8
|
from bloomerp.services.permission_services import UserPermissionManager, create_permission_str
|
|
9
|
-
from bloomerp.views.detail.base_detail import
|
|
9
|
+
from bloomerp.views.detail.base_detail import BaseBloomerpDetailView
|
|
10
10
|
from django.contrib.contenttypes.models import ContentType
|
|
11
11
|
|
|
12
|
-
class ForeignRelationshipView(
|
|
12
|
+
class ForeignRelationshipView(BaseBloomerpDetailView):
|
|
13
13
|
template_name: str = "detail_views/bloomerp_foreign_relationship_view.html"
|
|
14
14
|
model = None
|
|
15
15
|
related_model = None
|
|
@@ -13,7 +13,7 @@ from bloomerp.services.create_view_services import AUTO_MANAGED_FIELD_NAMES, get
|
|
|
13
13
|
from bloomerp.services.detail_view_services import get_default_layout
|
|
14
14
|
from bloomerp.services.permission_services import UserPermissionManager, create_permission_str
|
|
15
15
|
from bloomerp.utils.models import get_detail_view_url
|
|
16
|
-
from bloomerp.views.detail.base_detail import
|
|
16
|
+
from bloomerp.views.detail.base_detail import BaseBloomerpDetailView
|
|
17
17
|
from bloomerp.views.mixins.layout_form_mixin import BloomerpLayoutFormMixin
|
|
18
18
|
|
|
19
19
|
|
|
@@ -25,7 +25,7 @@ from bloomerp.views.mixins.layout_form_mixin import BloomerpLayoutFormMixin
|
|
|
25
25
|
route_type="detail",
|
|
26
26
|
models="__all__",
|
|
27
27
|
)
|
|
28
|
-
class BloomerpDetailOverviewView(BloomerpLayoutFormMixin,
|
|
28
|
+
class BloomerpDetailOverviewView(BloomerpLayoutFormMixin, BaseBloomerpDetailView):
|
|
29
29
|
template_name = "mixins/bloomerp_layout_form_mixin.html"
|
|
30
30
|
settings = None
|
|
31
31
|
layout_mode = "detail"
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
EXCLUDE_MODELS = []
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
from bloomerp.models.document_templates import DocumentTemplate
|
|
2
2
|
from bloomerp.router import router
|
|
3
|
-
from bloomerp.views.core import
|
|
3
|
+
from bloomerp.views.core import BaseBloomerpDetailView
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
from django.views.generic.edit import UpdateView
|
|
@@ -14,7 +14,7 @@ from django.views.generic.edit import UpdateView
|
|
|
14
14
|
url_name="editor",
|
|
15
15
|
description="Document Template Editor"
|
|
16
16
|
)
|
|
17
|
-
class BloomerpDocumentTemplateEditorView(
|
|
17
|
+
class BloomerpDocumentTemplateEditorView(BaseBloomerpDetailView, UpdateView):
|
|
18
18
|
model = DocumentTemplate
|
|
19
19
|
template_name = "document_template_views/bloomerp_document_template_editor_view.html"
|
|
20
20
|
fields = ["template"]
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
from bloomerp.forms.document_templates import GenerateDocumentForm
|
|
2
2
|
from bloomerp.models.document_templates import DocumentTemplate
|
|
3
3
|
from bloomerp.router import router
|
|
4
|
-
from bloomerp.views.core import
|
|
4
|
+
from bloomerp.views.core import BaseBloomerpDetailView
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
@router.register(
|
|
@@ -12,7 +12,7 @@ from bloomerp.views.core import BloomerpBaseDetailView
|
|
|
12
12
|
url_name="generate_document",
|
|
13
13
|
description="Generate document for the document template"
|
|
14
14
|
)
|
|
15
|
-
class BloomerpDocumentTemplateGenerateView(
|
|
15
|
+
class BloomerpDocumentTemplateGenerateView(BaseBloomerpDetailView):
|
|
16
16
|
model = DocumentTemplate
|
|
17
17
|
template_name = "document_template_views/bloomerp_document_template_generate_view.html"
|
|
18
18
|
|
|
@@ -3,7 +3,7 @@ from bloomerp.models.document_templates import DocumentTemplate
|
|
|
3
3
|
from bloomerp.models.files import File
|
|
4
4
|
from bloomerp.router import router
|
|
5
5
|
from bloomerp.utils.document_templates import DocumentController
|
|
6
|
-
from bloomerp.views.core import
|
|
6
|
+
from bloomerp.views.core import BaseBloomerpDetailView
|
|
7
7
|
from bloomerp.views.document_templates import EXCLUDE_MODELS
|
|
8
8
|
|
|
9
9
|
|
|
@@ -20,7 +20,7 @@ from django.shortcuts import redirect
|
|
|
20
20
|
description="Document Template for {model}",
|
|
21
21
|
exclude_models=EXCLUDE_MODELS
|
|
22
22
|
)
|
|
23
|
-
class BloomerpDetailDocumentTemplateGenerateView(
|
|
23
|
+
class BloomerpDetailDocumentTemplateGenerateView(BaseBloomerpDetailView):
|
|
24
24
|
template_name = "document_template_views/bloomerp_detail_document_generator_view.html"
|
|
25
25
|
model = None
|
|
26
26
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
from bloomerp.models.document_templates import DocumentTemplate
|
|
2
2
|
from bloomerp.models.files import File
|
|
3
3
|
from bloomerp.router import router
|
|
4
|
-
from bloomerp.views.core import
|
|
4
|
+
from bloomerp.views.core import BaseBloomerpDetailView
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
@router.register(
|
|
@@ -12,7 +12,7 @@ from bloomerp.views.core import BloomerpBaseDetailView
|
|
|
12
12
|
url_name="generated_documents",
|
|
13
13
|
description="List of generated documents for the document template"
|
|
14
14
|
)
|
|
15
|
-
class BloomerpDocumentTemplateGeneratedDocumentsView(
|
|
15
|
+
class BloomerpDocumentTemplateGeneratedDocumentsView(BaseBloomerpDetailView):
|
|
16
16
|
model = DocumentTemplate
|
|
17
17
|
template_name = "document_template_views/bloomerp_document_template_generated_documents_view.html"
|
|
18
18
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
from bloomerp.router import router
|
|
2
2
|
from bloomerp.models.users.user import User
|
|
3
|
-
from bloomerp.views.
|
|
3
|
+
from bloomerp.views.base import BaseBloomerpView
|
|
4
|
+
from bloomerp.views.core import BaseBloomerpDetailView
|
|
4
5
|
|
|
5
6
|
|
|
6
7
|
from django.contrib.auth.forms import AdminPasswordChangeForm
|
|
@@ -16,11 +17,12 @@ from django.views.generic.edit import FormView
|
|
|
16
17
|
url_name='reset_password_for_user',
|
|
17
18
|
description='Reset password for a user'
|
|
18
19
|
)
|
|
19
|
-
class UserAdminPasswordResetView(
|
|
20
|
+
class UserAdminPasswordResetView(BaseBloomerpView, FormView):
|
|
20
21
|
template_name = 'auth_views/profile_password_reset.html'
|
|
21
22
|
form_class = AdminPasswordChangeForm
|
|
23
|
+
model = None
|
|
22
24
|
|
|
23
|
-
def
|
|
25
|
+
def has_permission(self):
|
|
24
26
|
return self.request.user.is_superuser
|
|
25
27
|
|
|
26
28
|
def get_success_url(self):
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
from bloomerp.forms.auth import BloomerpUserCreationForm
|
|
2
2
|
from bloomerp.router import router
|
|
3
|
+
from bloomerp.services.permission_services import UserPermissionManager
|
|
3
4
|
from bloomerp.utils.models import model_name_plural_underline
|
|
4
5
|
from bloomerp.models.users.user import User
|
|
6
|
+
from bloomerp.views.base import BaseBloomerpView
|
|
5
7
|
from bloomerp.views.mixins.htmx_mixin import HtmxMixin
|
|
6
8
|
|
|
7
9
|
|
|
@@ -19,11 +21,7 @@ from django.views.generic.edit import FormView
|
|
|
19
21
|
route_type="model",
|
|
20
22
|
models=User
|
|
21
23
|
)
|
|
22
|
-
class UserCreateView(
|
|
23
|
-
PermissionRequiredMixin,
|
|
24
|
-
SuccessMessageMixin,
|
|
25
|
-
HtmxMixin,
|
|
26
|
-
FormView):
|
|
24
|
+
class UserCreateView(BaseBloomerpView, SuccessMessageMixin, FormView):
|
|
27
25
|
template_name = "create_views/bloomerp_create_view.html"
|
|
28
26
|
fields = None
|
|
29
27
|
model = None
|
|
@@ -42,8 +40,13 @@ class UserCreateView(
|
|
|
42
40
|
form.save()
|
|
43
41
|
return super().form_valid(form)
|
|
44
42
|
|
|
45
|
-
def
|
|
46
|
-
|
|
43
|
+
def has_permission(self):
|
|
44
|
+
manager = UserPermissionManager(self.request.user)
|
|
45
|
+
|
|
46
|
+
return manager.has_global_permission(
|
|
47
|
+
self.model,
|
|
48
|
+
"add_user"
|
|
49
|
+
)
|
|
47
50
|
|
|
48
51
|
def get_success_message(self, cleaned_data):
|
|
49
52
|
return f"User was created successfully."
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
from bloomerp.router import router
|
|
2
|
+
from bloomerp.views.base import BaseBloomerpView
|
|
2
3
|
from bloomerp.views.mixins.htmx_mixin import HtmxMixin
|
|
3
4
|
from django.views.generic import TemplateView
|
|
4
5
|
|
|
@@ -10,6 +11,6 @@ from django.views.generic import TemplateView
|
|
|
10
11
|
url_name="inbox",
|
|
11
12
|
route_type="app"
|
|
12
13
|
)
|
|
13
|
-
class InboxView(
|
|
14
|
+
class InboxView(BaseBloomerpView, TemplateView):
|
|
14
15
|
template_name = "user_views/inbox_view.html"
|
|
15
16
|
|