django-bom 1.245__tar.gz → 1.248__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (193) hide show
  1. {django_bom-1.245/django_bom.egg-info → django_bom-1.248}/PKG-INFO +1 -1
  2. {django_bom-1.245 → django_bom-1.248}/bom/templates/bom/organization-create.html +6 -3
  3. {django_bom-1.245 → django_bom-1.248}/bom/templates/bom/settings.html +1 -1
  4. {django_bom-1.245 → django_bom-1.248}/bom/views/views.py +5 -1
  5. {django_bom-1.245 → django_bom-1.248/django_bom.egg-info}/PKG-INFO +1 -1
  6. {django_bom-1.245 → django_bom-1.248}/pyproject.toml +1 -1
  7. {django_bom-1.245 → django_bom-1.248}/LICENSE +0 -0
  8. {django_bom-1.245 → django_bom-1.248}/MANIFEST.in +0 -0
  9. {django_bom-1.245 → django_bom-1.248}/README.md +0 -0
  10. {django_bom-1.245 → django_bom-1.248}/bom/__init__.py +0 -0
  11. {django_bom-1.245 → django_bom-1.248}/bom/admin.py +0 -0
  12. {django_bom-1.245 → django_bom-1.248}/bom/apps.py +0 -0
  13. {django_bom-1.245 → django_bom-1.248}/bom/auth_backends.py +0 -0
  14. {django_bom-1.245 → django_bom-1.248}/bom/base_classes.py +0 -0
  15. {django_bom-1.245 → django_bom-1.248}/bom/constants.py +0 -0
  16. {django_bom-1.245 → django_bom-1.248}/bom/context_processors.py +0 -0
  17. {django_bom-1.245 → django_bom-1.248}/bom/csv_headers.py +0 -0
  18. {django_bom-1.245 → django_bom-1.248}/bom/decorators.py +0 -0
  19. {django_bom-1.245 → django_bom-1.248}/bom/form_fields.py +0 -0
  20. {django_bom-1.245 → django_bom-1.248}/bom/forms.py +0 -0
  21. {django_bom-1.245 → django_bom-1.248}/bom/helpers.py +0 -0
  22. {django_bom-1.245 → django_bom-1.248}/bom/local_settings.py +0 -0
  23. {django_bom-1.245 → django_bom-1.248}/bom/migrations/0001_initial.py +0 -0
  24. {django_bom-1.245 → django_bom-1.248}/bom/migrations/0002_auto_20180908_2151.py +0 -0
  25. {django_bom-1.245 → django_bom-1.248}/bom/migrations/0003_sellerpart_data_source.py +0 -0
  26. {django_bom-1.245 → django_bom-1.248}/bom/migrations/0004_auto_20180911_0011.py +0 -0
  27. {django_bom-1.245 → django_bom-1.248}/bom/migrations/0005_auto_20181007_1934.py +0 -0
  28. {django_bom-1.245 → django_bom-1.248}/bom/migrations/0006_auto_20181007_1949.py +0 -0
  29. {django_bom-1.245 → django_bom-1.248}/bom/migrations/0007_auto_20181009_0256.py +0 -0
  30. {django_bom-1.245 → django_bom-1.248}/bom/migrations/0008_auto_20181030_0427.py +0 -0
  31. {django_bom-1.245 → django_bom-1.248}/bom/migrations/0009_subpart_reference.py +0 -0
  32. {django_bom-1.245 → django_bom-1.248}/bom/migrations/0010_auto_20181202_0733.py +0 -0
  33. {django_bom-1.245 → django_bom-1.248}/bom/migrations/0011_auto_20181202_2113.py +0 -0
  34. {django_bom-1.245 → django_bom-1.248}/bom/migrations/0012_partchangehistory.py +0 -0
  35. {django_bom-1.245 → django_bom-1.248}/bom/migrations/0013_auto_20190222_1631.py +0 -0
  36. {django_bom-1.245 → django_bom-1.248}/bom/migrations/0014_auto_20190223_2353.py +0 -0
  37. {django_bom-1.245 → django_bom-1.248}/bom/migrations/0015_auto_20190303_1915.py +0 -0
  38. {django_bom-1.245 → django_bom-1.248}/bom/migrations/0016_auto_20190405_2308.py +0 -0
  39. {django_bom-1.245 → django_bom-1.248}/bom/migrations/0017_auto_20190616_1912.py +0 -0
  40. {django_bom-1.245 → django_bom-1.248}/bom/migrations/0018_auto_20190616_2143.py +0 -0
  41. {django_bom-1.245 → django_bom-1.248}/bom/migrations/0019_auto_20190624_1246.py +0 -0
  42. {django_bom-1.245 → django_bom-1.248}/bom/migrations/0020_auto_20190627_0207.py +0 -0
  43. {django_bom-1.245 → django_bom-1.248}/bom/migrations/0021_auto_20190627_0428.py +0 -0
  44. {django_bom-1.245 → django_bom-1.248}/bom/migrations/0022_auto_20190811_2140.py +0 -0
  45. {django_bom-1.245 → django_bom-1.248}/bom/migrations/0023_auto_20191205_2351.py +0 -0
  46. {django_bom-1.245 → django_bom-1.248}/bom/migrations/0024_auto_20191214_1342.py +0 -0
  47. {django_bom-1.245 → django_bom-1.248}/bom/migrations/0025_auto_20191221_1907.py +0 -0
  48. {django_bom-1.245 → django_bom-1.248}/bom/migrations/0026_auto_20191222_2258.py +0 -0
  49. {django_bom-1.245 → django_bom-1.248}/bom/migrations/0027_auto_20191222_2347.py +0 -0
  50. {django_bom-1.245 → django_bom-1.248}/bom/migrations/0028_partrevision_displayable_synopsis.py +0 -0
  51. {django_bom-1.245 → django_bom-1.248}/bom/migrations/0029_auto_20191231_1630.py +0 -0
  52. {django_bom-1.245 → django_bom-1.248}/bom/migrations/0030_auto_20200101_2253.py +0 -0
  53. {django_bom-1.245 → django_bom-1.248}/bom/migrations/0031_auto_20200104_1352.py +0 -0
  54. {django_bom-1.245 → django_bom-1.248}/bom/migrations/0032_auto_20200126_1806.py +0 -0
  55. {django_bom-1.245 → django_bom-1.248}/bom/migrations/0033_auto_20200203_0618.py +0 -0
  56. {django_bom-1.245 → django_bom-1.248}/bom/migrations/0034_auto_20200222_0359.py +0 -0
  57. {django_bom-1.245 → django_bom-1.248}/bom/migrations/0035_auto_20200303_0111.py +0 -0
  58. {django_bom-1.245 → django_bom-1.248}/bom/migrations/0036_auto_20200303_0538.py +0 -0
  59. {django_bom-1.245 → django_bom-1.248}/bom/migrations/0037_auto_20200405_1642.py +0 -0
  60. {django_bom-1.245 → django_bom-1.248}/bom/migrations/0038_auto_20200422_0504.py +0 -0
  61. {django_bom-1.245 → django_bom-1.248}/bom/migrations/0039_auto_20200929_2315.py +0 -0
  62. {django_bom-1.245 → django_bom-1.248}/bom/migrations/0040_alter_organization_currency.py +0 -0
  63. {django_bom-1.245 → django_bom-1.248}/bom/migrations/0041_organization_subscription_quantity.py +0 -0
  64. {django_bom-1.245 → django_bom-1.248}/bom/migrations/0042_auto_20210720_2137.py +0 -0
  65. {django_bom-1.245 → django_bom-1.248}/bom/migrations/0043_auto_20211123_0157.py +0 -0
  66. {django_bom-1.245 → django_bom-1.248}/bom/migrations/0044_auto_20220831_1241.py +0 -0
  67. {django_bom-1.245 → django_bom-1.248}/bom/migrations/0045_sellerpart_link.py +0 -0
  68. {django_bom-1.245 → django_bom-1.248}/bom/migrations/0046_alter_sellerpart_unique_together.py +0 -0
  69. {django_bom-1.245 → django_bom-1.248}/bom/migrations/0047_sellerpart_seller_part_number.py +0 -0
  70. {django_bom-1.245 → django_bom-1.248}/bom/migrations/0048_rename_part_organization_number_class_bom_part_organiz_b333d6_idx_and_more.py +0 -0
  71. {django_bom-1.245 → django_bom-1.248}/bom/migrations/0049_alter_assembly_id_alter_assemblysubparts_id_and_more.py +0 -0
  72. {django_bom-1.245 → django_bom-1.248}/bom/migrations/0050_alter_organization_options.py +0 -0
  73. {django_bom-1.245 → django_bom-1.248}/bom/migrations/__init__.py +0 -0
  74. {django_bom-1.245 → django_bom-1.248}/bom/models.py +0 -0
  75. {django_bom-1.245 → django_bom-1.248}/bom/part_bom.py +0 -0
  76. {django_bom-1.245 → django_bom-1.248}/bom/settings.py +0 -0
  77. {django_bom-1.245 → django_bom-1.248}/bom/static/bom/css/dashboard.css +0 -0
  78. {django_bom-1.245 → django_bom-1.248}/bom/static/bom/css/jquery.treetable.css +0 -0
  79. {django_bom-1.245 → django_bom-1.248}/bom/static/bom/css/materialize.min.css +0 -0
  80. {django_bom-1.245 → django_bom-1.248}/bom/static/bom/css/part-info.css +0 -0
  81. {django_bom-1.245 → django_bom-1.248}/bom/static/bom/css/style.css +0 -0
  82. {django_bom-1.245 → django_bom-1.248}/bom/static/bom/css/tablesorter-theme.materialize.css +0 -0
  83. {django_bom-1.245 → django_bom-1.248}/bom/static/bom/css/treetable-theme.css +0 -0
  84. {django_bom-1.245 → django_bom-1.248}/bom/static/bom/doc/sample_part_classes.csv +0 -0
  85. {django_bom-1.245 → django_bom-1.248}/bom/static/bom/doc/test_bom.csv +0 -0
  86. {django_bom-1.245 → django_bom-1.248}/bom/static/bom/doc/test_bom_5_intelligent.csv +0 -0
  87. {django_bom-1.245 → django_bom-1.248}/bom/static/bom/doc/test_full_bom.csv +0 -0
  88. {django_bom-1.245 → django_bom-1.248}/bom/static/bom/doc/test_new_parts.csv +0 -0
  89. {django_bom-1.245 → django_bom-1.248}/bom/static/bom/doc/test_new_parts_5_intelligent.csv +0 -0
  90. {django_bom-1.245 → django_bom-1.248}/bom/static/bom/img/_ionicons_svg_md-arrow-dropdown.svg +0 -0
  91. {django_bom-1.245 → django_bom-1.248}/bom/static/bom/img/_ionicons_svg_md-arrow-dropright.svg +0 -0
  92. {django_bom-1.245 → django_bom-1.248}/bom/static/bom/img/favicon.ico +0 -0
  93. {django_bom-1.245 → django_bom-1.248}/bom/static/bom/img/google/web/1x/btn_google_signin_dark_disabled_web.png +0 -0
  94. {django_bom-1.245 → django_bom-1.248}/bom/static/bom/img/google/web/1x/btn_google_signin_dark_focus_web.png +0 -0
  95. {django_bom-1.245 → django_bom-1.248}/bom/static/bom/img/google/web/1x/btn_google_signin_dark_normal_web.png +0 -0
  96. {django_bom-1.245 → django_bom-1.248}/bom/static/bom/img/google/web/1x/btn_google_signin_dark_pressed_web.png +0 -0
  97. {django_bom-1.245 → django_bom-1.248}/bom/static/bom/img/google/web/1x/btn_google_signin_light_disabled_web.png +0 -0
  98. {django_bom-1.245 → django_bom-1.248}/bom/static/bom/img/google/web/1x/btn_google_signin_light_focus_web.png +0 -0
  99. {django_bom-1.245 → django_bom-1.248}/bom/static/bom/img/google/web/1x/btn_google_signin_light_normal_web.png +0 -0
  100. {django_bom-1.245 → django_bom-1.248}/bom/static/bom/img/google/web/1x/btn_google_signin_light_pressed_web.png +0 -0
  101. {django_bom-1.245 → django_bom-1.248}/bom/static/bom/img/google/web/2x/btn_google_signin_dark_disabled_web@2x.png +0 -0
  102. {django_bom-1.245 → django_bom-1.248}/bom/static/bom/img/google/web/2x/btn_google_signin_dark_focus_web@2x.png +0 -0
  103. {django_bom-1.245 → django_bom-1.248}/bom/static/bom/img/google/web/2x/btn_google_signin_dark_normal_web@2x.png +0 -0
  104. {django_bom-1.245 → django_bom-1.248}/bom/static/bom/img/google/web/2x/btn_google_signin_dark_pressed_web@2x.png +0 -0
  105. {django_bom-1.245 → django_bom-1.248}/bom/static/bom/img/google/web/2x/btn_google_signin_light_disabled_web@2x.png +0 -0
  106. {django_bom-1.245 → django_bom-1.248}/bom/static/bom/img/google/web/2x/btn_google_signin_light_focus_web@2x.png +0 -0
  107. {django_bom-1.245 → django_bom-1.248}/bom/static/bom/img/google/web/2x/btn_google_signin_light_normal_web@2x.png +0 -0
  108. {django_bom-1.245 → django_bom-1.248}/bom/static/bom/img/google/web/2x/btn_google_signin_light_pressed_web@2x.png +0 -0
  109. {django_bom-1.245 → django_bom-1.248}/bom/static/bom/img/google/web/vector/btn_google_dark_disabled_ios.eps +0 -0
  110. {django_bom-1.245 → django_bom-1.248}/bom/static/bom/img/google/web/vector/btn_google_dark_disabled_ios.svg +0 -0
  111. {django_bom-1.245 → django_bom-1.248}/bom/static/bom/img/google/web/vector/btn_google_dark_focus_ios.eps +0 -0
  112. {django_bom-1.245 → django_bom-1.248}/bom/static/bom/img/google/web/vector/btn_google_dark_focus_ios.svg +0 -0
  113. {django_bom-1.245 → django_bom-1.248}/bom/static/bom/img/google/web/vector/btn_google_dark_normal_ios.eps +0 -0
  114. {django_bom-1.245 → django_bom-1.248}/bom/static/bom/img/google/web/vector/btn_google_dark_normal_ios.svg +0 -0
  115. {django_bom-1.245 → django_bom-1.248}/bom/static/bom/img/google/web/vector/btn_google_dark_pressed_ios.eps +0 -0
  116. {django_bom-1.245 → django_bom-1.248}/bom/static/bom/img/google/web/vector/btn_google_dark_pressed_ios.svg +0 -0
  117. {django_bom-1.245 → django_bom-1.248}/bom/static/bom/img/google/web/vector/btn_google_light_disabled_ios.eps +0 -0
  118. {django_bom-1.245 → django_bom-1.248}/bom/static/bom/img/google/web/vector/btn_google_light_disabled_ios.svg +0 -0
  119. {django_bom-1.245 → django_bom-1.248}/bom/static/bom/img/google/web/vector/btn_google_light_focus_ios.eps +0 -0
  120. {django_bom-1.245 → django_bom-1.248}/bom/static/bom/img/google/web/vector/btn_google_light_focus_ios.svg +0 -0
  121. {django_bom-1.245 → django_bom-1.248}/bom/static/bom/img/google/web/vector/btn_google_light_normal_ios.eps +0 -0
  122. {django_bom-1.245 → django_bom-1.248}/bom/static/bom/img/google/web/vector/btn_google_light_normal_ios.svg +0 -0
  123. {django_bom-1.245 → django_bom-1.248}/bom/static/bom/img/google/web/vector/btn_google_light_pressed_ios.eps +0 -0
  124. {django_bom-1.245 → django_bom-1.248}/bom/static/bom/img/google/web/vector/btn_google_light_pressed_ios.svg +0 -0
  125. {django_bom-1.245 → django_bom-1.248}/bom/static/bom/img/google_drive_logo.svg +0 -0
  126. {django_bom-1.245 → django_bom-1.248}/bom/static/bom/img/indabom.png +0 -0
  127. {django_bom-1.245 → django_bom-1.248}/bom/static/bom/img/mouser.png +0 -0
  128. {django_bom-1.245 → django_bom-1.248}/bom/static/bom/img/octopart_blue.svg +0 -0
  129. {django_bom-1.245 → django_bom-1.248}/bom/static/bom/js/jquery-3.4.1.min.js +0 -0
  130. {django_bom-1.245 → django_bom-1.248}/bom/static/bom/js/jquery.ba-floatingscrollbar.min.js +0 -0
  131. {django_bom-1.245 → django_bom-1.248}/bom/static/bom/js/jquery.treetable.js +0 -0
  132. {django_bom-1.245 → django_bom-1.248}/bom/static/bom/js/materialize.min.js +0 -0
  133. {django_bom-1.245 → django_bom-1.248}/bom/templates/bom/account-delete.html +0 -0
  134. {django_bom-1.245 → django_bom-1.248}/bom/templates/bom/add-manufacturer-part.html +0 -0
  135. {django_bom-1.245 → django_bom-1.248}/bom/templates/bom/add-sellerpart.html +0 -0
  136. {django_bom-1.245 → django_bom-1.248}/bom/templates/bom/base-menu.html +0 -0
  137. {django_bom-1.245 → django_bom-1.248}/bom/templates/bom/base.html +0 -0
  138. {django_bom-1.245 → django_bom-1.248}/bom/templates/bom/bom-action-btn.html +0 -0
  139. {django_bom-1.245 → django_bom-1.248}/bom/templates/bom/bom-action-table.html +0 -0
  140. {django_bom-1.245 → django_bom-1.248}/bom/templates/bom/bom-base-menu.html +0 -0
  141. {django_bom-1.245 → django_bom-1.248}/bom/templates/bom/bom-base.html +0 -0
  142. {django_bom-1.245 → django_bom-1.248}/bom/templates/bom/bom-form-modal.html +0 -0
  143. {django_bom-1.245 → django_bom-1.248}/bom/templates/bom/bom-form.html +0 -0
  144. {django_bom-1.245 → django_bom-1.248}/bom/templates/bom/bom-modal-add-users.html +0 -0
  145. {django_bom-1.245 → django_bom-1.248}/bom/templates/bom/bom-signup.html +0 -0
  146. {django_bom-1.245 → django_bom-1.248}/bom/templates/bom/components/bom-flat.html +0 -0
  147. {django_bom-1.245 → django_bom-1.248}/bom/templates/bom/components/bom-indented.html +0 -0
  148. {django_bom-1.245 → django_bom-1.248}/bom/templates/bom/components/manufacturer-part-list.html +0 -0
  149. {django_bom-1.245 → django_bom-1.248}/bom/templates/bom/components/seller-part-list.html +0 -0
  150. {django_bom-1.245 → django_bom-1.248}/bom/templates/bom/create-part.html +0 -0
  151. {django_bom-1.245 → django_bom-1.248}/bom/templates/bom/dashboard-menu.html +0 -0
  152. {django_bom-1.245 → django_bom-1.248}/bom/templates/bom/dashboard.html +0 -0
  153. {django_bom-1.245 → django_bom-1.248}/bom/templates/bom/edit-manufacturer-part.html +0 -0
  154. {django_bom-1.245 → django_bom-1.248}/bom/templates/bom/edit-part-class.html +0 -0
  155. {django_bom-1.245 → django_bom-1.248}/bom/templates/bom/edit-part.html +0 -0
  156. {django_bom-1.245 → django_bom-1.248}/bom/templates/bom/edit-user-meta.html +0 -0
  157. {django_bom-1.245 → django_bom-1.248}/bom/templates/bom/help.html +0 -0
  158. {django_bom-1.245 → django_bom-1.248}/bom/templates/bom/manufacturer-info.html +0 -0
  159. {django_bom-1.245 → django_bom-1.248}/bom/templates/bom/manufacturers.html +0 -0
  160. {django_bom-1.245 → django_bom-1.248}/bom/templates/bom/nothing-to-see.html +0 -0
  161. {django_bom-1.245 → django_bom-1.248}/bom/templates/bom/part-info.html +0 -0
  162. {django_bom-1.245 → django_bom-1.248}/bom/templates/bom/part-revision-display.html +0 -0
  163. {django_bom-1.245 → django_bom-1.248}/bom/templates/bom/part-revision-edit.html +0 -0
  164. {django_bom-1.245 → django_bom-1.248}/bom/templates/bom/part-revision-manage-bom.html +0 -0
  165. {django_bom-1.245 → django_bom-1.248}/bom/templates/bom/part-revision-new.html +0 -0
  166. {django_bom-1.245 → django_bom-1.248}/bom/templates/bom/part-revision-release.html +0 -0
  167. {django_bom-1.245 → django_bom-1.248}/bom/templates/bom/search-help.html +0 -0
  168. {django_bom-1.245 → django_bom-1.248}/bom/templates/bom/seller-info.html +0 -0
  169. {django_bom-1.245 → django_bom-1.248}/bom/templates/bom/sellers.html +0 -0
  170. {django_bom-1.245 → django_bom-1.248}/bom/templates/bom/signup.html +0 -0
  171. {django_bom-1.245 → django_bom-1.248}/bom/templates/bom/subscription_panel.html +0 -0
  172. {django_bom-1.245 → django_bom-1.248}/bom/templates/bom/table_of_contents.html +0 -0
  173. {django_bom-1.245 → django_bom-1.248}/bom/templates/bom/upload-bom.html +0 -0
  174. {django_bom-1.245 → django_bom-1.248}/bom/templates/bom/upload-parts-help.html +0 -0
  175. {django_bom-1.245 → django_bom-1.248}/bom/templates/bom/upload-parts.html +0 -0
  176. {django_bom-1.245 → django_bom-1.248}/bom/templates/registration/login.html +0 -0
  177. {django_bom-1.245 → django_bom-1.248}/bom/tests.py +0 -0
  178. {django_bom-1.245 → django_bom-1.248}/bom/third_party_apis/__init__.py +0 -0
  179. {django_bom-1.245 → django_bom-1.248}/bom/third_party_apis/base_api.py +0 -0
  180. {django_bom-1.245 → django_bom-1.248}/bom/third_party_apis/google_drive.py +0 -0
  181. {django_bom-1.245 → django_bom-1.248}/bom/third_party_apis/mouser.py +0 -0
  182. {django_bom-1.245 → django_bom-1.248}/bom/third_party_apis/test_apis.py +0 -0
  183. {django_bom-1.245 → django_bom-1.248}/bom/urls.py +0 -0
  184. {django_bom-1.245 → django_bom-1.248}/bom/utils.py +0 -0
  185. {django_bom-1.245 → django_bom-1.248}/bom/validators.py +0 -0
  186. {django_bom-1.245 → django_bom-1.248}/bom/views/__init__.py +0 -0
  187. {django_bom-1.245 → django_bom-1.248}/bom/views/json_views.py +0 -0
  188. {django_bom-1.245 → django_bom-1.248}/bom/wsgi.py +0 -0
  189. {django_bom-1.245 → django_bom-1.248}/django_bom.egg-info/SOURCES.txt +0 -0
  190. {django_bom-1.245 → django_bom-1.248}/django_bom.egg-info/dependency_links.txt +0 -0
  191. {django_bom-1.245 → django_bom-1.248}/django_bom.egg-info/requires.txt +0 -0
  192. {django_bom-1.245 → django_bom-1.248}/django_bom.egg-info/top_level.txt +0 -0
  193. {django_bom-1.245 → django_bom-1.248}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: django-bom
