irie 0.0.35__tar.gz → 0.0.37__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.

Potentially problematic release.


This version of irie might be problematic. Click here for more details.

Files changed (483) hide show
  1. {irie-0.0.35 → irie-0.0.37}/PKG-INFO +1 -1
  2. {irie-0.0.35 → irie-0.0.37}/pyproject.toml +1 -1
  3. irie-0.0.37/src/irie/apps/context_processors.py +13 -0
  4. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/inventory/admin.py +4 -1
  5. irie-0.0.37/src/irie/apps/inventory/forms.py +41 -0
  6. irie-0.0.37/src/irie/apps/inventory/migrations/0004_datum_sensorgroup_sensor.py +43 -0
  7. irie-0.0.37/src/irie/apps/inventory/migrations/0005_alter_sensor_group.py +19 -0
  8. irie-0.0.37/src/irie/apps/inventory/migrations/0006_datum_asset_datum_locate_x_datum_locate_y_and_more.py +56 -0
  9. irie-0.0.37/src/irie/apps/inventory/migrations/0007_sensor_name.py +19 -0
  10. irie-0.0.37/src/irie/apps/inventory/migrations/0008_alter_sensor_dx_alter_sensor_dy_alter_sensor_dz_and_more.py +43 -0
  11. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/inventory/models.py +47 -17
  12. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/inventory/urls.py +4 -2
  13. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/inventory/views.py +55 -2
  14. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/includes/sidebar.html +29 -10
  15. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/inventory/asset-event-summary.html +17 -7
  16. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/inventory/asset-profile.html +10 -2
  17. irie-0.0.37/src/irie/apps/templates/inventory/asset-sensors.html +69 -0
  18. irie-0.0.37/src/irie/apps/templates/inventory/sensor-upload.html +452 -0
  19. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/layouts/base-fullscreen.html +3 -4
  20. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/site/index.html +2 -2
  21. {irie-0.0.35 → irie-0.0.37}/src/irie/core/settings.py +1 -0
  22. irie-0.0.37/src/irie/init/data/nbi_definitions.json +1 -0
  23. {irie-0.0.35 → irie-0.0.37}/src/irie/init/getNBIData.py +12 -0
  24. {irie-0.0.35 → irie-0.0.37}/src/irie/init/management/commands/init_assets.py +11 -7
  25. {irie-0.0.35 → irie-0.0.37}/src/irie/init/management/commands/init_cesmd.py +11 -8
  26. {irie-0.0.35 → irie-0.0.37}/src/irie.egg-info/PKG-INFO +1 -1
  27. {irie-0.0.35 → irie-0.0.37}/src/irie.egg-info/SOURCES.txt +8 -0
  28. irie-0.0.35/src/irie/apps/context_processors.py +0 -5
  29. irie-0.0.35/src/irie/apps/inventory/forms.py +0 -12
  30. {irie-0.0.35 → irie-0.0.37}/README.md +0 -0
  31. {irie-0.0.35 → irie-0.0.37}/setup.cfg +0 -0
  32. {irie-0.0.35 → irie-0.0.37}/src/irie/__init__.py +0 -0
  33. {irie-0.0.35 → irie-0.0.37}/src/irie/__main__.py +0 -0
  34. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/__init__.py +0 -0
  35. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/admin_dash/__init__.py +0 -0
  36. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/admin_dash/admin.py +0 -0
  37. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/admin_dash/apps.py +0 -0
  38. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/admin_dash/forms.py +0 -0
  39. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/admin_dash/models.py +0 -0
  40. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/admin_dash/templatetags/__init__.py +0 -0
  41. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/admin_dash/templatetags/admin_material.py +0 -0
  42. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/admin_dash/templatetags/replace_value.py +0 -0
  43. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/admin_dash/urls.py +0 -0
  44. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/admin_dash/utils.py +0 -0
  45. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/admin_dash/views.py +0 -0
  46. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/authentication/__init__.py +0 -0
  47. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/authentication/admin.py +0 -0
  48. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/authentication/config.py +0 -0
  49. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/authentication/forms.py +0 -0
  50. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/authentication/migrations/__init__.py +0 -0
  51. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/authentication/models.py +0 -0
  52. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/authentication/tests.py +0 -0
  53. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/authentication/urls.py +0 -0
  54. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/authentication/views.py +0 -0
  55. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/config.py +0 -0
  56. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/documents/__init__.py +0 -0
  57. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/documents/apps.py +0 -0
  58. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/documents/documents.py +0 -0
  59. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/documents/migrations/__init__.py +0 -0
  60. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/documents/tests.py +0 -0
  61. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/documents/urls.py +0 -0
  62. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/documents/views.py +0 -0
  63. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/evaluation/__init__.py +0 -0
  64. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/evaluation/admin.py +0 -0
  65. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/evaluation/apps.py +0 -0
  66. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/evaluation/daemon.py +0 -0
  67. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/evaluation/identification.py +0 -0
  68. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/evaluation/migrations/0001_initial.py +0 -0
  69. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/evaluation/migrations/0002_evaluation_status.py +0 -0
  70. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/evaluation/migrations/__init__.py +0 -0
  71. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/evaluation/models.py +0 -0
  72. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/evaluation/urls.py +0 -0
  73. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/evaluation/views.py +0 -0
  74. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/events/__init__.py +0 -0
  75. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/events/admin.py +0 -0
  76. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/events/apps.py +0 -0
  77. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/events/migrations/0001_initial.py +0 -0
  78. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/events/migrations/0002_rename_event_eventrecord.py +0 -0
  79. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/events/migrations/0003_hazardevent.py +0 -0
  80. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/events/migrations/__init__.py +0 -0
  81. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/events/models.py +0 -0
  82. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/events/tests.py +0 -0
  83. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/events/tests_events.py +0 -0
  84. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/events/urls.py +0 -0
  85. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/events/views.py +0 -0
  86. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/events/views_events.py +0 -0
  87. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/inventory/CESMD.py +0 -0
  88. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/inventory/__init__.py +0 -0
  89. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/inventory/apps.py +0 -0
  90. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/inventory/archive/arcGIS.py +0 -0
  91. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/inventory/calid.py +0 -0
  92. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/inventory/fields.py +0 -0
  93. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/inventory/filters.py +0 -0
  94. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/inventory/migrations/0001_initial.py +0 -0
  95. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/inventory/migrations/0002_alter_asset_bridge_sensors_and_more.py +0 -0
  96. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/inventory/migrations/0003_asset_notes.py +0 -0
  97. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/inventory/migrations/__init__.py +0 -0
  98. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/inventory/sitemaps.py +0 -0
  99. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/inventory/tables.py +0 -0
  100. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/inventory/templatetags/__init__.py +0 -0
  101. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/inventory/templatetags/get.py +0 -0
  102. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/inventory/templatetags/nbi.py +0 -0
  103. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/inventory/traffic.py +0 -0
  104. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/management/__init__.py +0 -0
  105. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/management/commands/__init__.py +0 -0
  106. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/networks/__init__.py +0 -0
  107. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/networks/apps.py +0 -0
  108. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/networks/forms.py +0 -0
  109. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/networks/migrations/__init__.py +0 -0
  110. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/networks/models.py +0 -0
  111. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/networks/networks.py +0 -0
  112. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/networks/tests.py +0 -0
  113. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/networks/urls.py +0 -0
  114. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/networks/views.py +0 -0
  115. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/prediction/__init__.py +0 -0
  116. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/prediction/admin.py +0 -0
  117. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/prediction/apps.py +0 -0
  118. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/prediction/forms.py +0 -0
  119. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/prediction/metrics.py +0 -0
  120. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/prediction/migrations/0001_initial.py +0 -0
  121. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/prediction/migrations/0002_alter_predictormodel_protocol.py +0 -0
  122. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/prediction/migrations/0003_alter_predictormodel_protocol.py +0 -0
  123. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/prediction/migrations/__init__.py +0 -0
  124. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/prediction/models.py +0 -0
  125. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/prediction/predictor.py +0 -0
  126. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/prediction/runners/__init__.py +0 -0
  127. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/prediction/runners/hazus.py +0 -0
  128. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/prediction/runners/opensees/__init__.py +0 -0
  129. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/prediction/runners/opensees/metrics.py +0 -0
  130. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/prediction/runners/opensees/schemas/__init__.py +0 -0
  131. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/prediction/runners/opensees/schemas/hwd_analysis.schema.json +0 -0
  132. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/prediction/runners/opensees/schemas/hwd_analysis_default.json +0 -0
  133. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/prediction/runners/opensees/schemas/hwd_conf.schema.json +0 -0
  134. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/prediction/runners/opensees/schemas/hwd_conf_default.json +0 -0
  135. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/prediction/runners/opensees/schemas/hwd_results.schema.json +0 -0
  136. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/prediction/runners/opensees/schemas/hwd_results_default.json +0 -0
  137. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/prediction/runners/opensees/utilities.py +0 -0
  138. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/prediction/runners/opensees/xmlutils.py +0 -0
  139. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/prediction/runners/opensees/zipped.py +0 -0
  140. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/prediction/runners/ssid.py +0 -0
  141. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/prediction/templatetags/__init__.py +0 -0
  142. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/prediction/templatetags/predictor.py +0 -0
  143. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/prediction/urls.py +0 -0
  144. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/prediction/views.py +0 -0
  145. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/prediction/views_api.py +0 -0
  146. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/site/__init__.py +0 -0
  147. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/site/admin.py +0 -0
  148. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/site/config.py +0 -0
  149. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/site/migrations/__init__.py +0 -0
  150. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/site/models.py +0 -0
  151. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/site/templatetags/__init__.py +0 -0
  152. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/site/templatetags/indexing.py +0 -0
  153. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/site/tests.py +0 -0
  154. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/site/urls.py +0 -0
  155. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/site/view_sdof.py +0 -0
  156. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/site/view_utils.py +0 -0
  157. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/site/views.py +0 -0
  158. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/sitemaps.py +0 -0
  159. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/content_images/brace/mdof.svg +0 -0
  160. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/content_images/brace/opensees.jpg +0 -0
  161. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/content_images/brace/sdof.svg +0 -0
  162. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/content_images/brace/sees.png +0 -0
  163. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/css/brace.css +0 -0
  164. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/css/brace.css.map +0 -0
  165. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/css/brace.min.css +0 -0
  166. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/css/uPlot.min.css +0 -0
  167. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/img/brace2-no_text.png +0 -0
  168. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/img/brand/dark.svg +0 -0
  169. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/img/brand/light.svg +0 -0
  170. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/img/colStrains.svg +0 -0
  171. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/img/colStrains_big.png +0 -0
  172. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/img/colStrains_small.png +0 -0
  173. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/img/colStrains_svg_optimizer.svg +0 -0
  174. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/img/colStrains_svg_optimizer.xml +0 -0
  175. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/img/drift.svg +0 -0
  176. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/img/earthquake-hazard.png +0 -0
  177. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/img/favicon/android-chrome-192x192.png +0 -0
  178. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/img/favicon/android-chrome-512x512.png +0 -0
  179. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/img/favicon/apple-touch-icon.png +0 -0
  180. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/img/favicon/browserconfig.xml +0 -0
  181. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/img/favicon/favicon-16x16.png +0 -0
  182. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/img/favicon/favicon-32x32.png +0 -0
  183. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/img/favicon/favicon.ico +0 -0
  184. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/img/favicon/manifest.json +0 -0
  185. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/img/favicon/mstile-150x150.png +0 -0
  186. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/img/favicon/safari-pinned-tab.svg +0 -0
  187. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/img/favicon/site.webmanifest +0 -0
  188. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/img/icons/github.svg +0 -0
  189. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/img/icons/google-tag-manager.svg +0 -0
  190. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/img/icons/google_analytics.svg +0 -0
  191. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/img/illustrations/404.svg +0 -0
  192. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/img/illustrations/500.svg +0 -0
  193. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/img/illustrations/bs5-illustrations.svg +0 -0
  194. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/img/illustrations/signin.svg +0 -0
  195. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/img/marker.svg +0 -0
  196. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/img/metric.png +0 -0
  197. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/img/painter.png +0 -0
  198. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/img/paypal-logo.svg +0 -0
  199. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/img/peer-black.svg +0 -0
  200. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/img/peer-light.svg +0 -0
  201. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/img/predictors.png +0 -0
  202. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/img/profile-cover.jpg +0 -0
  203. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/img/soga-logo.jpeg +0 -0
  204. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/img/twin.png +0 -0
  205. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/inventory/ll01336.svg +0 -0
  206. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/inventory/ll01336_1.svg +0 -0
  207. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/inventory/ll13705.svg +0 -0
  208. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/inventory/ll13795.svg +0 -0
  209. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/inventory/ll14406.svg +0 -0
  210. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/inventory/ll23631.svg +0 -0
  211. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/inventory/ll23631_1.svg +0 -0
  212. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/inventory/ll24694.svg +0 -0
  213. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/inventory/ll24704.svg +0 -0
  214. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/inventory/ll24706.svg +0 -0
  215. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/inventory/ll24775.svg +0 -0
  216. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/inventory/ll33742.svg +0 -0
  217. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/inventory/ll47315.svg +0 -0
  218. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/inventory/ll54730.svg +0 -0
  219. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/inventory/ll58600-2.svg +0 -0
  220. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/inventory/ll58600-3.svg +0 -0
  221. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/inventory/ll58600-4.svg +0 -0
  222. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/inventory/ll58600.svg +0 -0
  223. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/inventory/ll58601-2.svg +0 -0
  224. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/inventory/ll58601-3.svg +0 -0
  225. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/inventory/ll58601-4.svg +0 -0
  226. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/inventory/ll58601.svg +0 -0
  227. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/inventory/ll58632-2.svg +0 -0
  228. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/inventory/ll58632-3.svg +0 -0
  229. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/inventory/ll58632-4.svg +0 -0
  230. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/inventory/ll58632-5.svg +0 -0
  231. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/inventory/ll58632-6.svg +0 -0
  232. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/inventory/ll58632-7.svg +0 -0
  233. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/inventory/ll58632-8.svg +0 -0
  234. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/inventory/ll58632.svg +0 -0
  235. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/inventory/ll58658-2.svg +0 -0
  236. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/inventory/ll58658-3.svg +0 -0
  237. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/inventory/ll58658.svg +0 -0
  238. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/inventory/ll58658_1.svg +0 -0
  239. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/inventory/ll58658_2.svg +0 -0
  240. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/inventory/ll58658_3.svg +0 -0
  241. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/inventory/ll58700-1.svg +0 -0
  242. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/inventory/ll58700-3.svg +0 -0
  243. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/inventory/ll58700-4.svg +0 -0
  244. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/inventory/ll58700.svg +0 -0
  245. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/inventory/ll68184.svg +0 -0
  246. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/inventory/ll68185-2.svg +0 -0
  247. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/inventory/ll68185-3.svg +0 -0
  248. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/inventory/ll68185-4.svg +0 -0
  249. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/inventory/ll68185-5.svg +0 -0
  250. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/inventory/ll68185-6.svg +0 -0
  251. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/inventory/ll68185-7.svg +0 -0
  252. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/inventory/ll68185-8.svg +0 -0
  253. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/inventory/ll68185.svg +0 -0
  254. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/inventory/ll68682-2.svg +0 -0
  255. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/inventory/ll68682-3.svg +0 -0
  256. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/inventory/ll68682-4.svg +0 -0
  257. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/inventory/ll68682-5.svg +0 -0
  258. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/inventory/ll68682.svg +0 -0
  259. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/inventory/ll79421.svg +0 -0
  260. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/inventory/ll89324.svg +0 -0
  261. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/inventory/ll89324_2.svg +0 -0
  262. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/inventory/ll89686.svg +0 -0
  263. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/inventory/ll89708-2.svg +0 -0
  264. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/inventory/ll89708.svg +0 -0
  265. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/inventory/ll89735.svg +0 -0
  266. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/inventory/ll89736.svg +0 -0
  267. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/inventory/ll89973.svg +0 -0
  268. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/js/787.545aecf5.chunk.js +0 -0
  269. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/js/brace.js +0 -0
  270. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/js/d3.v4.min.js +0 -0
  271. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/js/events_api.js +0 -0
  272. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/js/events_page.js +0 -0
  273. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/js/fmkFunctions.js +0 -0
  274. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/js/jsonview.bundle.js +0 -0
  275. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/js/login_page.js +0 -0
  276. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/js/main.1c459f17.js +0 -0
  277. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/js/uPlot.iife.min.js +0 -0
  278. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/cjs/popper-base.js +0 -0
  279. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/cjs/popper-base.js.flow +0 -0
  280. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/cjs/popper-lite.js +0 -0
  281. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/cjs/popper-lite.js.flow +0 -0
  282. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/cjs/popper.js +0 -0
  283. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/cjs/popper.js.flow +0 -0
  284. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/createPopper.js +0 -0
  285. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/dom-utils/contains.js +0 -0
  286. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/dom-utils/getBoundingClientRect.js +0 -0
  287. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/dom-utils/getClippingRect.js +0 -0
  288. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/dom-utils/getCompositeRect.js +0 -0
  289. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/dom-utils/getComputedStyle.js +0 -0
  290. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/dom-utils/getDocumentElement.js +0 -0
  291. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/dom-utils/getDocumentRect.js +0 -0
  292. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/dom-utils/getHTMLElementScroll.js +0 -0
  293. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/dom-utils/getLayoutRect.js +0 -0
  294. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/dom-utils/getNodeName.js +0 -0
  295. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/dom-utils/getNodeScroll.js +0 -0
  296. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/dom-utils/getOffsetParent.js +0 -0
  297. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/dom-utils/getParentNode.js +0 -0
  298. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/dom-utils/getScrollParent.js +0 -0
  299. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/dom-utils/getViewportRect.js +0 -0
  300. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/dom-utils/getWindow.js +0 -0
  301. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/dom-utils/getWindowScroll.js +0 -0
  302. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/dom-utils/getWindowScrollBarX.js +0 -0
  303. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/dom-utils/instanceOf.js +0 -0
  304. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/dom-utils/isScrollParent.js +0 -0
  305. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/dom-utils/isTableElement.js +0 -0
  306. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/dom-utils/listScrollParents.js +0 -0
  307. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/enums.js +0 -0
  308. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/index.js +0 -0
  309. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/modifiers/applyStyles.js +0 -0
  310. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/modifiers/arrow.js +0 -0
  311. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/modifiers/computeStyles.js +0 -0
  312. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/modifiers/eventListeners.js +0 -0
  313. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/modifiers/flip.js +0 -0
  314. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/modifiers/hide.js +0 -0
  315. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/modifiers/index.js +0 -0
  316. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/modifiers/offset.js +0 -0
  317. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/modifiers/popperOffsets.js +0 -0
  318. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/modifiers/preventOverflow.js +0 -0
  319. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/popper-base.js +0 -0
  320. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/popper-lite.js +0 -0
  321. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/popper.js +0 -0
  322. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/types.js +0 -0
  323. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/utils/computeAutoPlacement.js +0 -0
  324. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/utils/computeOffsets.js +0 -0
  325. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/utils/debounce.js +0 -0
  326. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/utils/detectOverflow.js +0 -0
  327. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/utils/expandToHashMap.js +0 -0
  328. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/utils/format.js +0 -0
  329. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/utils/getAltAxis.js +0 -0
  330. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/utils/getAltLen.js +0 -0
  331. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/utils/getBasePlacement.js +0 -0
  332. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/utils/getFreshSideObject.js +0 -0
  333. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/utils/getMainAxisFromPlacement.js +0 -0
  334. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/utils/getOppositePlacement.js +0 -0
  335. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/utils/getOppositeVariationPlacement.js +0 -0
  336. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/utils/getVariation.js +0 -0
  337. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/utils/math.js +0 -0
  338. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/utils/mergeByName.js +0 -0
  339. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/utils/mergePaddingObject.js +0 -0
  340. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/utils/orderModifiers.js +0 -0
  341. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/utils/rectToClientRect.js +0 -0
  342. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/utils/uniqueBy.js +0 -0
  343. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/utils/validateModifiers.js +0 -0
  344. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/esm/utils/within.js +0 -0
  345. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/umd/popper-base.min.js +0 -0
  346. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/umd/popper-base.min.js.flow +0 -0
  347. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/umd/popper-lite.min.js +0 -0
  348. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/umd/popper-lite.min.js.flow +0 -0
  349. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/umd/popper.min.js +0 -0
  350. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/@popperjs/core/dist/umd/popper.min.js.flow +0 -0
  351. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/bootstrap/dist/css/bootstrap-grid.min.css +0 -0
  352. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/bootstrap/dist/css/bootstrap-grid.rtl.min.css +0 -0
  353. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/bootstrap/dist/css/bootstrap-reboot.min.css +0 -0
  354. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/bootstrap/dist/css/bootstrap-reboot.rtl.min.css +0 -0
  355. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/bootstrap/dist/css/bootstrap-utilities.min.css +0 -0
  356. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/bootstrap/dist/css/bootstrap-utilities.rtl.min.css +0 -0
  357. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/bootstrap/dist/css/bootstrap.min.css +0 -0
  358. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/bootstrap/dist/css/bootstrap.rtl.min.css +0 -0
  359. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/bootstrap/dist/js/bootstrap.bundle.min.js +0 -0
  360. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/bootstrap/dist/js/bootstrap.esm.min.js +0 -0
  361. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/bootstrap/dist/js/bootstrap.min.js +0 -0
  362. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/chartist-plugin-tooltips/dist/chartist-plugin-tooltip.css +0 -0
  363. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/chartist-plugin-tooltips/dist/chartist-plugin-tooltip.min.js +0 -0
  364. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/notyf/notyf.es.js +0 -0
  365. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/notyf/notyf.min.css +0 -0
  366. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/notyf/notyf.min.js +0 -0
  367. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/notyf/notyf.umd.js +0 -0
  368. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/nouislider/distribute/nouislider.min.css +0 -0
  369. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/nouislider/distribute/nouislider.min.js +0 -0
  370. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/nouislider/distribute/nouislider.min.mjs +0 -0
  371. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/nouislider/distribute/nouislider.mjs +0 -0
  372. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/onscreen/dist/index.js +0 -0
  373. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/onscreen/dist/on-screen.es6.js +0 -0
  374. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/onscreen/dist/on-screen.umd.min.js +0 -0
  375. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/simplebar/dist/simplebar-core.esm.js +0 -0
  376. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/simplebar/dist/simplebar.esm.js +0 -0
  377. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/simplebar/dist/simplebar.min.css +0 -0
  378. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/simplebar/dist/simplebar.min.js +0 -0
  379. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/simplebar/dist/simplebar.umd.js +0 -0
  380. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/smooth-scroll/dist/smooth-scroll.min.js +0 -0
  381. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/smooth-scroll/dist/smooth-scroll.polyfills.min.js +0 -0
  382. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/sweetalert2/dist/sweetalert2.all.min.js +0 -0
  383. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/sweetalert2/dist/sweetalert2.min.css +0 -0
  384. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/sweetalert2/dist/sweetalert2.min.js +0 -0
  385. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/waypoints/lib/jquery.waypoints.min.js +0 -0
  386. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/waypoints/lib/noframework.waypoints.min.js +0 -0
  387. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/waypoints/lib/shortcuts/infinite.min.js +0 -0
  388. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/waypoints/lib/shortcuts/inview.min.js +0 -0
  389. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/waypoints/lib/shortcuts/sticky.min.js +0 -0
  390. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/waypoints/lib/waypoints.debug.js +0 -0
  391. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/waypoints/lib/zepto.waypoints.min.js +0 -0
  392. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/waypoints/licenses.txt +0 -0
  393. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/assets/vendor/waypoints/testem.json +0 -0
  394. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/favicon.ico +0 -0
  395. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/static/sitemap.xml +0 -0
  396. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/accounts/login.html +0 -0
  397. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/accounts/register.html +0 -0
  398. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/admin/base_site.html +0 -0
  399. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/admin/color_theme_toggle.html +0 -0
  400. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/bridges/InteractiveTwin-CE58658.html +0 -0
  401. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/css/admin-extra.css +0 -0
  402. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/documents/documents.html +0 -0
  403. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/events/EarthquakeResponse.html +0 -0
  404. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/events/event-table.html +0 -0
  405. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/events/events.html +0 -0
  406. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/events/login.html +0 -0
  407. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/events/react_and_bootstrap.html +0 -0
  408. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/home/asset.html +0 -0
  409. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/includes/asset-event-table.html +0 -0
  410. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/includes/footer.html +0 -0
  411. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/includes/modal-report.html +0 -0
  412. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/includes/navigation.html +0 -0
  413. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/includes/paginate.js +0 -0
  414. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/includes/scripts.html +0 -0
  415. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/includes/settings-box.html +0 -0
  416. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/inventory/asset-evals.html +0 -0
  417. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/inventory/asset-table.html +0 -0
  418. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/inventory/bridge-dashboard.html +0 -0
  419. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/inventory/bridge.html +0 -0
  420. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/inventory/dashboard.html +0 -0
  421. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/inventory/preamble.tex +0 -0
  422. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/inventory/report.tex +0 -0
  423. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/layouts/base.html +0 -0
  424. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/layouts/json-form.html +0 -0
  425. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/networks/corridor_table.html +0 -0
  426. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/networks/networks.html +0 -0
  427. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/networks/networks.js +0 -0
  428. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/networks/styled_inputs.html +0 -0
  429. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/prediction/asset-predictors.html +0 -0
  430. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/prediction/form-submission.html +0 -0
  431. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/prediction/hazus/event.html +0 -0
  432. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/prediction/hazus/history.html +0 -0
  433. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/prediction/hazus/history.js +0 -0
  434. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/prediction/new-runner.html +0 -0
  435. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/prediction/predictor-profile.html +0 -0
  436. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/prediction/predictor-upload.html +0 -0
  437. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/site/about.html +0 -0
  438. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/site/asset_map.html +0 -0
  439. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/site/components-forms.html +0 -0
  440. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/site/json-form.html +0 -0
  441. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/site/page-403.html +0 -0
  442. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/site/page-404-sidebar.html +0 -0
  443. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/site/page-404.html +0 -0
  444. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/site/page-500.html +0 -0
  445. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/site/page-forgot-password.html +0 -0
  446. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/site/page-lock.html +0 -0
  447. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/site/page-reset-password.html +0 -0
  448. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/site/page-sign-in.html +0 -0
  449. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/site/page-sign-up.html +0 -0
  450. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/site/qr-0001.html +0 -0
  451. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/site/qr-0002.html +0 -0
  452. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/site/qr-0003.html +0 -0
  453. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/site/qr-0004.html +0 -0
  454. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/site/robots.txt +0 -0
  455. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/site/settings.html +0 -0
  456. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/site/tables-bootstrap-tables.html +0 -0
  457. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/site/transactions.html +0 -0
  458. {irie-0.0.35 → irie-0.0.37}/src/irie/apps/templates/site/unused-dashboard-cards.html +0 -0
  459. {irie-0.0.35 → irie-0.0.37}/src/irie/core/__init__.py +0 -0
  460. {irie-0.0.35 → irie-0.0.37}/src/irie/core/asgi.py +0 -0
  461. {irie-0.0.35 → irie-0.0.37}/src/irie/core/urls.py +0 -0
  462. {irie-0.0.35 → irie-0.0.37}/src/irie/core/wsgi.py +0 -0
  463. {irie-0.0.35 → irie-0.0.37}/src/irie/init/__init__.py +0 -0
  464. {irie-0.0.35 → irie-0.0.37}/src/irie/init/__main__.py +0 -0
  465. {irie-0.0.35 → irie-0.0.37}/src/irie/init/bridges.py +0 -0
  466. {irie-0.0.35 → irie-0.0.37}/src/irie/init/calid.py +0 -0
  467. {irie-0.0.35 → irie-0.0.37}/src/irie/init/data/cgs-stations.json +0 -0
  468. {irie-0.0.35 → irie-0.0.37}/src/irie/init/data/cgs_data.json +0 -0
  469. {irie-0.0.35 → irie-0.0.37}/src/irie/init/data/nbi/04.tar +0 -0
  470. {irie-0.0.35 → irie-0.0.37}/src/irie/init/data/nbi_codes-california.json +0 -0
  471. {irie-0.0.35 → irie-0.0.37}/src/irie/init/data/nbi_data-california.json +0 -0
  472. {irie-0.0.35 → irie-0.0.37}/src/irie/init/data/networks/soga_corridors.json +0 -0
  473. {irie-0.0.35 → irie-0.0.37}/src/irie/init/getCGSData.py +0 -0
  474. {irie-0.0.35 → irie-0.0.37}/src/irie/init/getCGSevents.py +0 -0
  475. {irie-0.0.35 → irie-0.0.37}/src/irie/init/hayward.zip +0 -0
  476. {irie-0.0.35 → irie-0.0.37}/src/irie/init/management/commands/init_corridors.py +0 -0
  477. {irie-0.0.35 → irie-0.0.37}/src/irie/init/management/commands/init_predictors.py +0 -0
  478. {irie-0.0.35 → irie-0.0.37}/src/irie/rest/__main__.py +0 -0
  479. {irie-0.0.35 → irie-0.0.37}/src/irie/usgs/__main__.py +0 -0
  480. {irie-0.0.35 → irie-0.0.37}/src/irie.egg-info/dependency_links.txt +0 -0
  481. {irie-0.0.35 → irie-0.0.37}/src/irie.egg-info/entry_points.txt +0 -0
  482. {irie-0.0.35 → irie-0.0.37}/src/irie.egg-info/requires.txt +0 -0
  483. {irie-0.0.35 → irie-0.0.37}/src/irie.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: irie
