Bloomerp 0.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (536) hide show
  1. Bloomerp-0.1.dist-info/METADATA +195 -0
  2. Bloomerp-0.1.dist-info/RECORD +536 -0
  3. Bloomerp-0.1.dist-info/WHEEL +5 -0
  4. Bloomerp-0.1.dist-info/top_level.txt +4 -0
  5. bloomerp/__init__.py +0 -0
  6. bloomerp/admin.py +4 -0
  7. bloomerp/apps.py +10 -0
  8. bloomerp/components/bookmark.py +69 -0
  9. bloomerp/components/bulk_update_objects.py +91 -0
  10. bloomerp/components/bulk_upload_table.py +90 -0
  11. bloomerp/components/comments.py +87 -0
  12. bloomerp/components/create_workspace_item.py +69 -0
  13. bloomerp/components/data_table.py +136 -0
  14. bloomerp/components/detail_view_links.py +32 -0
  15. bloomerp/components/download_bulk_upload_template.py +54 -0
  16. bloomerp/components/execute_sql_query.py +35 -0
  17. bloomerp/components/files.py +154 -0
  18. bloomerp/components/fk_search_results.py +33 -0
  19. bloomerp/components/list_view_filter.py +46 -0
  20. bloomerp/components/list_view_filter_inputs.py +83 -0
  21. bloomerp/components/llm_executor.py +44 -0
  22. bloomerp/components/object_model_form.py +55 -0
  23. bloomerp/components/preview_document_template.py +45 -0
  24. bloomerp/components/search_results.py +78 -0
  25. bloomerp/components/workspace_widget.py +118 -0
  26. bloomerp/config.py +17 -0
  27. bloomerp/forms/auth.py +70 -0
  28. bloomerp/forms/core.py +736 -0
  29. bloomerp/forms/document_templates.py +61 -0
  30. bloomerp/forms/widgets.py +81 -0
  31. bloomerp/management/commands/create_links.py +17 -0
  32. bloomerp/management/commands/get_urls.py +21 -0
  33. bloomerp/management/commands/remove_stale_links.py +36 -0
  34. bloomerp/management/commands/save_application_fields.py +176 -0
  35. bloomerp/middleware.py +28 -0
  36. bloomerp/migrations/0001_initial.py +311 -0
  37. bloomerp/migrations/0002_sqlquery_sqlqueryfilter_alter_file_file_kpi_and_more.py +129 -0
  38. bloomerp/migrations/0003_kpi_created_at_kpi_updated_at_sqlquery_created_at_and_more.py +58 -0
  39. bloomerp/migrations/0004_alter_file_file.py +18 -0
  40. bloomerp/migrations/0005_alter_file_file.py +18 -0
  41. bloomerp/migrations/0006_alter_file_file.py +18 -0
  42. bloomerp/migrations/0007_alter_file_file.py +18 -0
  43. bloomerp/migrations/0008_alter_file_file_alter_kpi_table_and_more.py +179 -0
  44. bloomerp/migrations/0009_documenttemplatefreevariable_documenttemplateheader_and_more.py +165 -0
  45. bloomerp/migrations/0010_remove_file_created_at_remove_file_updated_at_and_more.py +29 -0
  46. bloomerp/migrations/0011_alter_file_file.py +18 -0
  47. bloomerp/migrations/0012_alter_file_file.py +18 -0
  48. bloomerp/migrations/0013_applicationfield_related_model_alter_file_file.py +31 -0
  49. bloomerp/migrations/0014_alter_file_file.py +18 -0
  50. bloomerp/migrations/0015_rename_created_at_documenttemplate_datetime_created_and_more.py +106 -0
  51. bloomerp/migrations/0016_comment.py +54 -0
  52. bloomerp/migrations/0017_bookmark.py +49 -0
  53. bloomerp/migrations/0018_documenttemplatestyling_documenttemplate_styling.py +45 -0
  54. bloomerp/migrations/0019_alter_documenttemplatestyling_styling.py +18 -0
  55. bloomerp/migrations/0020_alter_documenttemplate_template_and_more.py +23 -0
  56. bloomerp/migrations/0021_userdashboardview_delete_userkpilistviewpreference.py +52 -0
  57. bloomerp/migrations/0022_alter_sqlquery_query.py +20 -0
  58. bloomerp/migrations/0023_userdashboardview_layout.py +19 -0
  59. bloomerp/migrations/0024_folder.py +31 -0
  60. bloomerp/migrations/0025_rename_folder_filefolder_alter_filefolder_options_and_more.py +24 -0
  61. bloomerp/migrations/0026_filefolder_parent.py +23 -0
  62. bloomerp/migrations/0027_filefolder_created_by_filefolder_datetime_created_and_more.py +48 -0
  63. bloomerp/migrations/0028_alter_filefolder_files.py +19 -0
  64. bloomerp/migrations/0029_remove_file_uploaded_by_file_created_by_and_more.py +62 -0
  65. bloomerp/migrations/0030_alter_file_created_by_alter_file_updated_by_and_more.py +54 -0
  66. bloomerp/migrations/0031_file_persisted.py +17 -0
  67. bloomerp/migrations/0032_comment_created_by_comment_updated_by_and_more.py +214 -0
  68. bloomerp/migrations/0033_userappdashboard.py +66 -0
  69. bloomerp/migrations/0034_alter_userappdashboard_layout.py +20 -0
  70. bloomerp/migrations/0035_remove_userappdashboard_layout_and_more.py +98 -0
  71. bloomerp/migrations/0036_alter_link_level_userdetailviewtabs.py +63 -0
  72. bloomerp/migrations/0037_alter_documenttemplatestyling_styling_and_more.py +53 -0
  73. bloomerp/migrations/0038_delete_userdetailviewtabs.py +15 -0
  74. bloomerp/migrations/0039_userdetailviewtab.py +56 -0
  75. bloomerp/migrations/0040_alter_userdetailviewtab_unique_together_and_more.py +20 -0
  76. bloomerp/migrations/0041_filefolder_content_types.py +24 -0
  77. bloomerp/migrations/0042_rename_kpi_widget_and_more.py +53 -0
  78. bloomerp/migrations/0043_applicationfield_db_column.py +17 -0
  79. bloomerp/migrations/0044_workspace.py +90 -0
  80. bloomerp/migrations/0045_remove_userdashboardview_created_by_and_more.py +66 -0
  81. bloomerp/migrations/0046_workspace_content_type_workspace_user.py +36 -0
  82. bloomerp/migrations/0047_rename_comment_comment_content_remove_comment_user.py +21 -0
  83. bloomerp/migrations/0048_remove_userlistviewpreference_is_main.py +16 -0
  84. bloomerp/migrations/0049_alter_file_options_alter_filefolder_options_and_more.py +57 -0
  85. bloomerp/migrations/0050_alter_applicationfield_options_and_more.py +240 -0
  86. bloomerp/migrations/0051_alter_applicationfield_options_and_more.py +303 -0
  87. bloomerp/migrations/0052_alter_sqlquery_options.py +31 -0
  88. bloomerp/migrations/__init__.py +0 -0
  89. bloomerp/models/__init__.py +6 -0
  90. bloomerp/models/auth.py +766 -0
  91. bloomerp/models/core.py +349 -0
  92. bloomerp/models/document_templates.py +106 -0
  93. bloomerp/models/fields.py +160 -0
  94. bloomerp/models/mixins.py +176 -0
  95. bloomerp/models/widgets.py +458 -0
  96. bloomerp/signals.py +18 -0
  97. bloomerp/static/bloomerp/css/style.css +1398 -0
  98. bloomerp/static/bloomerp/icons/add-circle.svg +5 -0
  99. bloomerp/static/bloomerp/icons/add.svg +5 -0
  100. bloomerp/static/bloomerp/icons/alt-arrow-right.svg +4 -0
  101. bloomerp/static/bloomerp/icons/archive.svg +6 -0
  102. bloomerp/static/bloomerp/icons/bookmark-filled.svg +4 -0
  103. bloomerp/static/bloomerp/icons/bookmark.svg +5 -0
  104. bloomerp/static/bloomerp/icons/chat-line.svg +6 -0
  105. bloomerp/static/bloomerp/icons/chat-round.svg +4 -0
  106. bloomerp/static/bloomerp/icons/clipboard.svg +6 -0
  107. bloomerp/static/bloomerp/icons/close.svg +4 -0
  108. bloomerp/static/bloomerp/icons/code.svg +6 -0
  109. bloomerp/static/bloomerp/icons/database.svg +8 -0
  110. bloomerp/static/bloomerp/icons/delete.svg +8 -0
  111. bloomerp/static/bloomerp/icons/dots.svg +6 -0
  112. bloomerp/static/bloomerp/icons/download.svg +5 -0
  113. bloomerp/static/bloomerp/icons/edit.svg +8 -0
  114. bloomerp/static/bloomerp/icons/editor-text.svg +6 -0
  115. bloomerp/static/bloomerp/icons/eye.svg +5 -0
  116. bloomerp/static/bloomerp/icons/file.svg +7 -0
  117. bloomerp/static/bloomerp/icons/filter.svg +4 -0
  118. bloomerp/static/bloomerp/icons/folder.svg +4 -0
  119. bloomerp/static/bloomerp/icons/forward.svg +4 -0
  120. bloomerp/static/bloomerp/icons/html.svg +8 -0
  121. bloomerp/static/bloomerp/icons/info.svg +6 -0
  122. bloomerp/static/bloomerp/icons/magic-stick.svg +8 -0
  123. bloomerp/static/bloomerp/icons/menu-dots.svg +6 -0
  124. bloomerp/static/bloomerp/icons/settings.svg +5 -0
  125. bloomerp/static/bloomerp/icons/share.svg +8 -0
  126. bloomerp/static/bloomerp/icons/success.svg +2 -0
  127. bloomerp/static/bloomerp/icons/text-editor.svg +6 -0
  128. bloomerp/static/bloomerp/icons/text.svg +4 -0
  129. bloomerp/static/bloomerp/img/default-user.jpg +0 -0
  130. bloomerp/static/bloomerp/img/logo-touch-icon.png +0 -0
  131. bloomerp/static/bloomerp/img/logo.png +0 -0
  132. bloomerp/static/bloomerp/img/spinner.gif +0 -0
  133. bloomerp/static/bloomerp/js/bloomerpForms.js +123 -0
  134. bloomerp/static/bloomerp/js/dashboard.js +294 -0
  135. bloomerp/static/bloomerp/js/datatable.js +0 -0
  136. bloomerp/static/bloomerp/js/files.js +409 -0
  137. bloomerp/static/bloomerp/js/hotkeys.js +27 -0
  138. bloomerp/static/bloomerp/js/htmx-download.js +62 -0
  139. bloomerp/static/bloomerp/js/main.js +356 -0
  140. bloomerp/static/bloomerp/js/messages.js +54 -0
  141. bloomerp/static/bloomerp/vendor/bootstrap/css/bootstrap-grid.css +5051 -0
  142. bloomerp/static/bloomerp/vendor/bootstrap/css/bootstrap-grid.css.map +1 -0
  143. bloomerp/static/bloomerp/vendor/bootstrap/css/bootstrap-grid.min.css +7 -0
  144. bloomerp/static/bloomerp/vendor/bootstrap/css/bootstrap-grid.min.css.map +1 -0
  145. bloomerp/static/bloomerp/vendor/bootstrap/css/bootstrap-grid.rtl.css +5050 -0
  146. bloomerp/static/bloomerp/vendor/bootstrap/css/bootstrap-grid.rtl.css.map +1 -0
  147. bloomerp/static/bloomerp/vendor/bootstrap/css/bootstrap-grid.rtl.min.css +7 -0
  148. bloomerp/static/bloomerp/vendor/bootstrap/css/bootstrap-grid.rtl.min.css.map +1 -0
  149. bloomerp/static/bloomerp/vendor/bootstrap/css/bootstrap-reboot.css +485 -0
  150. bloomerp/static/bloomerp/vendor/bootstrap/css/bootstrap-reboot.css.map +1 -0
  151. bloomerp/static/bloomerp/vendor/bootstrap/css/bootstrap-reboot.min.css +8 -0
  152. bloomerp/static/bloomerp/vendor/bootstrap/css/bootstrap-reboot.min.css.map +1 -0
  153. bloomerp/static/bloomerp/vendor/bootstrap/css/bootstrap-reboot.rtl.css +482 -0
  154. bloomerp/static/bloomerp/vendor/bootstrap/css/bootstrap-reboot.rtl.css.map +1 -0
  155. bloomerp/static/bloomerp/vendor/bootstrap/css/bootstrap-reboot.rtl.min.css +8 -0
  156. bloomerp/static/bloomerp/vendor/bootstrap/css/bootstrap-reboot.rtl.min.css.map +1 -0
  157. bloomerp/static/bloomerp/vendor/bootstrap/css/bootstrap-utilities.css +4866 -0
  158. bloomerp/static/bloomerp/vendor/bootstrap/css/bootstrap-utilities.css.map +1 -0
  159. bloomerp/static/bloomerp/vendor/bootstrap/css/bootstrap-utilities.min.css +7 -0
  160. bloomerp/static/bloomerp/vendor/bootstrap/css/bootstrap-utilities.min.css.map +1 -0
  161. bloomerp/static/bloomerp/vendor/bootstrap/css/bootstrap-utilities.rtl.css +4857 -0
  162. bloomerp/static/bloomerp/vendor/bootstrap/css/bootstrap-utilities.rtl.css.map +1 -0
  163. bloomerp/static/bloomerp/vendor/bootstrap/css/bootstrap-utilities.rtl.min.css +7 -0
  164. bloomerp/static/bloomerp/vendor/bootstrap/css/bootstrap-utilities.rtl.min.css.map +1 -0
  165. bloomerp/static/bloomerp/vendor/bootstrap/css/bootstrap.css +11266 -0
  166. bloomerp/static/bloomerp/vendor/bootstrap/css/bootstrap.css.map +1 -0
  167. bloomerp/static/bloomerp/vendor/bootstrap/css/bootstrap.min.css +7 -0
  168. bloomerp/static/bloomerp/vendor/bootstrap/css/bootstrap.min.css.map +1 -0
  169. bloomerp/static/bloomerp/vendor/bootstrap/css/bootstrap.rtl.css +11242 -0
  170. bloomerp/static/bloomerp/vendor/bootstrap/css/bootstrap.rtl.css.map +1 -0
  171. bloomerp/static/bloomerp/vendor/bootstrap/css/bootstrap.rtl.min.css +7 -0
  172. bloomerp/static/bloomerp/vendor/bootstrap/css/bootstrap.rtl.min.css.map +1 -0
  173. bloomerp/static/bloomerp/vendor/bootstrap/js/bootstrap.bundle.js +6812 -0
  174. bloomerp/static/bloomerp/vendor/bootstrap/js/bootstrap.bundle.js.map +1 -0
  175. bloomerp/static/bloomerp/vendor/bootstrap/js/bootstrap.bundle.min.js +7 -0
  176. bloomerp/static/bloomerp/vendor/bootstrap/js/bootstrap.bundle.min.js.map +1 -0
  177. bloomerp/static/bloomerp/vendor/bootstrap/js/bootstrap.esm.js +4999 -0
  178. bloomerp/static/bloomerp/vendor/bootstrap/js/bootstrap.esm.js.map +1 -0
  179. bloomerp/static/bloomerp/vendor/bootstrap/js/bootstrap.esm.min.js +7 -0
  180. bloomerp/static/bloomerp/vendor/bootstrap/js/bootstrap.esm.min.js.map +1 -0
  181. bloomerp/static/bloomerp/vendor/bootstrap/js/bootstrap.js +5046 -0
  182. bloomerp/static/bloomerp/vendor/bootstrap/js/bootstrap.js.map +1 -0
  183. bloomerp/static/bloomerp/vendor/bootstrap/js/bootstrap.min.js +7 -0
  184. bloomerp/static/bloomerp/vendor/bootstrap/js/bootstrap.min.js.map +1 -0
  185. bloomerp/static/bloomerp/vendor/bootstrap-icons/bootstrap-icons.css +1556 -0
  186. bloomerp/static/bloomerp/vendor/bootstrap-icons/bootstrap-icons.json +1537 -0
  187. bloomerp/static/bloomerp/vendor/bootstrap-icons/fonts/bootstrap-icons.woff +0 -0
  188. bloomerp/static/bloomerp/vendor/bootstrap-icons/fonts/bootstrap-icons.woff2 +0 -0
  189. bloomerp/static/bloomerp/vendor/bootstrap-icons/index.html +6135 -0
  190. bloomerp/static/bloomerp/vendor/boxicons/css/animations.css +386 -0
  191. bloomerp/static/bloomerp/vendor/boxicons/css/boxicons.css +5258 -0
  192. bloomerp/static/bloomerp/vendor/boxicons/css/boxicons.min.css +1 -0
  193. bloomerp/static/bloomerp/vendor/boxicons/css/transformations.css +30 -0
  194. bloomerp/static/bloomerp/vendor/boxicons/fonts/boxicons.eot +0 -0
  195. bloomerp/static/bloomerp/vendor/boxicons/fonts/boxicons.svg +1604 -0
  196. bloomerp/static/bloomerp/vendor/boxicons/fonts/boxicons.ttf +0 -0
  197. bloomerp/static/bloomerp/vendor/boxicons/fonts/boxicons.woff +0 -0
  198. bloomerp/static/bloomerp/vendor/boxicons/fonts/boxicons.woff2 +0 -0
  199. bloomerp/static/bloomerp/vendor/quill/image-drop.min.js +3 -0
  200. bloomerp/static/bloomerp/vendor/quill/image-resize.min.js +1 -0
  201. bloomerp/static/bloomerp/vendor/quill/quill.bubble.css +952 -0
  202. bloomerp/static/bloomerp/vendor/quill/quill.core.css +397 -0
  203. bloomerp/static/bloomerp/vendor/quill/quill.core.js +8594 -0
  204. bloomerp/static/bloomerp/vendor/quill/quill.js +11562 -0
  205. bloomerp/static/bloomerp/vendor/quill/quill.min.js +8 -0
  206. bloomerp/static/bloomerp/vendor/quill/quill.min.js.map +1 -0
  207. bloomerp/static/bloomerp/vendor/quill/quill.snow.css +945 -0
  208. bloomerp/static/bloomerp/vendor/remixicon/remixicon.css +2317 -0
  209. bloomerp/static/bloomerp/vendor/remixicon/remixicon.eot +0 -0
  210. bloomerp/static/bloomerp/vendor/remixicon/remixicon.less +2319 -0
  211. bloomerp/static/bloomerp/vendor/remixicon/remixicon.svg +6835 -0
  212. bloomerp/static/bloomerp/vendor/remixicon/remixicon.symbol.svg +11356 -0
  213. bloomerp/static/bloomerp/vendor/remixicon/remixicon.ttf +0 -0
  214. bloomerp/static/bloomerp/vendor/remixicon/remixicon.woff +0 -0
  215. bloomerp/static/bloomerp/vendor/remixicon/remixicon.woff2 +0 -0
  216. bloomerp/static/bloomerp/vendor/simple-datatables/simple-datatables.js +12 -0
  217. bloomerp/static/bloomerp/vendor/simple-datatables/style.css +173 -0
  218. bloomerp/static/bloomerp/vendor/tinymce/icons/default/icons.min.js +1 -0
  219. bloomerp/static/bloomerp/vendor/tinymce/langs/README.md +3 -0
  220. bloomerp/static/bloomerp/vendor/tinymce/license.md +6 -0
  221. bloomerp/static/bloomerp/vendor/tinymce/models/dom/model.min.js +4 -0
  222. bloomerp/static/bloomerp/vendor/tinymce/plugins/accordion/plugin.min.js +4 -0
  223. bloomerp/static/bloomerp/vendor/tinymce/plugins/advlist/plugin.min.js +4 -0
  224. bloomerp/static/bloomerp/vendor/tinymce/plugins/anchor/plugin.min.js +4 -0
  225. bloomerp/static/bloomerp/vendor/tinymce/plugins/autolink/plugin.min.js +4 -0
  226. bloomerp/static/bloomerp/vendor/tinymce/plugins/autoresize/plugin.min.js +4 -0
  227. bloomerp/static/bloomerp/vendor/tinymce/plugins/autosave/plugin.min.js +4 -0
  228. bloomerp/static/bloomerp/vendor/tinymce/plugins/charmap/plugin.min.js +4 -0
  229. bloomerp/static/bloomerp/vendor/tinymce/plugins/code/plugin.min.js +4 -0
  230. bloomerp/static/bloomerp/vendor/tinymce/plugins/codesample/plugin.min.js +4 -0
  231. bloomerp/static/bloomerp/vendor/tinymce/plugins/directionality/plugin.min.js +4 -0
  232. bloomerp/static/bloomerp/vendor/tinymce/plugins/emoticons/js/emojiimages.js +1 -0
  233. bloomerp/static/bloomerp/vendor/tinymce/plugins/emoticons/js/emojiimages.min.js +3 -0
  234. bloomerp/static/bloomerp/vendor/tinymce/plugins/emoticons/js/emojis.js +1 -0
  235. bloomerp/static/bloomerp/vendor/tinymce/plugins/emoticons/js/emojis.min.js +2 -0
  236. bloomerp/static/bloomerp/vendor/tinymce/plugins/emoticons/plugin.min.js +4 -0
  237. bloomerp/static/bloomerp/vendor/tinymce/plugins/fullscreen/plugin.min.js +4 -0
  238. bloomerp/static/bloomerp/vendor/tinymce/plugins/help/js/i18n/keynav/ar.js +93 -0
  239. bloomerp/static/bloomerp/vendor/tinymce/plugins/help/js/i18n/keynav/bg_BG.js +93 -0
  240. bloomerp/static/bloomerp/vendor/tinymce/plugins/help/js/i18n/keynav/ca.js +93 -0
  241. bloomerp/static/bloomerp/vendor/tinymce/plugins/help/js/i18n/keynav/cs.js +93 -0
  242. bloomerp/static/bloomerp/vendor/tinymce/plugins/help/js/i18n/keynav/da.js +93 -0
  243. bloomerp/static/bloomerp/vendor/tinymce/plugins/help/js/i18n/keynav/de.js +93 -0
  244. bloomerp/static/bloomerp/vendor/tinymce/plugins/help/js/i18n/keynav/el.js +93 -0
  245. bloomerp/static/bloomerp/vendor/tinymce/plugins/help/js/i18n/keynav/en.js +93 -0
  246. bloomerp/static/bloomerp/vendor/tinymce/plugins/help/js/i18n/keynav/es.js +93 -0
  247. bloomerp/static/bloomerp/vendor/tinymce/plugins/help/js/i18n/keynav/eu.js +93 -0
  248. bloomerp/static/bloomerp/vendor/tinymce/plugins/help/js/i18n/keynav/fa.js +93 -0
  249. bloomerp/static/bloomerp/vendor/tinymce/plugins/help/js/i18n/keynav/fi.js +93 -0
  250. bloomerp/static/bloomerp/vendor/tinymce/plugins/help/js/i18n/keynav/fr_FR.js +93 -0
  251. bloomerp/static/bloomerp/vendor/tinymce/plugins/help/js/i18n/keynav/he_IL.js +93 -0
  252. bloomerp/static/bloomerp/vendor/tinymce/plugins/help/js/i18n/keynav/hi.js +93 -0
  253. bloomerp/static/bloomerp/vendor/tinymce/plugins/help/js/i18n/keynav/hr.js +93 -0
  254. bloomerp/static/bloomerp/vendor/tinymce/plugins/help/js/i18n/keynav/hu_HU.js +93 -0
  255. bloomerp/static/bloomerp/vendor/tinymce/plugins/help/js/i18n/keynav/id.js +93 -0
  256. bloomerp/static/bloomerp/vendor/tinymce/plugins/help/js/i18n/keynav/it.js +93 -0
  257. bloomerp/static/bloomerp/vendor/tinymce/plugins/help/js/i18n/keynav/ja.js +93 -0
  258. bloomerp/static/bloomerp/vendor/tinymce/plugins/help/js/i18n/keynav/kk.js +93 -0
  259. bloomerp/static/bloomerp/vendor/tinymce/plugins/help/js/i18n/keynav/ko_KR.js +93 -0
  260. bloomerp/static/bloomerp/vendor/tinymce/plugins/help/js/i18n/keynav/ms.js +93 -0
  261. bloomerp/static/bloomerp/vendor/tinymce/plugins/help/js/i18n/keynav/nb_NO.js +93 -0
  262. bloomerp/static/bloomerp/vendor/tinymce/plugins/help/js/i18n/keynav/nl.js +93 -0
  263. bloomerp/static/bloomerp/vendor/tinymce/plugins/help/js/i18n/keynav/pl.js +93 -0
  264. bloomerp/static/bloomerp/vendor/tinymce/plugins/help/js/i18n/keynav/pt_BR.js +93 -0
  265. bloomerp/static/bloomerp/vendor/tinymce/plugins/help/js/i18n/keynav/pt_PT.js +93 -0
  266. bloomerp/static/bloomerp/vendor/tinymce/plugins/help/js/i18n/keynav/ro.js +93 -0
  267. bloomerp/static/bloomerp/vendor/tinymce/plugins/help/js/i18n/keynav/ru.js +93 -0
  268. bloomerp/static/bloomerp/vendor/tinymce/plugins/help/js/i18n/keynav/sk.js +93 -0
  269. bloomerp/static/bloomerp/vendor/tinymce/plugins/help/js/i18n/keynav/sl_SI.js +93 -0
  270. bloomerp/static/bloomerp/vendor/tinymce/plugins/help/js/i18n/keynav/sv_SE.js +93 -0
  271. bloomerp/static/bloomerp/vendor/tinymce/plugins/help/js/i18n/keynav/th_TH.js +93 -0
  272. bloomerp/static/bloomerp/vendor/tinymce/plugins/help/js/i18n/keynav/tr.js +93 -0
  273. bloomerp/static/bloomerp/vendor/tinymce/plugins/help/js/i18n/keynav/uk.js +93 -0
  274. bloomerp/static/bloomerp/vendor/tinymce/plugins/help/js/i18n/keynav/vi.js +93 -0
  275. bloomerp/static/bloomerp/vendor/tinymce/plugins/help/js/i18n/keynav/zh_CN.js +87 -0
  276. bloomerp/static/bloomerp/vendor/tinymce/plugins/help/js/i18n/keynav/zh_TW.js +93 -0
  277. bloomerp/static/bloomerp/vendor/tinymce/plugins/help/plugin.min.js +4 -0
  278. bloomerp/static/bloomerp/vendor/tinymce/plugins/image/plugin.min.js +4 -0
  279. bloomerp/static/bloomerp/vendor/tinymce/plugins/importcss/plugin.min.js +4 -0
  280. bloomerp/static/bloomerp/vendor/tinymce/plugins/insertdatetime/plugin.min.js +4 -0
  281. bloomerp/static/bloomerp/vendor/tinymce/plugins/link/plugin.min.js +4 -0
  282. bloomerp/static/bloomerp/vendor/tinymce/plugins/lists/plugin.min.js +4 -0
  283. bloomerp/static/bloomerp/vendor/tinymce/plugins/media/plugin.min.js +4 -0
  284. bloomerp/static/bloomerp/vendor/tinymce/plugins/nonbreaking/plugin.min.js +4 -0
  285. bloomerp/static/bloomerp/vendor/tinymce/plugins/pagebreak/plugin.min.js +4 -0
  286. bloomerp/static/bloomerp/vendor/tinymce/plugins/preview/plugin.min.js +4 -0
  287. bloomerp/static/bloomerp/vendor/tinymce/plugins/quickbars/plugin.min.js +4 -0
  288. bloomerp/static/bloomerp/vendor/tinymce/plugins/save/plugin.min.js +4 -0
  289. bloomerp/static/bloomerp/vendor/tinymce/plugins/searchreplace/plugin.min.js +4 -0
  290. bloomerp/static/bloomerp/vendor/tinymce/plugins/table/plugin.min.js +4 -0
  291. bloomerp/static/bloomerp/vendor/tinymce/plugins/visualblocks/plugin.min.js +4 -0
  292. bloomerp/static/bloomerp/vendor/tinymce/plugins/visualchars/plugin.min.js +4 -0
  293. bloomerp/static/bloomerp/vendor/tinymce/plugins/wordcount/plugin.min.js +4 -0
  294. bloomerp/static/bloomerp/vendor/tinymce/skins/content/dark/content.js +1 -0
  295. bloomerp/static/bloomerp/vendor/tinymce/skins/content/dark/content.min.css +1 -0
  296. bloomerp/static/bloomerp/vendor/tinymce/skins/content/default/content.js +1 -0
  297. bloomerp/static/bloomerp/vendor/tinymce/skins/content/default/content.min.css +1 -0
  298. bloomerp/static/bloomerp/vendor/tinymce/skins/content/document/content.js +1 -0
  299. bloomerp/static/bloomerp/vendor/tinymce/skins/content/document/content.min.css +1 -0
  300. bloomerp/static/bloomerp/vendor/tinymce/skins/content/tinymce-5/content.js +1 -0
  301. bloomerp/static/bloomerp/vendor/tinymce/skins/content/tinymce-5/content.min.css +1 -0
  302. bloomerp/static/bloomerp/vendor/tinymce/skins/content/tinymce-5-dark/content.js +1 -0
  303. bloomerp/static/bloomerp/vendor/tinymce/skins/content/tinymce-5-dark/content.min.css +1 -0
  304. bloomerp/static/bloomerp/vendor/tinymce/skins/content/writer/content.js +1 -0
  305. bloomerp/static/bloomerp/vendor/tinymce/skins/content/writer/content.min.css +1 -0
  306. bloomerp/static/bloomerp/vendor/tinymce/skins/ui/oxide/content.inline.js +1 -0
  307. bloomerp/static/bloomerp/vendor/tinymce/skins/ui/oxide/content.inline.min.css +1 -0
  308. bloomerp/static/bloomerp/vendor/tinymce/skins/ui/oxide/content.js +1 -0
  309. bloomerp/static/bloomerp/vendor/tinymce/skins/ui/oxide/content.min.css +1 -0
  310. bloomerp/static/bloomerp/vendor/tinymce/skins/ui/oxide/skin.js +1 -0
  311. bloomerp/static/bloomerp/vendor/tinymce/skins/ui/oxide/skin.min.css +1 -0
  312. bloomerp/static/bloomerp/vendor/tinymce/skins/ui/oxide/skin.shadowdom.js +1 -0
  313. bloomerp/static/bloomerp/vendor/tinymce/skins/ui/oxide/skin.shadowdom.min.css +1 -0
  314. bloomerp/static/bloomerp/vendor/tinymce/skins/ui/oxide-dark/content.inline.js +1 -0
  315. bloomerp/static/bloomerp/vendor/tinymce/skins/ui/oxide-dark/content.inline.min.css +1 -0
  316. bloomerp/static/bloomerp/vendor/tinymce/skins/ui/oxide-dark/content.js +1 -0
  317. bloomerp/static/bloomerp/vendor/tinymce/skins/ui/oxide-dark/content.min.css +1 -0
  318. bloomerp/static/bloomerp/vendor/tinymce/skins/ui/oxide-dark/skin.js +1 -0
  319. bloomerp/static/bloomerp/vendor/tinymce/skins/ui/oxide-dark/skin.min.css +1 -0
  320. bloomerp/static/bloomerp/vendor/tinymce/skins/ui/oxide-dark/skin.shadowdom.js +1 -0
  321. bloomerp/static/bloomerp/vendor/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.css +1 -0
  322. bloomerp/static/bloomerp/vendor/tinymce/skins/ui/tinymce-5/content.inline.js +1 -0
  323. bloomerp/static/bloomerp/vendor/tinymce/skins/ui/tinymce-5/content.inline.min.css +1 -0
  324. bloomerp/static/bloomerp/vendor/tinymce/skins/ui/tinymce-5/content.js +1 -0
  325. bloomerp/static/bloomerp/vendor/tinymce/skins/ui/tinymce-5/content.min.css +1 -0
  326. bloomerp/static/bloomerp/vendor/tinymce/skins/ui/tinymce-5/skin.js +1 -0
  327. bloomerp/static/bloomerp/vendor/tinymce/skins/ui/tinymce-5/skin.min.css +1 -0
  328. bloomerp/static/bloomerp/vendor/tinymce/skins/ui/tinymce-5/skin.shadowdom.js +1 -0
  329. bloomerp/static/bloomerp/vendor/tinymce/skins/ui/tinymce-5/skin.shadowdom.min.css +1 -0
  330. bloomerp/static/bloomerp/vendor/tinymce/skins/ui/tinymce-5-dark/content.inline.js +1 -0
  331. bloomerp/static/bloomerp/vendor/tinymce/skins/ui/tinymce-5-dark/content.inline.min.css +1 -0
  332. bloomerp/static/bloomerp/vendor/tinymce/skins/ui/tinymce-5-dark/content.js +1 -0
  333. bloomerp/static/bloomerp/vendor/tinymce/skins/ui/tinymce-5-dark/content.min.css +1 -0
  334. bloomerp/static/bloomerp/vendor/tinymce/skins/ui/tinymce-5-dark/skin.js +1 -0
  335. bloomerp/static/bloomerp/vendor/tinymce/skins/ui/tinymce-5-dark/skin.min.css +1 -0
  336. bloomerp/static/bloomerp/vendor/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.js +1 -0
  337. bloomerp/static/bloomerp/vendor/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.min.css +1 -0
  338. bloomerp/static/bloomerp/vendor/tinymce/themes/silver/theme.min.js +386 -0
  339. bloomerp/static/bloomerp/vendor/tinymce/tinymce.d.ts +3277 -0
  340. bloomerp/static/bloomerp/vendor/tinymce/tinymce.min.js +385 -0
  341. bloomerp/templates/403.html +7 -0
  342. bloomerp/templates/auth_views/login_view.html +97 -0
  343. bloomerp/templates/auth_views/password_reset_done_view.html +37 -0
  344. bloomerp/templates/auth_views/password_reset_view.html +46 -0
  345. bloomerp/templates/auth_views/profile_overview.html +4 -0
  346. bloomerp/templates/auth_views/profile_password_reset.html +1 -0
  347. bloomerp/templates/bloomerp_base.html +265 -0
  348. bloomerp/templates/bloomerp_htmx_base_view.html +7 -0
  349. bloomerp/templates/bootstrap5/accordion-group.html +15 -0
  350. bloomerp/templates/bootstrap5/accordion.html +3 -0
  351. bloomerp/templates/bootstrap5/betterform.html +22 -0
  352. bloomerp/templates/bootstrap5/display_form.html +9 -0
  353. bloomerp/templates/bootstrap5/errors.html +8 -0
  354. bloomerp/templates/bootstrap5/errors_formset.html +9 -0
  355. bloomerp/templates/bootstrap5/field.html +71 -0
  356. bloomerp/templates/bootstrap5/inputs.html +13 -0
  357. bloomerp/templates/bootstrap5/layout/alert.html +4 -0
  358. bloomerp/templates/bootstrap5/layout/attrs.html +1 -0
  359. bloomerp/templates/bootstrap5/layout/baseinput.html +9 -0
  360. bloomerp/templates/bootstrap5/layout/button.html +1 -0
  361. bloomerp/templates/bootstrap5/layout/buttonholder.html +4 -0
  362. bloomerp/templates/bootstrap5/layout/checkboxselectmultiple_inline.html +16 -0
  363. bloomerp/templates/bootstrap5/layout/column.html +6 -0
  364. bloomerp/templates/bootstrap5/layout/div.html +4 -0
  365. bloomerp/templates/bootstrap5/layout/field_errors.html +5 -0
  366. bloomerp/templates/bootstrap5/layout/field_errors_block.html +5 -0
  367. bloomerp/templates/bootstrap5/layout/field_file.html +27 -0
  368. bloomerp/templates/bootstrap5/layout/field_with_buttons.html +32 -0
  369. bloomerp/templates/bootstrap5/layout/fieldset.html +6 -0
  370. bloomerp/templates/bootstrap5/layout/floating_field.html +29 -0
  371. bloomerp/templates/bootstrap5/layout/formactions.html +9 -0
  372. bloomerp/templates/bootstrap5/layout/help_text.html +7 -0
  373. bloomerp/templates/bootstrap5/layout/help_text_and_errors.html +13 -0
  374. bloomerp/templates/bootstrap5/layout/inline_field.html +26 -0
  375. bloomerp/templates/bootstrap5/layout/modal.html +13 -0
  376. bloomerp/templates/bootstrap5/layout/multifield.html +27 -0
  377. bloomerp/templates/bootstrap5/layout/prepended_appended_text.html +50 -0
  378. bloomerp/templates/bootstrap5/layout/radio_checkbox_select.html +27 -0
  379. bloomerp/templates/bootstrap5/layout/radioselect_inline.html +16 -0
  380. bloomerp/templates/bootstrap5/layout/row.html +3 -0
  381. bloomerp/templates/bootstrap5/layout/switch.html +19 -0
  382. bloomerp/templates/bootstrap5/layout/tab-link.html +1 -0
  383. bloomerp/templates/bootstrap5/layout/tab.html +6 -0
  384. bloomerp/templates/bootstrap5/layout/uneditable_input.html +10 -0
  385. bloomerp/templates/bootstrap5/table_inline_formset.html +57 -0
  386. bloomerp/templates/bootstrap5/uni_form.html +11 -0
  387. bloomerp/templates/bootstrap5/uni_formset.html +8 -0
  388. bloomerp/templates/bootstrap5/whole_uni_form.html +14 -0
  389. bloomerp/templates/bootstrap5/whole_uni_formset.html +30 -0
  390. bloomerp/templates/components/bookmark.html +20 -0
  391. bloomerp/templates/components/bulk_update_objects.html +2 -0
  392. bloomerp/templates/components/bulk_upload_table.html +71 -0
  393. bloomerp/templates/components/comments.html +51 -0
  394. bloomerp/templates/components/execute_sql_query.html +34 -0
  395. bloomerp/templates/components/files.html +714 -0
  396. bloomerp/templates/components/fk_search_results.html +14 -0
  397. bloomerp/templates/components/list_view_filter_action.html +43 -0
  398. bloomerp/templates/components/list_view_filter_input.html +52 -0
  399. bloomerp/templates/components/list_view_filter_row.html +32 -0
  400. bloomerp/templates/components/object_model_form.html +3 -0
  401. bloomerp/templates/components/preview_document_template.html +6 -0
  402. bloomerp/templates/components/search_results.html +59 -0
  403. bloomerp/templates/components/workspace_widget.html +55 -0
  404. bloomerp/templates/create_views/bloomerp_base_wizard_create_view.html +79 -0
  405. bloomerp/templates/create_views/bloomerp_create_view.html +54 -0
  406. bloomerp/templates/detail_views/bloomerp_base_detail_view.html +158 -0
  407. bloomerp/templates/detail_views/bloomerp_detail_comments_view.html +19 -0
  408. bloomerp/templates/detail_views/bloomerp_detail_files_view.html +1 -0
  409. bloomerp/templates/detail_views/bloomerp_detail_foreign_relationship_view.html +34 -0
  410. bloomerp/templates/detail_views/bloomerp_detail_foreign_relationship_view_2.html +226 -0
  411. bloomerp/templates/detail_views/bloomerp_detail_overview_view.html +138 -0
  412. bloomerp/templates/detail_views/bloomerp_detail_update_view.html +74 -0
  413. bloomerp/templates/detail_views/snippets/card_header.html +157 -0
  414. bloomerp/templates/detail_views/snippets/post_comment_snippet.html +37 -0
  415. bloomerp/templates/document_template_views/bloomerp_detail_document_generator_view.html +169 -0
  416. bloomerp/templates/document_template_views/bloomerp_document_template_editor_view.html +275 -0
  417. bloomerp/templates/document_template_views/bloomerp_document_template_list_view.html +65 -0
  418. bloomerp/templates/list_views/bloomerp_bookmarks_view.html +2 -0
  419. bloomerp/templates/list_views/bloomerp_bulk_upload_view.html +111 -0
  420. bloomerp/templates/list_views/bloomerp_file_list_view.html +32 -0
  421. bloomerp/templates/list_views/bloomerp_list_view.html +59 -0
  422. bloomerp/templates/list_views/snippets/filter_dropdown.html +380 -0
  423. bloomerp/templates/snippets/403.html +1 -0
  424. bloomerp/templates/snippets/avatar.html +14 -0
  425. bloomerp/templates/snippets/breadcrumb.html +11 -0
  426. bloomerp/templates/snippets/card_picture_snippet.html +41 -0
  427. bloomerp/templates/snippets/content_layout_snippet copy.html +195 -0
  428. bloomerp/templates/snippets/content_layout_snippet.html +420 -0
  429. bloomerp/templates/snippets/data_table.html +619 -0
  430. bloomerp/templates/snippets/files_snippet.html +60 -0
  431. bloomerp/templates/snippets/filter_snippet.html +103 -0
  432. bloomerp/templates/snippets/form_snippet.html +14 -0
  433. bloomerp/templates/snippets/head.html +144 -0
  434. bloomerp/templates/snippets/htmx_indicator.html +1 -0
  435. bloomerp/templates/snippets/list_view_filter copy.html +408 -0
  436. bloomerp/templates/snippets/list_view_filter.html +186 -0
  437. bloomerp/templates/snippets/llm_modal_snippet.html +70 -0
  438. bloomerp/templates/snippets/message.html +140 -0
  439. bloomerp/templates/snippets/sidebar.html +77 -0
  440. bloomerp/templates/snippets/workspace_item.html +79 -0
  441. bloomerp/templates/test_view.html +8 -0
  442. bloomerp/templates/user_views/bloomerp_detail_view_preference_view.html +95 -0
  443. bloomerp/templates/user_views/list.html +7 -0
  444. bloomerp/templates/user_views/list_view_preference_view.html +46 -0
  445. bloomerp/templates/user_views/new_password_done_view.html +37 -0
  446. bloomerp/templates/user_views/new_password_view.html +47 -0
  447. bloomerp/templates/user_views/notification_list_view.html +59 -0
  448. bloomerp/templates/user_views/notification_setting_view.html +5 -0
  449. bloomerp/templates/widget_views/base_sql_query_builder_view.html +236 -0
  450. bloomerp/templates/widgets/ace_editor_widget.html +33 -0
  451. bloomerp/templates/widgets/bloomerp_file_field_widget.html +28 -0
  452. bloomerp/templates/widgets/foreign_field_widget.html +205 -0
  453. bloomerp/templates/widgets/foreign_key_widget.html +178 -0
  454. bloomerp/templates/widgets/multiple_model_select_widget.html +166 -0
  455. bloomerp/templates/widgets/rich_text_editor_widget.html +29 -0
  456. bloomerp/templates/widgets/tiny_mce_text_editor_widget.html +13 -0
  457. bloomerp/templates/workspace_views/bloomerp_workspace_view.html +21 -0
  458. bloomerp/templatetags/bloomerp.py +261 -0
  459. bloomerp/templatetags/globals.py +22 -0
  460. bloomerp/tests/test_components.py +351 -0
  461. bloomerp/tests/test_filters.py +80 -0
  462. bloomerp/tests/test_forms.py +9 -0
  463. bloomerp/tests/test_links.py +98 -0
  464. bloomerp/tests/test_models.py +100 -0
  465. bloomerp/tests/test_search_results.py +44 -0
  466. bloomerp/tests/test_utils.py +0 -0
  467. bloomerp/tests/test_views.py +21 -0
  468. bloomerp/urls.py +236 -0
  469. bloomerp/utils/api.py +42 -0
  470. bloomerp/utils/document_templates.py +169 -0
  471. bloomerp/utils/encryption.py +16 -0
  472. bloomerp/utils/filters.py +143 -0
  473. bloomerp/utils/llm.py +55 -0
  474. bloomerp/utils/model_io.py +207 -0
  475. bloomerp/utils/models.py +367 -0
  476. bloomerp/utils/pdf.py +90 -0
  477. bloomerp/utils/permissions.py +28 -0
  478. bloomerp/utils/router.py +599 -0
  479. bloomerp/utils/sql.py +185 -0
  480. bloomerp/utils/urls.py +24 -0
  481. bloomerp/views/api.py +44 -0
  482. bloomerp/views/auth.py +317 -0
  483. bloomerp/views/core.py +642 -0
  484. bloomerp/views/document_templates.py +136 -0
  485. bloomerp/views/mixins.py +166 -0
  486. bloomerp/views/tests.py +12 -0
  487. bloomerp/views/widgets.py +135 -0
  488. bloomerp/views/workspace.py +86 -0
  489. bloomerp/widgets/__init__.py +0 -0
  490. bloomerp/widgets/bloomerp_file_field_widget.py +102 -0
  491. bloomerp/widgets/code_editor_widget.py +21 -0
  492. bloomerp/widgets/foreign_key_widget.py +39 -0
  493. bloomerp/widgets/multiple_model_select_widget.py +43 -0
  494. bloomerp/widgets/text_editor.py +13 -0
  495. bloomerp_tests/__init__.py +0 -0
  496. bloomerp_tests/admin.py +3 -0
  497. bloomerp_tests/apps.py +6 -0
  498. bloomerp_tests/migrations/0001_initial.py +55 -0
  499. bloomerp_tests/migrations/__init__.py +0 -0
  500. bloomerp_tests/models.py +16 -0
  501. bloomerp_tests/tests.py +3 -0
  502. bloomerp_tests/views.py +3 -0
  503. test_app/__init__.py +0 -0
  504. test_app/admin.py +5 -0
  505. test_app/apps.py +6 -0
  506. test_app/migrations/0001_initial.py +98 -0
  507. test_app/migrations/0002_alter_customer_options_alter_order_options_and_more.py +34 -0
  508. test_app/migrations/0003_alter_order_options_alter_product_options.py +42 -0
  509. test_app/migrations/0004_alter_order_options_alter_product_options.py +42 -0
  510. test_app/migrations/0005_alter_order_options_alter_product_options.py +42 -0
  511. test_app/migrations/0006_alter_order_options_alter_product_options.py +42 -0
  512. test_app/migrations/0007_alter_order_customer.py +22 -0
  513. test_app/migrations/0008_accommodation_employee_employeeonaccommodation.py +142 -0
  514. test_app/migrations/0009_rename_created_at_accommodation_datetime_created_and_more.py +72 -0
  515. test_app/migrations/0010_alter_customer_options.py +16 -0
  516. test_app/migrations/0011_function_employee_manager_employee_functions.py +59 -0
  517. test_app/migrations/0012_equipment_employee_equipment.py +39 -0
  518. test_app/migrations/0013_alter_customer_name_alter_employee_first_name_and_more.py +33 -0
  519. test_app/migrations/0014_accommodation_created_by_accommodation_updated_by_and_more.py +186 -0
  520. test_app/migrations/0015_employee_date_of_birth.py +17 -0
  521. test_app/migrations/0016_alter_employee_manager.py +25 -0
  522. test_app/migrations/0017_alter_accommodation_options_alter_employee_options_and_more.py +75 -0
  523. test_app/migrations/0018_alter_accommodation_options_alter_customer_options_and_more.py +137 -0
  524. test_app/migrations/0019_alter_accommodation_options_alter_customer_options_and_more.py +137 -0
  525. test_app/migrations/0020_alter_accommodation_options_alter_customer_options_and_more.py +110 -0
  526. test_app/migrations/0021_alter_accommodation_options_alter_employee_options_and_more.py +113 -0
  527. test_app/migrations/0022_alter_accommodation_options_alter_employee_options_and_more.py +120 -0
  528. test_app/migrations/__init__.py +0 -0
  529. test_app/models.py +111 -0
  530. test_app/tests.py +3 -0
  531. test_app/views.py +37 -0
  532. test_environment/__init__.py +0 -0
  533. test_environment/asgi.py +16 -0
  534. test_environment/settings.py +194 -0
  535. test_environment/urls.py +26 -0
  536. test_environment/wsgi.py +16 -0