3
- Version: 1.245
3
+ Version: 1.248
4
4
  Summary: A simple Django app to manage a bill of materials.
5
5
  Author-email: Mike Kasparian <mpkasp@gmail.com>
6
6
  License: GPL-3.0-only
@@ -40,9 +40,12 @@
40
40
 
41
41
  <div id="join-organization" style="display: none;">
42
42
  <h3 class="center">Join an existing Organization</h3>
43
- <h5 class="center" style="padding-top: 36px;">To join an existing organization, you must provide the e-mail address you signed up with to your IndaBOM organization owner. <br><br>Your e-mail address is {{ user.email }}, click
44
- <a href="mailto:?subject=Add me to your IndaBOM Organization&body=Hi,%0D%0A%0D%0APlease add me to your IndaBOM organization. To do so, log in, go to Settings > Organization and add me via my e-mail address {{ user.email }}">here</a>
45
- to send an email.</h5>
43
+ <h5 class="center" style="padding-top: 36px;">To join an existing organization, you must provide your
44
+ username (not e-mail) to your IndaBOM organization owner. <br><br>Your username is
45
+ <b>{{ user.username }}</b>
46
+ click
47
+ <a href="mailto:?subject=Add me to your IndaBOM Organization&body=Hi,%0D%0A%0D%0APlease add me to your IndaBOM organization. To do so, log in, go to Settings > Organization and add me via my username {{ user.username }}">here</a>
48
+ to send an e-mail to your organization owner with instructions.</h5>
46
49
  <br><br>