3
- Version: 0.0.35
3
+ Version: 0.0.37
4
4
  Summary: An infrastructure resilience engine
5
5
  Author-email: "Claudio M. Perez" <50180406+claudioperez@users.noreply.github.com>
6
6
  Project-URL: Repository, https://github.com/STAIRLab
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "irie"
3
- version = "0.0.35"
3
+ version = "0.0.37"
4
4
  authors = [
5
5
  {name="Claudio M. Perez", email="50180406+claudioperez@users.noreply.github.com"}
6
6
  ]
@@ -0,0 +1,13 @@
1
+ from django.conf import settings
2
+
3
+
4
+ def cfg_assets_root(request):
5
+ return {"ASSETS_ROOT": settings.ASSETS_ROOT}
6
+
7
+ def irie_apps(request):
8
+ return {
9
+ 'irie_apps': settings.IRIE_APPS,
10
+ 'irie_app_name': request.resolver_match.app_name,
11
+ 'namespace': request.resolver_match.namespace,
12
+ 'irie_url_name': request.resolver_match.url_name
13
+ }
@@ -4,7 +4,10 @@
4
4
  #
5
5
  #===----------------------------------------------------------------------===#
6
6
  from django.contrib import admin
7
- from .models import Asset, Corridor
7
+ from .models import Asset, Corridor, SensorGroup, Sensor, Datum
8
8
 
9
9
  admin.site.register(Corridor)
10
10
  admin.site.register(Asset)
11
+ admin.site.register(SensorGroup)
12
+ admin.site.register(Sensor)
13
+ admin.site.register(Datum)
@@ -0,0 +1,41 @@
1
+ #===----------------------------------------------------------------------===#
2
+ #
3
+ # STAIRLab -- STructural Artificial Intelligence Laboratory
4
+ #
5
+ #===----------------------------------------------------------------------===#
6
+ from django import forms
7
+ from django.forms import formset_factory
8
+ from irie.apps.inventory.models import Asset, SensorGroup, Sensor, Datum
9
+
10
+ class AssetForm(forms.ModelForm):
11
+ class Meta:
12
+ model = Asset
13
+ fields = '__all__'
14
+
15
+ class SensorGroupForm(forms.ModelForm):
16
+ class Meta:
17
+ model = SensorGroup
18
+ fields = ['name', 'datum']
19
+
20
+ def __init__(self, *args, asset=None, **kwargs):
21
+ super().__init__(*args, **kwargs)
22
+ if asset:
23
+ self.fields['datum'].queryset = Datum.objects.filter(asset=asset)
24
+
25
+ class SensorForm(forms.ModelForm):
26
+ class Meta:
27
+ model = Sensor
28
+ fields = ['name', 'x', 'y', 'z', 'dx', 'dy', 'dz']
29
+ labels = {
30
+ 'name': 'Name',
31
+ 'x': 'x',
32
+ 'y': 'y',
33
+ 'z': 'z',
34
+ 'dx': 'dx',
35
+ 'dy': 'dy',
36
+ 'dz': 'dz',
37
+ }
38
+
39
+
40
+ # Create a formset for multiple sensors
41
+ SensorFormSet = formset_factory(SensorForm, extra=3) # Default to 3 empty sensor forms
@@ -0,0 +1,43 @@
1
+ # Generated by Django 5.1.2 on 2025-02-24 00:30
2
+
3
+ import django.db.models.deletion
4
+ from django.db import migrations, models
5
+
6
+
7
+ class Migration(migrations.Migration):
8
+
9
+ dependencies = [
10
+ ('irie_apps_inventory', '0003_asset_notes'),
11
+ ]
12
+
13
+ operations = [
14
+ migrations.CreateModel(
15
+ name='Datum',
16
+ fields=[
17
+ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
18
+ ('name', models.CharField(max_length=100)),
19
+ ],
20
+ ),
21
+ migrations.CreateModel(
22
+ name='SensorGroup',
23
+ fields=[
24
+ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
25
+ ('name', models.CharField(max_length=100)),
26
+ ('asset', models.ForeignKey(on_delete=django.db.models.deletion.RESTRICT, to='irie_apps_inventory.asset')),
27
+ ('datum', models.ForeignKey(on_delete=django.db.models.deletion.RESTRICT, to='irie_apps_inventory.datum')),
28
+ ],
29
+ ),
30
+ migrations.CreateModel(
31
+ name='Sensor',
32
+ fields=[
33
+ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
34
+ ('x', models.FloatField()),
35
+ ('y', models.FloatField()),
36
+ ('z', models.FloatField()),
37
+ ('dx', models.FloatField()),
38
+ ('dy', models.FloatField()),
39
+ ('dz', models.FloatField()),
40
+ ('group', models.ForeignKey(on_delete=django.db.models.deletion.RESTRICT, to='irie_apps_inventory.sensorgroup')),
41
+ ],
42
+ ),
43
+ ]
@@ -0,0 +1,19 @@
1
+ # Generated by Django 5.1.2 on 2025-02-25 04:49
2
+
3
+ import django.db.models.deletion
4
+ from django.db import migrations, models
5
+
6
+
7
+ class Migration(migrations.Migration):
8
+
9
+ dependencies = [
10
+ ('irie_apps_inventory', '0004_datum_sensorgroup_sensor'),
11
+ ]
12
+
13
+ operations = [
14
+ migrations.AlterField(
15
+ model_name='sensor',
16
+ name='group',
17
+ field=models.ForeignKey(on_delete=django.db.models.deletion.RESTRICT, related_name='sensors', to='irie_apps_inventory.sensorgroup'),
18
+ ),
19
+ ]
@@ -0,0 +1,56 @@
1
+ # Generated by Django 5.1.2 on 2025-02-25 05:07
2
+
3
+ import django.db.models.deletion
4
+ from django.db import migrations, models
5
+
6
+
7
+ class Migration(migrations.Migration):
8
+
9
+ dependencies = [
10
+ ('irie_apps_inventory', '0005_alter_sensor_group'),
11
+ ]
12
+
13
+ operations = [
14
+ migrations.AddField(
15
+ model_name='datum',
16
+ name='asset',
17
+ field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.RESTRICT, to='irie_apps_inventory.asset'),
18
+ preserve_default=False,
19
+ ),
20
+ migrations.AddField(
21
+ model_name='datum',
22
+ name='locate_x',
23
+ field=models.CharField(default=0, max_length=240),
24
+ preserve_default=False,
25
+ ),
26
+ migrations.AddField(
27
+ model_name='datum',
28
+ name='locate_y',
29
+ field=models.CharField(default=0, max_length=240),
30
+ preserve_default=False,
31
+ ),
32
+ migrations.AddField(
33
+ model_name='datum',
34
+ name='locate_z',
35
+ field=models.CharField(default=0, max_length=240),
36
+ preserve_default=False,
37
+ ),
38
+ migrations.AddField(
39
+ model_name='datum',
40
+ name='orient_x',
41
+ field=models.CharField(default=0, max_length=240),
42
+ preserve_default=False,
43
+ ),
44
+ migrations.AddField(
45
+ model_name='datum',
46
+ name='orient_y',
47
+ field=models.CharField(default=0, max_length=240),
48
+ preserve_default=False,
49
+ ),
50
+ migrations.AddField(
51
+ model_name='datum',
52
+ name='orient_z',
53
+ field=models.CharField(default=0, max_length=240),
54
+ preserve_default=False,
55
+ ),
56
+ ]
@@ -0,0 +1,19 @@
1
+ # Generated by Django 5.1.2 on 2025-02-26 03:21
2
+
3
+ from django.db import migrations, models
4
+
5
+
6
+ class Migration(migrations.Migration):
7
+
8
+ dependencies = [
9
+ ('irie_apps_inventory', '0006_datum_asset_datum_locate_x_datum_locate_y_and_more'),
10
+ ]
11
+
12
+ operations = [
13
+ migrations.AddField(
14
+ model_name='sensor',
15
+ name='name',
16
+ field=models.CharField(default=1, max_length=100),
17
+ preserve_default=False,
18
+ ),
19
+ ]
@@ -0,0 +1,43 @@
1
+ # Generated by Django 5.1.2 on 2025-02-26 07:05
2
+
3
+ from django.db import migrations, models
4
+
5
+
6
+ class Migration(migrations.Migration):
7
+
8
+ dependencies = [
9
+ ('irie_apps_inventory', '0007_sensor_name'),
10
+ ]
11
+
12
+ operations = [
13
+ migrations.AlterField(
14
+ model_name='sensor',
15
+ name='dx',
16
+ field=models.DecimalField(decimal_places=2, max_digits=10),
17
+ ),
18
+ migrations.AlterField(
19
+ model_name='sensor',
20
+ name='dy',
21
+ field=models.DecimalField(decimal_places=2, max_digits=10),
22
+ ),
23
+ migrations.AlterField(
24
+ model_name='sensor',
25
+ name='dz',
26
+ field=models.DecimalField(decimal_places=2, max_digits=10),
27
+ ),
28
+ migrations.AlterField(
29
+ model_name='sensor',
30
+ name='x',
31
+ field=models.DecimalField(decimal_places=2, max_digits=10),
32
+ ),
33
+ migrations.AlterField(
34
+ model_name='sensor',
35
+ name='y',
36
+ field=models.DecimalField(decimal_places=2, max_digits=10),
37
+ ),
38
+ migrations.AlterField(
39
+ model_name='sensor',
40
+ name='z',
41
+ field=models.DecimalField(decimal_places=2, max_digits=10),
42
+ ),
43
+ ]
@@ -22,23 +22,6 @@ class Corridor(models.Model):
22
22
  return f"{self.name} ({self.assets.count()})"
23
23
 
24
24
 
25
- class _Sensor: # (models.Model):
26
- class Status:
27
- active: bool
28
-
29
- status = None
30
-
31
- class Station: # (models.Model):
32
- sensors = None
33
- assets = None
34
- network = None
35
- events = None
36
-
37
- class Vulnerability: # (models.Model):
38
- type = None
39
- asset = None
40
- notes = models.CharField(max_length=1024, blank=True, null=True)
41
-
42
25
  class Asset(models.Model):
43
26
  id = models.BigAutoField(primary_key=True)
44
27
  cesmd = models.CharField(max_length=7, blank=True, null=True)
@@ -112,3 +95,50 @@ class Asset(models.Model):
112
95
  class Meta:
113
96
  ordering = ["-id"]
114
97
 
98
+
99
+ class Vulnerability: # (models.Model):
100
+ type = None
101
+ asset = None
102
+ notes = models.CharField(max_length=1024, blank=True, null=True)
103
+
104
+
105
+ class Datum(models.Model):
106
+ name = models.CharField(max_length=100)
107
+ orient_x = models.CharField(max_length=240) # eg, longitudinal axis of the deck from west to east
108
+ locate_x = models.CharField(max_length=240) # eg, east abutment-to-deck interface
109
+ orient_y = models.CharField(max_length=240) # eg, transverse axis of the deck from north to south
110
+ locate_y = models.CharField(max_length=240) # eg, center of deck
111
+ orient_z = models.CharField(max_length=240) # eg, vertical upwards
112
+ locate_z = models.CharField(max_length=240) # eg, deck surface
113
+ asset = models.ForeignKey(Asset, on_delete=models.RESTRICT)
114
+
115
+ def __str__(self):
116
+ return f"{self.name}"
117
+
118
+ class SensorGroup(models.Model):
119
+ name = models.CharField(max_length=100)
120
+ # sensors; access with .sensor_set.all()
121
+ asset = models.ForeignKey(Asset, on_delete=models.RESTRICT)
122
+ datum = models.ForeignKey(Datum, on_delete=models.RESTRICT)
123
+ # network = models.CharField(max_length=100)
124
+ # events = None
125
+ def __str__(self):
126
+ return f"{self.name} - {self.datum}"
127
+
128
+ class Sensor(models.Model):
129
+ # class Status:
130
+ # active: bool
131
+
132
+ name = models.CharField(max_length=100)
133
+ x = models.DecimalField(decimal_places=2, max_digits=10)
134
+ y = models.DecimalField(decimal_places=2, max_digits=10)
135
+ z = models.DecimalField(decimal_places=2, max_digits=10)
136
+
137
+ dx = models.DecimalField(decimal_places=2, max_digits=10)
138
+ dy = models.DecimalField(decimal_places=2, max_digits=10)
139
+ dz = models.DecimalField(decimal_places=2, max_digits=10)
140
+
141
+ group = models.ForeignKey(SensorGroup, related_name="sensors", on_delete=models.RESTRICT)
142
+
143
+ def __str__(self):
144
+ return f"{self.name} ({self.group.name})"
@@ -23,6 +23,8 @@ urlpatterns = [
23
23
  "^evaluations/(?P<event>[0-9 A-Z-]*)/(?P<cesmd>[0-9 A-Z-]*)/.*", views.asset_event_summary,
24
24
  name="asset_event_summary"
25
25
  ),
26
- re_path("^inventory/(?P<calid>[0-9 A-Z-]*)/evaluations/$", views.asset_evals, name="asset_evals"),
27
- re_path("^inventory/(?P<calid>[0-9 A-Z-]*)/$", views.asset_profile, name="asset_profile"),
26
+ re_path("^inventory/(?P<calid>[0-9 A-Z-]*)/evaluations/$", views.asset_evals, name="asset_evals"),
27
+ re_path("^inventory/(?P<calid>[0-9 A-Z-]*)/$", views.asset_profile, name="asset_profile"),
28
+ re_path("^inventory/(?P<calid>[0-9 A-Z-]*)/sensors/$", views.asset_sensors, name="asset_sensors"),
29
+ re_path("^inventory/(?P<calid>[0-9 A-Z-]*)/sensor_upload", views.sensor_upload, name="sensor_upload"),
28
30
  ]
@@ -17,10 +17,13 @@ from django.core.paginator import Paginator
17
17
  from django.template import loader
18
18
  from django.http import HttpResponse
19
19
  from django.contrib.auth.decorators import login_required
20
+ from django.shortcuts import render, redirect, get_object_or_404
21
+ from django.forms import formset_factory
20
22
 
21
23
  from irie.apps.events.models import EventRecord
22
24
  from irie.apps.site.view_utils import raise404
23
- from irie.apps.inventory.models import Asset
25
+ from irie.apps.inventory.models import Asset, SensorGroup, Sensor, Datum
26
+ from irie.apps.inventory.forms import SensorGroupForm, SensorForm, SensorFormSet
24
27
  from .filters import AssetFilter
25
28
  # Predictors
26
29
  from irie.apps.prediction.runners.hazus import hazus_fragility
@@ -315,7 +318,10 @@ def _make_tables(asset):
315
318
  } for group in asset.nbi_data.values()
316
319
  ]
317
320
  tables.extend(nbi_data)
318
- tables = [tables[2], *tables[:2], *tables[3:]]
321
+ try:
322
+ tables = [tables[2], *tables[:2], *tables[3:]]
323
+ except:
324
+ pass
319
325
  condition = {}
320
326
  for table in tables:
321
327
  keys = set()
@@ -339,6 +345,53 @@ def _make_tables(asset):
339
345
  return tables
340
346
 
341
347
 
348
+ @login_required(login_url="/login/")
349
+ def asset_sensors(request, calid):
350
+ asset = Asset.objects.get(calid=calid)
351
+ context = {
352
+ "asset": asset,
353
+ "groups": SensorGroup.objects.filter(asset=asset)
354
+ }
355
+ html_template = loader.get_template("inventory/asset-sensors.html")
356
+ return HttpResponse(html_template.render(context, request))
357
+
358
+ @login_required(login_url="/login/")
359
+ def sensor_upload(request, calid):
360
+ asset = get_object_or_404(Asset, calid=calid) # Fetch the asset using calid
361
+ datums = Datum.objects.filter(asset=asset).values(
362
+ 'id', 'orient_x', 'locate_x', 'orient_y', 'locate_y', 'orient_z', 'locate_z'
363
+ )
364
+ SensorFormSet = formset_factory(SensorForm, extra=1, can_delete=False)
365
+
366
+ if request.method == "POST":
367
+ group_form = SensorGroupForm(request.POST, asset=asset)
368
+ formset = SensorFormSet(request.POST)
369
+
370
+ if group_form.is_valid() and formset.is_valid():
371
+ sensor_group = group_form.save(commit=False)
372
+ sensor_group.asset = asset # Assign the asset
373
+ sensor_group.save()
374
+
375
+ for form in formset:
376
+ if form.cleaned_data and not form.cleaned_data.get('DELETE', False):
377
+ sensor = form.save(commit=False)
378
+ sensor.group = sensor_group
379
+ sensor.save()
380
+
381
+ return redirect('asset_sensors', calid=calid) # Redirect after successful submission
382
+
383
+ else:
384
+ group_form = SensorGroupForm(asset=asset)
385
+ formset = SensorFormSet()
386
+
387
+ return render(request, "inventory/sensor-upload.html", {
388
+ "group_form": group_form,
389
+ "formset": formset,
390
+ "asset": asset,
391
+ "datums": list(datums)
392
+ })
393
+
394
+
342
395
  def _filter_asset_table(request):
343
396
  # Copy the GET parameters and remove the 'page' parameter
344
397
  page_query = request.GET.copy()
@@ -65,7 +65,7 @@
65
65
  <li class="nav-item {% if 'events' in segment %} active {% endif %}">
66
66
  <span
67
67
  class="nav-link collapsed d-flex justify-content-between align-items-center"
68
- data-bs-toggle="collapse" data-bs-target="#submenu-app">
68
+ data-bs-toggle="collapse" data-bs-target="#submenu-events">
69
69
  <span>
70
70
  <span class="sidebar-icon">
71
71
  <svg class="icon icon-xs me-2" fill="currentColor" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" d="M5 4a3 3 0 00-3 3v6a3 3 0 003 3h10a3 3 0 003-3V7a3 3 0 00-3-3H5zm-1 9v-1h5v2H5a1 1 0 01-1-1zm7 1h4a1 1 0 001-1v-1h-5v2zm0-4h5V8h-5v2zM9 8H4v2h5V8z" clip-rule="evenodd"></path></svg>
@@ -78,7 +78,7 @@
78
78
  </span>
79
79
  </span>
80
80
  <div class="multi-level collapse {% if 'events' in segment %} show {% endif %}"
81
- role="list" id="submenu-app" aria-expanded="false">
81
+ role="list" id="submenu-events" aria-expanded="false">
82
82
  <ul class="flex-column nav">
83
83
  <li class="nav-item {% if 'cgs' in segment %} active {% endif %}">
84
84
  <a class="nav-link" href="{% url 'event_table' %}">
@@ -99,15 +99,34 @@
99
99
  </a>
100
100
  </li>
101
101
 
102
- <li class="nav-item {% if 'networks' in segment %} active {% endif %}">
103
- <a href="{% url 'networks' %}" class="nav-link">
104
- <span class="sidebar-icon">
105
- <svg class="icon icon-xs me-2" fill="currentColor" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M2 10a8 8 0 018-8v8h8a8 8 0 11-16 0z"></path><path d="M12 2.252A8.014 8.014 0 0117.748 8H12V2.252z"></path></svg>
106
- </span>
107
- <span class="sidebar-text">Networks</span>
108
- </a>
102
+ <li class="nav-item {% if 'applications' in segment %} active {% endif %}">
103
+ <span
104
+ class="nav-link collapsed d-flex justify-content-between align-items-center"
105
+ data-bs-toggle="collapse" data-bs-target="#submenu-apps">
106
+ <span>
107
+ <span class="sidebar-icon">
108
+ <svg class="icon icon-xs me-2" fill="currentColor" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" d="M5 4a3 3 0 00-3 3v6a3 3 0 003 3h10a3 3 0 003-3V7a3 3 0 00-3-3H5zm-1 9v-1h5v2H5a1 1 0 01-1-1zm7 1h4a1 1 0 001-1v-1h-5v2zm0-4h5V8h-5v2zM9 8H4v2h5V8z" clip-rule="evenodd"></path></svg>
109
+ </span>
110
+ <span title="Listing of processed events"
111
+ class="sidebar-text">Applications</span>
112
+ </span>
113
+ <span class="link-arrow">
114
+ <svg class="icon icon-sm" fill="currentColor" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg>
115
+ </span>
116
+ </span>
117
+ <div class="multi-level collapse {% if app.url in irie_url_name %} show {% endif %}"
118
+ role="list" id="submenu-apps" aria-expanded="false">
119
+ <ul class="flex-column nav">
120
+ {% for app in irie_apps %}
121
+ <li class="nav-item {% if app.url in irie_url_name %} active {% endif %}">
122
+ <a class="nav-link" href="{% url app.url %}">
123
+ <span class="sidebar-text">{{ app.name }}</span>
124
+ </a>
125
+ </li>
126
+ {% endfor %}
127
+ </ul>
128
+ </div>
109
129
  </li>
110
-
111
130
  <li role="separator" class="dropdown-divider mt-4 mb-3 border-gray-700"></li>
112
131
 
113
132
 
@@ -6,6 +6,10 @@
6
6
  {% endblock %}
7
7
 
8
8
  {% block stylesheets %}
9
+ {% if asset.rendering %}
10
+ <!-- <meta name="viewport" content="width=device-width, initial-scale=1.0"> -->
11
+ <script type="module" src="https://ajax.googleapis.com/ajax/libs/model-viewer/4.0.0/model-viewer.min.js"></script>
12
+ {% endif %}
9
13
  <style>
10
14
  .ct-series-a .ct-point, .ct-series-a .ct-line, .ct-series-a .ct-bar, .ct-series-a .ct-slice-donut{
11
15
  stroke: #506690;
@@ -60,15 +64,21 @@
60
64
  <div class="tab-content" id="pills-tabContent">
61
65
  <div class="tab-pane fade show active"
62
66
  id="pills-rendering" role="tabpanel">
63
- {% if asset.is_complete %}
64
- {% with cesmd=asset.cesmd %}
65
- {% with filename="bridges/InteractiveTwin-"|add:asset.cesmd|add:".html" %}
66
- {% include filename %}
67
- {% endwith %}
68
- {% endwith %}
67
+ {% if asset.rendering %}
68
+ <model-viewer
69
+ id="viewer"
70
+ src="{{ asset.rendering }}"
71
+ alt="3D Model"
72
+ auto-rotate
73
+ camera-controls
74
+ interaction-prompt="none"
75
+ camera-orbit="0deg 75deg 2m"
76
+ field-of-view="30deg"
77
+ style="width: 100%; height: 400px;">
78
+ </model-viewer>
69
79
  {% endif %}
70
80
  </div>
71
- <div class="tab-pane fade show {% if not asset.is_complete %}active{% endif %}"
81
+ <div class="tab-pane fade show {% if not asset.rendering %}active{% endif %}"
72
82
  id="pills-sensors" role="tabpanel">
73
83
  <img src="{{ ASSETS_ROOT }}/inventory/ll{{ asset.cesmd|slice:"2:" }}.svg">
74
84
  </div>
@@ -129,15 +129,23 @@
129
129
  <div class="btn-toolbar mb-2 mb-md-0">
130
130
  <a role="button"
131
131
  href="/inventory/{{ asset.calid }}/predictors/"
132
- class="btn btn-sm btn-outline-primary d-inline-flex align-items-center">
132
+ class="btn btn-sm btn-outline-primary d-inline-flex align-items-center mx-1">
133
133
  <svg class="icon icon-xs me-2" fill="none"
134
134
  stroke="currentColor" viewBox="0 0 24 24"
135
135
  xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 6v6m0 0v6m0-6h6m-6 0H6"></path></svg>
136
136
  Predictors
137
137
  </a>
138
+ <a role="button"
139
+ href="{% url 'asset_sensors' calid=asset.calid %}"
140
+ class="btn btn-sm btn-outline-primary d-inline-flex align-items-center mx-1">
141
+ <svg class="icon icon-xs me-2" fill="none"
142
+ stroke="currentColor" viewBox="0 0 24 24"
143
+ xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 6v6m0 0v6m0-6h6m-6 0H6"></path></svg>
144
+ Sensors
145
+ </a>
138
146
  </div>
139
147
  </div>
140
- {% if True %}
148
+ {% if asset.nbi_data.NBI_BRIDGE %}
141
149
  <div class="col-10">
142
150
  <p>
143
151
  {% if asset.id|divisibleby:3 %}
@@ -0,0 +1,69 @@
1
+ <!--
2
+ ===----------------------------------------------------------------------===#
3
+
4
+ STAIRLab -- STructural Artificial Intelligence Laboratory
5
+
6
+ ===----------------------------------------------------------------------===#
7
+
8
+ Claudio Perez, Summer 2023
9
+ Chrystal Chern, Spring 2025
10
+
11
+ -->
12
+
13
+ {% extends "layouts/base.html" %}
14
+ {% block title %} {{ asset.calid }} Sensors {% endblock %}
15
+
16
+ {% block content %}
17
+ <h1><code>{{ asset.calid }}</code> Sensors</h1>
18
+ <div class="py-4 align-right">
19
+ <a role="button" class="button btn btn-outline-white btn-gray-600 text-white"
20
+ href="{% url 'asset_profile' calid=asset.calid %}" class="me-1">Back to Structure</a>
21
+ <a role="button" class="button btn btn-outline-white btn-gray-600 text-white"
22
+ href="{% url 'sensor_upload' calid=asset.calid %}" class="me-1">Add SensorGroup</a>
23
+ </div>
24
+
25
+ <div class="col-lg-10">
26
+ {% for group in groups %}
27
+ <div class="card shadow-lg mb-4">
28
+ <div class="card-header bg-dark text-white fw-bold d-flex justify-content-between align-items-center">
29
+ <span>{{ group.name }}</span>
30
+ <span class="badge bg-gray text-white px-2 py-1 fs-6">Datum: {{ group.datum.name }}</span>
31
+ </div>
32
+ <div class="card-body">
33
+ <table class="table table-striped table-hover table-bordered">
34
+ <thead class="table-dark">
35
+ <tr>
36
+ <th>Sensor</th>
37
+ <th>x</th>
38
+ <th>y</th>
39
+ <th>z</th>
40
+ <th>dx</th>
41
+ <th>dy</th>
42
+ <th>dz</th>
43
+ </tr>
44
+ </thead>
45
+ <tbody>
46
+ {% for sensor in group.sensors.all %}
47
+ <tr>
48
+ <td class="fw-bold">{{ sensor.name }}</td>
49
+ <td>{{ sensor.x }}</td>
50
+ <td>{{ sensor.y }}</td>
51
+ <td>{{ sensor.z }}</td>
52
+ <td>{{ sensor.dx }}</td>
53
+ <td>{{ sensor.dy }}</td>
54
+ <td>{{ sensor.dz }}</td>
55
+ </tr>
56
+ {% endfor %}
57
+ </tbody>
58
+ </table>
59
+ </div>
60
+ </div>
61
+ {% endfor %}
62
+ </div>
63
+
64
+ {% endblock %}
65
+
66
+ {% block javascripts %}
67
+
68
+ {% endblock %}
69
+