@@ -0,0 +1,195 @@
1
+ Metadata-Version: 2.1
2
+ Name: Bloomerp
3
+ Version: 0.1
4
+ Summary: Bloomerp is an open source Business Management Software framework that let's you create a fully functioning business management applications by just Django models.
5
+ Home-page: https://github.com/davidbloomer11/Bloomerp
6
+ Author: David Bloomer
7
+ Author-email: bloomer.david@outlook.com
8
+ License: MIT License
9
+ Classifier: Environment :: Web Environment
10
+ Classifier: Framework :: Django
11
+ Classifier: Programming Language :: Python
12
+ Classifier: Programming Language :: Python :: 3
13
+ Classifier: Programming Language :: Python :: 3.8
14
+ Classifier: Operating System :: OS Independent
15
+ Description-Content-Type: text/markdown
16
+ Requires-Dist: Django >=5.0.0
17
+ Requires-Dist: requests >=2.0.0
18
+ Requires-Dist: djangorestframework >=3.12.0
19
+ Requires-Dist: django-htmx >=1.0.0
20
+ Requires-Dist: django-formtools >=2.3
21
+ Requires-Dist: Pillow >=8.0.0
22
+ Requires-Dist: psycopg2 >=2.8.0
23
+ Requires-Dist: django-crispy-forms >=1.11.0
24
+ Requires-Dist: django-filter >=24.3
25
+ Requires-Dist: xhtml2pdf >=0.2.16
26
+ Requires-Dist: pandas >=2.0.0
27
+ Requires-Dist: openpyxl >=3.1.5
28
+ Requires-Dist: openai >=1.54.1
29
+ Requires-Dist: plotly >=5.0.0
30
+ Provides-Extra: images
31
+ Requires-Dist: Pillow >=8.0.0 ; extra == 'images'
32
+
33
+ # bloomerp
34
+ Bloomerp is an open source Business Management Software framework that let's you create a fully functioning business management applications by just defining the database models.
35
+ In it's core, it uses the popular Python framework Django and HTMX to provide a robust and quick application.
36
+
37
+ ## Features
38
+ Bloomerp is comprised of various features.
39
+ - Intuitive CRUD views with integrated access controll provided by Django
40
+ - List views that offer advanced filtering capabilities
41
+ - Intuitive PDF generation system for model objects that let's you easily define templates like contracts,
42
+ - Intuitive dashboarding capabilities based on SQL queries
43
+ - Integration with LLMs to create SQL queries
44
+ - Bulk upload's for models
45
+ - REST Api's for all models using django-rest-framework
46
+ - Intuitive file system UI including folder structures
47
+ - Bookmarking system to track bookmarked objects for users
48
+ - Comment system that let's you comment on certain objects
49
+
50
+ ## Getting started
51
+ You can start using the Bloomerp framework in a few simple steps:
52
+ 1. Install Django and the Bloomerp framework
53
+ 2. Setup project by defining settings in your Django application
54
+ 3. Start defining your models
55
+
56
+ ### Install Django, Bloomerp, and start a project
57
+ First, start by installing Django.
58
+ ```sh
59
+ pip install django
60
+ ```
61
+ Next, you need to install the Bloomerp framework.
62
+ ```sh
63
+ pip install bloomerp
64
+ ```
65
+
66
+ ### Setup project
67
+ Once you have installed the necessary dependencies, it's time to start creating our new project.
68
+
69
+ For the purpose of this tutorial let's imagine building a sales application. The data needs to be tracked are products, sales and customers. We'll start by creating our Django project.
70
+
71
+ Creating the Django project.
72
+ ```sh
73
+ django-admin startproject core
74
+ ```
75
+
76
+ Creating the Django app.
77
+ ```sh
78
+ django-admin startapp sales
79
+ ```
80
+
81
+ Once we have done the above, we have to go into core/settings.py to setup a few things.
82
+
83
+
84
+ ```python
85
+ #settings.py
86
+ from bloomerp.config import BLOOMERP_APPS, BLOOMERP_MIDDLEWARE, BLOOMERP_USER_MODEL
87
+ from bloomerp.models import User
88
+
89
+ # Setup installed apps
90
+ INSTALLED_APPS = [
91
+ ...
92
+ 'sales'
93
+ # Any other installed app
94
+ ]
95
+ INSTALLED_APPS += BLOOMERP_APPS
96
+
97
+ # Setup middleware
98
+ MIDDLEWARE = [
99
+ ...
100
+ ]
101
+ MIDDLEWARE += BLOOMERP_MIDDLEWARE
102
+
103
+ # Setup user
104
+ AUTH_USER_MODEL = BLOOMERP_USER_MODEL
105
+
106
+ # Setup crispy (Bloomerp uses django-crispy-forms)
107
+ CRISPY_ALLOWED_TEMPLATE_PACKS = "bootstrap5"
108
+ CRISPY_TEMPLATE_PACK = "bootstrap5"
109
+
110
+ # Setup Bloomerp settings
111
+ BLOOMERP_SETTINGS = {
112
+ "globals" : {
113
+ "organization_name": "FooBar",
114
+ },
115
+ "BASE_URL": "", # The base url of the application
116
+ "ROUTERS" : [
117
+ ...
118
+ # More on routers later, we can leave it blank for now.
119
+ ],
120
+ }
121
+
122
+ ```
123
+
124
+ Once we have got our settings configured, we can go ahead and make our migrations.
125
+ ```sh
126
+ python manage.py migrate
127
+ ```
128
+
129
+ ### Create your models
130
+ Let's start defining some basic models for our sales application. As was noted before, we'll have to define three basic models for this example.
131
+ ```python
132
+ from django.db import models
133
+ from bloomerp.models import BloomerpModel
134
+ from bloomerp.models.fields import BloomerpFileField
135
+ from django.utils import timezone
136
+
137
+ class Customer(BloomerpModel):
138
+ name = models.CharField(max_length=255)
139
+ email = models.EmailField()
140
+ phone = models.CharField(max_length=15)
141
+ address = models.TextField()
142
+
143
+ class Product(BloomerpModel):
144
+ name = models.CharField(max_length=255)
145
+ description = models.TextField(blank=True, null=True)
146
+ image = BloomerpFileField(allowed_extensions=['.jpg', '.jpeg', '.png'])
147
+ price = models.DecimalField(max_digits=10, decimal_places=2)
148
+
149
+ class Order(BloomerpModel):
150
+ STATUS_CHOICES = (
151
+ ('pending', 'Pending'),
152
+ ('processing', 'Processing'),
153
+ ('completed', 'Completed'),
154
+ ('cancelled', 'Cancelled'),
155
+ )
156
+ date = models.DateField(default=timezone.now)
157
+ product = models.ForeignKey(Product, on_delete=models.CASCADE)
158
+ quantity = models.IntegerField()
159
+ status = models.CharField(max_length=255, choices=STATUS_CHOICES, default='pending')
160
+ ```
161
+
162
+ Now that we have our models defined, we first have to make the neccessary migrations:
163
+
164
+ ```sh
165
+ python manage.py makemigrations sales
166
+ python manage.py migrate sales
167
+ ```
168
+
169
+ Additionally, we want to store the application fields that will be used throughout the application. Note that we have to run this command every time we update our data models in order to make sure the application runs smoothly. For that, we can use the following command:
170
+ ```sh
171
+ python manage.py save_application_fields
172
+ ```
173
+
174
+ Let's also create a superuser to login.
175
+ ```sh
176
+ python manage.py createsuperuser
177
+ ```
178
+
179
+ Finally, we are ready to startup our server.
180
+ ```sh
181
+ python manage.py runserver
182
+ ```
183
+
184
+ ### Creating custom views using routers
185
+ One of the goals in creating the Bloomerp framework, was to besides the out-of-the box functionality, offer developers ways to easily integrate custom functionality within the Bloomerp UI without having to play around to much with setting this up.
186
+
187
+ For this purpose, you can use **Bloomerp routers**. Let's say we want to create a custom view that let's us
188
+
189
+
190
+
191
+ ## Roadmap
192
+ Although significant effort has been made to make Bloomerp to work as it does today, it still remains a work-in-progress project. The following list comprises of things that are expected to be done in the future:
193
+
194
+ - Write more tests to make the application more robust for errors
195
+ - ...