47
50
  <p class="center">Oops! I meant to <a class="modal-trigger" onclick="resetView()">create a new organization</a>.</p>
48
51
  </div>
@@ -7,7 +7,7 @@
7
7
 
8
8
  {% block content %}
9
9
  <div class="row container-app">
10
- <div class="col s8 offset-s2">
10
+ <div class="col s12 l8 offset-l2">
11
11
  <ul id="tabs" class="tabs tabs-fixed-width">
12
12
  <li class="tab"><a id="user-tab" href="#user">User</a></li>
13
13
  <li class="tab"><a id="indabom-tab" href="#indabom">IndaBOM</a></li>
@@ -400,7 +400,9 @@ def bom_settings(request, tab_anchor=None):
400
400
  added_user_profile = user_add_form.save()
401
401
  messages.info(request, f"Added {added_user_profile.user.first_name} {added_user_profile.user.last_name} to your organization.")
402
402
  else:
403
- messages.error(request, user_add_form.errors)
403
+ for field, errors in user_add_form.errors.items():
404
+ for error in errors:
405
+ messages.error(request, f"{field.capitalize()}: {error}")
404
406
 
405
407
  elif 'clear-add-user' in request.POST:
406
408
  tab_anchor = ORGANIZATION_TAB
@@ -521,6 +523,8 @@ def bom_settings(request, tab_anchor=None):
521
523
  profile.save()
522
524
  if users_in_organization == 0:
523
525
  organization.delete()
526
+ else:
527
+ messages.warning(request, "No action was taken because no form field was submitted.")
524
528
 
525
529
  user_form = UserForm(instance=user)
526
530
  user_add_form = UserAddForm()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: django-bom
3
- Version: 1.245
3
+ Version: 1.248
4
4
  Summary: A simple Django app to manage a bill of materials.
5
5
  Author-email: Mike Kasparian <mpkasp@gmail.com>
6
6
  License: GPL-3.0-only
@@ -7,7 +7,7 @@ build-backend = "setuptools.build_meta"
7
7
 
8
8
  [project]
9
9
  name = "django-bom"
10
- version = "1.245"
10
+ version = "1.248"
11
11
  description = "A simple Django app to manage a bill of materials."
12
12
  readme = {file = "README.md", content-type = "text/markdown"}
13
13
  requires-python = ">=3.10"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes