clinicedc 2.0.0__py3-none-any.whl → 2.0.2__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.

Potentially problematic release.


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

Files changed (896) hide show
  1. {clinicedc-2.0.0.dist-info → clinicedc-2.0.2.dist-info}/METADATA +15 -22
  2. {clinicedc-2.0.0.dist-info → clinicedc-2.0.2.dist-info}/RECORD +895 -792
  3. {clinicedc-2.0.0.dist-info → clinicedc-2.0.2.dist-info}/WHEEL +1 -1
  4. edc_action_item/action.py +13 -32
  5. edc_action_item/action_with_notification.py +1 -2
  6. edc_action_item/admin/action_item_admin.py +2 -6
  7. edc_action_item/admin_site.py +1 -3
  8. edc_action_item/auths.py +1 -3
  9. edc_action_item/create_or_update_action_type.py +1 -3
  10. edc_action_item/data_fixers.py +7 -20
  11. edc_action_item/forms/action_item_form.py +1 -3
  12. edc_action_item/management/commands/inspect_action_items.py +3 -9
  13. edc_action_item/migrations/0001_initial.py +4 -5
  14. edc_action_item/migrations/0003_auto_20180116_1528.py +2 -1
  15. edc_action_item/migrations/0006_auto_20180707_1659.py +3 -4
  16. edc_action_item/migrations/0007_auto_20180707_1715.py +1 -3
  17. edc_action_item/migrations/0008_auto_20180809_0303.py +2 -1
  18. edc_action_item/migrations/0014_auto_20181121_1738.py +2 -6
  19. edc_action_item/migrations/0015_auto_20190114_0250.py +4 -3
  20. edc_action_item/migrations/0021_auto_20190628_2113.py +1 -3
  21. edc_action_item/migrations/0022_auto_20190628_2136.py +2 -6
  22. edc_action_item/migrations/0030_edcpermissions.py +1 -1
  23. edc_action_item/migrations/0033_alter_actionitem_managers.py +1 -0
  24. edc_action_item/migrations/0034_alter_actionitem_device_created_and_more.py +13 -37
  25. edc_action_item/migrations/0038_alter_actionitem_revision_alter_actiontype_revision_and_more.py +86 -0
  26. edc_action_item/models/action_item.py +2 -6
  27. edc_action_item/models/action_model_mixin.py +5 -16
  28. edc_action_item/models/action_type.py +1 -3
  29. edc_action_item/models/reference.py +1 -2
  30. edc_action_item/models/signals.py +3 -9
  31. edc_action_item/site_action_items.py +4 -12
  32. edc_action_item/templatetags/action_item_extras.py +1 -3
  33. edc_action_item/view_utils/action_item_button.py +1 -3
  34. edc_action_item/view_utils/action_item_popover_list_item.py +1 -2
  35. edc_adherence/migrations/0002_nonadherencereasons_plural_name.py +1 -3
  36. edc_adherence/model_admin_mixin.py +1 -3
  37. edc_adverse_event/action_items/ae_followup_action.py +2 -6
  38. edc_adverse_event/action_items/ae_initial_action.py +3 -7
  39. edc_adverse_event/auth_objects.py +2 -6
  40. edc_adverse_event/constants.py +1 -3
  41. edc_adverse_event/form_validator_mixins/death_report_form_validator.py +1 -3
  42. edc_adverse_event/form_validator_mixins/requires_death_report_form_validator_mixin.py +2 -7
  43. edc_adverse_event/form_validators/hospitalization.py +1 -3
  44. edc_adverse_event/migrations/0003_auto_20191026_2231.py +3 -9
  45. edc_adverse_event/migrations/0008_auto_20220825_0451.py +1 -1
  46. edc_adverse_event/migrations/0009_auto_20220907_0157.py +1 -1
  47. edc_adverse_event/migrations/0010_auto_20220913_2139.py +4 -12
  48. edc_adverse_event/migrations/0013_alter_aeactionclassification_device_created_and_more.py +11 -31
  49. edc_adverse_event/migrations/0015_alter_aeactionclassification_revision_and_more.py +74 -0
  50. edc_adverse_event/model_mixins/ae_followup/ae_followup_fields_model_mixin.py +1 -3
  51. edc_adverse_event/model_mixins/ae_followup/ae_followup_model_mixin.py +1 -5
  52. edc_adverse_event/model_mixins/ae_initial/ae_initial_ae_model_mixin.py +1 -3
  53. edc_adverse_event/model_mixins/ae_initial/ae_initial_fields_model_mixin.py +1 -3
  54. edc_adverse_event/model_mixins/ae_initial/ae_initial_susar_model_mixin.py +1 -2
  55. edc_adverse_event/model_mixins/ae_special_interest/aesi_model_mixin.py +1 -5
  56. edc_adverse_event/model_mixins/ae_susar/ae_susar_model_mixin.py +1 -5
  57. edc_adverse_event/model_mixins/ae_tmg/ae_tmg_fields_model_mixin.py +2 -6
  58. edc_adverse_event/model_mixins/ae_tmg/ae_tmg_model_mixin.py +1 -5
  59. edc_adverse_event/model_mixins/death_report/death_report_extra_fields_model_mixin.py +1 -2
  60. edc_adverse_event/model_mixins/death_report/death_report_model_mixin.py +2 -5
  61. edc_adverse_event/model_mixins/death_report/death_report_tmg_model_mixin.py +2 -7
  62. edc_adverse_event/model_mixins/death_report/simple_death_report_model_mixin.py +1 -3
  63. edc_adverse_event/modeladmin_mixins/ae_tmg_admin_mixin.py +1 -3
  64. edc_adverse_event/modeladmin_mixins/death_report_admin_mixin.py +6 -10
  65. edc_adverse_event/modelform_mixins/ae_tmg_modelform_mixin.py +1 -3
  66. edc_adverse_event/models/signals.py +3 -9
  67. edc_adverse_event/pdf_reports/ae_pdf_report.py +6 -18
  68. edc_adverse_event/pdf_reports/death_pdf_report.py +3 -9
  69. edc_adverse_event/templatetags/edc_adverse_event_extras.py +5 -15
  70. edc_adverse_event/utils.py +2 -6
  71. edc_adverse_event/view_mixins/ae/ae_listboard_view_mixin.py +1 -3
  72. edc_adverse_event/view_mixins/ae/death_report_listboard_view_mixin.py +1 -3
  73. edc_adverse_event/view_mixins/tmg/tmg_ae_listboard_view_mixin.py +2 -6
  74. edc_adverse_event/view_utils/tmg_button.py +2 -6
  75. edc_adverse_event/views/home_view.py +1 -3
  76. edc_adverse_event/views/tmg/death_listboard_view.py +1 -3
  77. edc_adverse_event/views/tmg/home_view.py +2 -6
  78. edc_adverse_event/views/tmg/summary_listboard_view.py +1 -3
  79. edc_appconfig/apps.py +3 -2
  80. edc_appointment/admin/appointment_admin.py +1 -3
  81. edc_appointment/admin/list_filters.py +1 -3
  82. edc_appointment/admin_site.py +1 -3
  83. edc_appointment/analytics/dataframes/get_appointment_df.py +2 -6
  84. edc_appointment/appointment_reason_updater.py +2 -5
  85. edc_appointment/appointment_status_updater.py +1 -4
  86. edc_appointment/constants.py +1 -3
  87. edc_appointment/creators/appointment_creator.py +4 -10
  88. edc_appointment/creators/appointments_creator.py +3 -2
  89. edc_appointment/creators/unscheduled_appointment_creator.py +3 -7
  90. edc_appointment/creators/utils.py +4 -0
  91. edc_appointment/form_validator_mixins/next_appointment_crf_form_validator_mixin.py +3 -10
  92. edc_appointment/form_validator_mixins/window_period_form_validator_mixin.py +3 -9
  93. edc_appointment/form_validators/appointment_form_validator.py +11 -37
  94. edc_appointment/form_validators/next_appointment_crf_form_validator.py +1 -3
  95. edc_appointment/form_validators/utils.py +1 -3
  96. edc_appointment/managers.py +2 -6
  97. edc_appointment/migrations/0002_auto_20161126_1156.py +5 -8
  98. edc_appointment/migrations/0003_auto_20161127_2226.py +7 -16
  99. edc_appointment/migrations/0006_auto_20170106_2118.py +2 -1
  100. edc_appointment/migrations/0008_auto_20171115_1601.py +3 -4
  101. edc_appointment/migrations/0014_auto_20180116_1411.py +2 -1
  102. edc_appointment/migrations/0024_auto_20200911_0425.py +1 -1
  103. edc_appointment/migrations/0034_appointmenttype_alter_appointment_appt_type_and_more.py +2 -4
  104. edc_appointment/migrations/0036_auto_20230124_1822.py +2 -6
  105. edc_appointment/migrations/0040_appointment_appt_type_other_and_more.py +1 -0
  106. edc_appointment/migrations/0042_alter_appointment_device_created_and_more.py +5 -13
  107. edc_appointment/migrations/0046_infosources.py +1 -3
  108. edc_appointment/migrations/0047_alter_appointment_options_and_more.py +1 -3
  109. edc_appointment/migrations/0049_alter_appointment_revision_and_more.py +38 -0
  110. edc_appointment/model_mixins/appointment_methods_model_mixin.py +1 -5
  111. edc_appointment/model_mixins/appointment_model_mixin.py +7 -12
  112. edc_appointment/model_mixins/next_appointment_crf_model_mixin.py +1 -3
  113. edc_appointment/modeladmin_mixins/next_appointment_crf_modeladmin_mixin.py +1 -3
  114. edc_appointment/modelform_mixins/next_appointment_crf_modelform_mixins.py +1 -5
  115. edc_appointment/models/signals.py +5 -17
  116. edc_appointment/utils.py +11 -33
  117. edc_appointment/view_mixins/appointment_view_mixin.py +2 -6
  118. edc_auth/admin/list_filters.py +2 -6
  119. edc_auth/admin/role_admin.py +1 -3
  120. edc_auth/admin/user_admin.py +4 -12
  121. edc_auth/admin/user_profile_admin.py +2 -5
  122. edc_auth/auth_updater/auth_updater.py +1 -3
  123. edc_auth/forms.py +1 -3
  124. edc_auth/get_app_codenames.py +1 -3
  125. edc_auth/import_users.py +3 -9
  126. edc_auth/management/commands/export_users.py +1 -3
  127. edc_auth/management/commands/reset_password.py +1 -3
  128. edc_auth/migrations/0001_squashed_0033_alter_userprofile_is_multisite_viewer.py +4 -12
  129. edc_auth/migrations/0015_auto_20191026_2149.py +1 -3
  130. edc_auth/migrations/0016_auto_20191026_2153.py +1 -3
  131. edc_auth/migrations/0025_permissions.py +1 -1
  132. edc_auth/migrations/0029_alter_edcpermissions_device_created_and_more.py +5 -13
  133. edc_auth/migrations/0034_alter_edcpermissions_revision_alter_role_revision.py +38 -0
  134. edc_auth/models/__init__.py +1 -3
  135. edc_auth/models/signals.py +2 -6
  136. edc_auth/models/user_profile.py +1 -3
  137. edc_auth/password_setter.py +1 -3
  138. edc_auth/system_checks.py +1 -5
  139. edc_auth/urls_for_accounts.py +1 -3
  140. edc_auth/utils.py +3 -9
  141. edc_consent/actions.py +3 -9
  142. edc_consent/consent_definition.py +5 -8
  143. edc_consent/consent_definition_extension.py +4 -12
  144. edc_consent/field_mixins/citizen_fields_mixin.py +2 -4
  145. edc_consent/field_mixins/identity_fields_mixin.py +1 -2
  146. edc_consent/field_mixins/personal_fields_mixin.py +8 -3
  147. edc_consent/field_mixins/site_fields_mixin.py +1 -2
  148. edc_consent/form_validators/subject_consent_form_validator.py +4 -8
  149. edc_consent/migrations/0001_initial.py +1 -1
  150. edc_consent/migrations/0002_alter_edcpermissions_device_created_and_more.py +3 -7
  151. edc_consent/migrations/0005_alter_edcpermissions_revision.py +26 -0
  152. edc_consent/model_mixins/consent_extension_model_mixin.py +2 -3
  153. edc_consent/model_mixins/consent_model_mixin.py +3 -9
  154. edc_consent/modeladmin_mixins/consent_model_admin_mixin.py +7 -17
  155. edc_consent/modelform_mixins/consent_modelform_mixin/consent_modelform_validation_mixin.py +6 -10
  156. edc_consent/modelform_mixins/requires_consent_modelform_mixin.py +1 -3
  157. edc_consent/models/signals.py +3 -6
  158. edc_consent/site_consents.py +6 -17
  159. edc_consent/system_checks.py +3 -9
  160. edc_consent/validators.py +1 -2
  161. edc_consent/view_mixins/consent_view_mixins.py +3 -5
  162. edc_crf/crf_form_validator.py +4 -7
  163. edc_crf/crf_form_validator_mixins.py +2 -6
  164. edc_crf/migrations/0004_alter_crfstatus_device_created_and_more.py +3 -7
  165. edc_crf/migrations/0008_alter_crfstatus_revision.py +26 -0
  166. edc_crf/utils.py +1 -3
  167. edc_dashboard/management/commands/update_search_slugs.py +1 -3
  168. edc_dashboard/migrations/0001_initial.py +1 -1
  169. edc_dashboard/migrations/0003_alter_edcpermissions_device_created_and_more.py +3 -7
  170. edc_dashboard/migrations/0005_alter_edcpermissions_revision.py +26 -0
  171. edc_dashboard/templatetags/edc_dashboard_extras.py +2 -6
  172. edc_dashboard/view_mixins/administration_view_mixin.py +1 -3
  173. edc_dashboard/view_mixins/edc_view_mixin.py +1 -3
  174. edc_dashboard/views/administration_view.py +1 -3
  175. edc_data_manager/action_items.py +1 -3
  176. edc_data_manager/admin/actions.py +3 -9
  177. edc_data_manager/admin/data_query_admin.py +4 -12
  178. edc_data_manager/admin/query_rule_admin.py +4 -13
  179. edc_data_manager/auths.py +1 -3
  180. edc_data_manager/forms/data_query.py +2 -6
  181. edc_data_manager/forms/query_rule.py +1 -3
  182. edc_data_manager/get_longitudinal_value.py +2 -5
  183. edc_data_manager/handlers/handlers.py +2 -6
  184. edc_data_manager/migrations/0001_initial.py +4 -3
  185. edc_data_manager/migrations/0003_auto_20190806_1749.py +2 -6
  186. edc_data_manager/migrations/0004_auto_20190806_1750.py +1 -3
  187. edc_data_manager/migrations/0025_edcpermissions.py +1 -1
  188. edc_data_manager/migrations/0027_alter_dataquery_dm_user.py +1 -1
  189. edc_data_manager/migrations/0028_alter_dataquery_options_alter_queryrule_options_and_more.py +2 -1
  190. edc_data_manager/migrations/0029_alter_dataquery_managers.py +2 -1
  191. edc_data_manager/migrations/0030_alter_datadictionary_device_created_and_more.py +15 -43
  192. edc_data_manager/migrations/0039_alter_datadictionary_revision_and_more.py +101 -0
  193. edc_data_manager/models/model_mixins.py +1 -3
  194. edc_data_manager/populate_data_dictionary.py +1 -2
  195. edc_data_manager/post_migrate_signals.py +1 -3
  196. edc_data_manager/site_data_manager.py +1 -3
  197. edc_document_status/model_mixins.py +1 -3
  198. edc_egfr/__init__.py +1 -0
  199. edc_egfr/admin/__init__.py +1 -0
  200. edc_egfr/admin/egfr_drop_notification_admin_mixin.py +73 -0
  201. edc_egfr/apps.py +5 -0
  202. edc_egfr/calculators/__init__.py +4 -0
  203. edc_egfr/calculators/base_egrfr.py +56 -0
  204. edc_egfr/calculators/egfr_ckd_epi.py +68 -0
  205. edc_egfr/calculators/egfr_cockcroft_gault.py +63 -0
  206. edc_egfr/calculators/percent_change.py +7 -0
  207. edc_egfr/constants.py +1 -0
  208. edc_egfr/egfr.py +237 -0
  209. edc_egfr/form_validator_mixins/__init__.py +4 -0
  210. edc_egfr/form_validator_mixins/egfr_form_validator_mixins.py +55 -0
  211. edc_egfr/get_drop_notification_model.py +10 -0
  212. edc_egfr/get_egfr_for_subject.py +31 -0
  213. edc_egfr/model_mixins/__init__.py +2 -0
  214. edc_egfr/model_mixins/egfr_drop_notification_model_mixin.py +63 -0
  215. edc_egfr/model_mixins/egfr_model_mixin.py +120 -0
  216. edc_export/archive_exporter.py +2 -6
  217. edc_export/exportables.py +2 -6
  218. edc_export/files_emailer.py +1 -3
  219. edc_export/management/commands/import_receipts.py +1 -3
  220. edc_export/managers.py +3 -9
  221. edc_export/migrations/0001_initial.py +15 -36
  222. edc_export/migrations/0005_exportdata_importdata.py +1 -3
  223. edc_export/migrations/0006_auto_20200512_0208.py +2 -6
  224. edc_export/migrations/0010_auto_20210910_1636.py +2 -6
  225. edc_export/migrations/0013_edcpermissions.py +1 -1
  226. edc_export/migrations/0015_alter_datarequest_managers_and_more.py +2 -1
  227. edc_export/migrations/0016_alter_datarequest_device_created_and_more.py +27 -79
  228. edc_export/migrations/0017_alter_datarequest_options_and_more.py +2 -6
  229. edc_export/migrations/0020_remove_datarequesthistory_edc_export__exporte_ba8050_idx_and_more.py +2 -6
  230. edc_export/migrations/0021_alter_datarequest_revision_and_more.py +173 -0
  231. edc_export/model_exporter/model_exporter.py +4 -15
  232. edc_export/model_exporter/object_history_helpers.py +1 -3
  233. edc_export/model_exporter/value_getter.py +5 -14
  234. edc_export/models/signals.py +1 -3
  235. edc_export/models/upload_export_receipt_file.py +1 -3
  236. edc_export/utils.py +1 -4
  237. edc_export/views/export_selected_models_view.py +6 -17
  238. edc_facility/default_definitions.py +1 -3
  239. edc_facility/facility.py +4 -14
  240. edc_facility/import_holidays.py +1 -3
  241. edc_facility/migrations/0005_healthfacility_healthfacilitytypes_and_more.py +4 -6
  242. edc_facility/migrations/0006_alter_healthfacility_health_facility_type.py +1 -1
  243. edc_facility/migrations/0008_alter_healthfacility_device_created_and_more.py +5 -13
  244. edc_facility/migrations/0015_alter_healthfacility_revision_and_more.py +38 -0
  245. edc_facility/models/holiday.py +1 -3
  246. edc_facility/utils.py +1 -3
  247. edc_fieldsets/fieldsets_modeladmin_mixin.py +1 -3
  248. edc_form_describer/form_describer.py +3 -9
  249. edc_form_describer/make_forms_reference.py +1 -3
  250. edc_form_describer/management/commands/make_forms_reference.py +1 -3
  251. edc_form_runners/admin/issue_admin.py +2 -6
  252. edc_form_runners/form_runner.py +4 -13
  253. edc_form_runners/form_runner_by_scr_id.py +1 -3
  254. edc_form_runners/get_form_runner.py +1 -3
  255. edc_form_runners/get_form_runner_by_src_id.py +3 -3
  256. edc_form_runners/management/commands/run_form_runners.py +1 -3
  257. edc_form_runners/migrations/0001_initial.py +2 -4
  258. edc_form_runners/migrations/0004_alter_issue_revision.py +26 -0
  259. edc_form_runners/run_form_runners.py +1 -3
  260. edc_form_runners/utils.py +1 -3
  261. edc_form_validators/applicable_field_validator.py +6 -17
  262. edc_form_validators/base_form_validator.py +1 -3
  263. edc_form_validators/date_range_validator.py +4 -12
  264. edc_form_validators/date_validator.py +3 -9
  265. edc_form_validators/many_to_many_field_validator.py +1 -3
  266. edc_form_validators/other_specify_field_validator.py +3 -7
  267. edc_form_validators/range_field_validator.py +1 -3
  268. edc_form_validators/required_field_validator.py +5 -18
  269. edc_glucose/__init__.py +0 -0
  270. edc_glucose/apps.py +6 -0
  271. edc_glucose/constants.py +3 -0
  272. edc_glucose/fieldsets.py +14 -0
  273. edc_glucose/form_validators/__init__.py +6 -0
  274. edc_glucose/form_validators/fasting_form_validator.py +12 -0
  275. edc_glucose/form_validators/fbg_form_validator_mixin.py +32 -0
  276. edc_glucose/form_validators/fbg_ogtt_form_validator_mixin.py +47 -0
  277. edc_glucose/form_validators/glucose_form_validator.py +44 -0
  278. edc_glucose/form_validators/glucose_form_validator_mixin.py +53 -0
  279. edc_glucose/form_validators/ogtt_form_validator_mixin.py +91 -0
  280. edc_glucose/list_filters.py +42 -0
  281. edc_glucose/migrations/__init__.py +0 -0
  282. edc_glucose/model_mixin_factories/__init__.py +4 -0
  283. edc_glucose/model_mixin_factories/fasting_model_mixin_factory.py +63 -0
  284. edc_glucose/model_mixin_factories/fbg_model_mixin_factory.py +48 -0
  285. edc_glucose/model_mixin_factories/glucose_model_mixin_factory.py +49 -0
  286. edc_glucose/model_mixin_factories/ogtt_model_mixin_factory.py +71 -0
  287. edc_glucose/model_mixins/__init__.py +5 -0
  288. edc_glucose/model_mixins/fasting_model_mixin.py +15 -0
  289. edc_glucose/model_mixins/fbg_model_mixin.py +10 -0
  290. edc_glucose/model_mixins/glucose_model_mixin.py +17 -0
  291. edc_glucose/model_mixins/hba1c_model_mixin.py +42 -0
  292. edc_glucose/model_mixins/ogtt_model_mixin.py +10 -0
  293. edc_glucose/models.py +0 -0
  294. edc_glucose/utils.py +42 -0
  295. edc_identifier/admin_site.py +1 -3
  296. edc_identifier/identifier.py +1 -3
  297. edc_identifier/migrations/0001_initial.py +3 -4
  298. edc_identifier/migrations/0001_squashed_0018_auto_20180128_1054.py +3 -2
  299. edc_identifier/migrations/0005_alter_identifiermodel_managers.py +2 -1
  300. edc_identifier/migrations/0005_historicalidentifierhistory_historicalidentifiertracker_historicalsubjectidentifier.py +4 -5
  301. edc_identifier/migrations/0006_auto_20161127_2226.py +16 -43
  302. edc_identifier/migrations/0007_alter_identifiermodel_device_created_and_more.py +3 -7
  303. edc_identifier/migrations/0007_auto_20161204_2227.py +4 -7
  304. edc_identifier/migrations/0009_auto_20161221_2323.py +1 -0
  305. edc_identifier/migrations/0010_alter_identifiermodel_revision.py +26 -0
  306. edc_identifier/migrations/0010_auto_20170112_0602.py +2 -1
  307. edc_identifier/migrations/0012_auto_20171116_1606.py +2 -1
  308. edc_identifier/migrations/0013_auto_20171230_1316.py +3 -9
  309. edc_identifier/research_identifier.py +3 -11
  310. edc_identifier/short_identifier.py +5 -9
  311. edc_identifier/utils.py +1 -3
  312. edc_lab/admin/modeladmin_mixins.py +2 -8
  313. edc_lab/aliquot_types.py +1 -3
  314. edc_lab/form_validators/requisition_form_validator_mixin.py +1 -3
  315. edc_lab/forms/box_type_form.py +4 -6
  316. edc_lab/lab/aliquot_type.py +2 -6
  317. edc_lab/lab/manifest.py +2 -6
  318. edc_lab/lab/primary_aliquot.py +1 -3
  319. edc_lab/lab/requisition_panel.py +1 -3
  320. edc_lab/lab/requisition_panel_group.py +2 -6
  321. edc_lab/lab/specimen.py +1 -3
  322. edc_lab/labels/aliquot_label.py +4 -6
  323. edc_lab/labels/manifest_label.py +1 -3
  324. edc_lab/migrations/0001_initial.py +12 -29
  325. edc_lab/migrations/0002_auto_20170305_1939.py +4 -12
  326. edc_lab/migrations/0007_auto_20170321_1119.py +2 -6
  327. edc_lab/migrations/0008_auto_20170921_0719.py +2 -1
  328. edc_lab/migrations/0010_auto_20171127_1541.py +3 -2
  329. edc_lab/migrations/0012_auto_20180114_1438.py +2 -1
  330. edc_lab/migrations/0013_auto_20180117_1438.py +2 -1
  331. edc_lab/migrations/0022_auto_20211210_1839.py +1 -0
  332. edc_lab/migrations/0024_alter_manifestitem_managers.py +2 -1
  333. edc_lab/migrations/0027_alter_aliquot_managers_alter_box_managers_and_more.py +1 -1
  334. edc_lab/migrations/0028_alter_aliquot_device_created_and_more.py +43 -127
  335. edc_lab/migrations/0035_alter_aliquot_revision_alter_box_revision_and_more.py +266 -0
  336. edc_lab/model_mixins/aliquot/aliquot_label_mixin.py +1 -3
  337. edc_lab/model_mixins/aliquot/aliquot_model_mixin.py +4 -12
  338. edc_lab/model_mixins/requisition/requisition_identifier_mixin.py +1 -3
  339. edc_lab/model_mixins/shipping/manifest_model_mixin.py +1 -3
  340. edc_lab/models/box_item.py +1 -3
  341. edc_lab/models/box_type.py +1 -3
  342. edc_lab/models/manifest/manifest.py +3 -9
  343. edc_lab/models/manifest/manifest_item.py +1 -3
  344. edc_lab/models/order.py +1 -3
  345. edc_lab/models/signals.py +1 -3
  346. edc_lab/patterns.py +1 -3
  347. edc_lab/pdf_reports/manifest_pdf_report.py +9 -27
  348. edc_lab/post_migrate_signals.py +1 -3
  349. edc_lab/site_labs.py +4 -10
  350. edc_lab_dashboard/migrations/0001_initial.py +1 -1
  351. edc_lab_dashboard/migrations/0002_alter_edcpermissions_device_created_and_more.py +3 -7
  352. edc_lab_dashboard/migrations/0004_alter_edcpermissions_revision.py +26 -0
  353. edc_lab_dashboard/view_mixins/box_view_mixin.py +1 -3
  354. edc_lab_dashboard/view_mixins/manifest_view_mixin.py +4 -12
  355. edc_lab_dashboard/views/action_views/receive_view.py +1 -3
  356. edc_lab_dashboard/views/action_views/verify_box_item_view.py +1 -3
  357. edc_lab_dashboard/views/listboard_filters/aliquot_listboard_view_filters.py +2 -6
  358. edc_lab_dashboard/views/listboard_filters/manifest_listboard_filters.py +1 -3
  359. edc_lab_dashboard/views/listboard_views/base_box_item_listboard_view.py +1 -3
  360. edc_lab_dashboard/views/listboard_views/manifest_listboard_view.py +1 -3
  361. edc_lab_dashboard/views/listboard_views/process_listboard_view.py +2 -6
  362. edc_lab_dashboard/views/listboard_views/receive_listboard_view.py +2 -6
  363. edc_lab_dashboard/views/listboard_views/requisition_listboard_view.py +2 -6
  364. edc_lab_results/action_items.py +1 -3
  365. edc_lab_results/form_validator_mixins/blood_results_fbg_form_validator_mixin.py +2 -4
  366. edc_lab_results/form_validator_mixins/blood_results_form_validator_mixin.py +1 -3
  367. edc_lab_results/get_summary.py +3 -5
  368. edc_lab_results/model_mixin_factories/__init__.py +10 -0
  369. edc_lab_results/{model_mixin_factory → model_mixin_factories}/field_attrs.py +8 -8
  370. edc_lab_results/{model_mixin_factory → model_mixin_factories}/reportable_result_model_mixin_factory.py +2 -0
  371. edc_lab_results/{model_mixin_factory → model_mixin_factories}/result_model_mixin_factory.py +2 -0
  372. edc_lab_results/model_mixins/blood_result_model_mixin.py +2 -5
  373. edc_lab_results/model_mixins/electrolytes_model_mixins.py +1 -1
  374. edc_lab_results/model_mixins/fbc_model_mixins.py +1 -1
  375. edc_lab_results/model_mixins/fbg_model_mixin.py +6 -3
  376. edc_lab_results/model_mixins/glucose_model_mixin.py +2 -2
  377. edc_lab_results/model_mixins/hba1c_model_mixin.py +2 -28
  378. edc_lab_results/model_mixins/insulin_model_mixin.py +5 -11
  379. edc_lab_results/model_mixins/lft_model_mixins.py +1 -1
  380. edc_lab_results/model_mixins/lipid_model_mixins.py +1 -1
  381. edc_lab_results/model_mixins/proteinuria_model_mixin.py +1 -1
  382. edc_lab_results/model_mixins/rft_model_mixins.py +1 -1
  383. edc_label/apps.py +1 -2
  384. edc_label/migrations/0001_initial.py +1 -1
  385. edc_label/migrations/0003_alter_zpllabeltemplates_device_created_and_more.py +3 -7
  386. edc_label/migrations/0006_alter_zpllabeltemplates_revision.py +29 -0
  387. edc_label/printer.py +2 -6
  388. edc_label/printers_mixin.py +1 -3
  389. edc_label/urls.py +1 -3
  390. edc_label/view_mixins.py +1 -3
  391. edc_label/views/print_label_view.py +1 -3
  392. edc_list_data/model_mixins.py +1 -3
  393. edc_list_data/preload_data.py +2 -6
  394. edc_list_data/site_list_data.py +1 -3
  395. edc_listboard/migrations/0001_initial.py +1 -1
  396. edc_listboard/migrations/0003_alter_listboard_device_created_and_more.py +3 -7
  397. edc_listboard/migrations/0006_alter_listboard_revision.py +29 -0
  398. edc_listboard/view_mixins/listboard_filter_view_mixin.py +5 -15
  399. edc_listboard/view_mixins/search_listboard_view_mixin.py +2 -6
  400. edc_listboard/views/listboard_view.py +2 -6
  401. edc_listboard/views/screen/screening_listboard_view.py +1 -3
  402. edc_listboard/views/subject/subject_listboard_view.py +1 -3
  403. edc_locator/forms/subject_locator_form_validator.py +4 -12
  404. edc_locator/migrations/0001_initial.py +3 -2
  405. edc_locator/migrations/0003_auto_20180103_1351.py +2 -1
  406. edc_locator/migrations/0004_auto_20180106_2148.py +2 -1
  407. edc_locator/migrations/0007_auto_20180117_1819.py +2 -1
  408. edc_locator/migrations/0011_auto_20181007_0053.py +1 -1
  409. edc_locator/migrations/0013_auto_20181007_0054.py +2 -3
  410. edc_locator/migrations/0014_auto_20181009_0545.py +1 -0
  411. edc_locator/migrations/0032_alter_subjectlocator_managers.py +1 -1
  412. edc_locator/migrations/0034_alter_historicalsubjectlocator_device_created_and_more.py +5 -13
  413. edc_locator/migrations/0039_alter_historicalsubjectlocator_revision_and_more.py +38 -0
  414. edc_locator/modeladmin_mixins.py +1 -3
  415. edc_locator/view_mixins/subject_locator_view_mixins.py +1 -3
  416. edc_ltfu/admin.py +1 -3
  417. edc_ltfu/forms/ltfu_form.py +1 -3
  418. edc_ltfu/forms/ltfu_form_validator_mixin.py +1 -2
  419. edc_ltfu/modelform_mixins.py +3 -8
  420. edc_metadata/admin/modeladmin_mixins.py +2 -8
  421. edc_metadata/management/commands/validate_entry_status.py +1 -3
  422. edc_metadata/metadata/metadata.py +12 -41
  423. edc_metadata/metadata/metadata_getter.py +2 -9
  424. edc_metadata/metadata/requisition_metadata_getter.py +1 -3
  425. edc_metadata/metadata_handler.py +3 -9
  426. edc_metadata/metadata_helper/metadata_helper_mixin.py +1 -3
  427. edc_metadata/metadata_mixins/source_model_metadata_mixin.py +3 -9
  428. edc_metadata/metadata_refresher.py +3 -9
  429. edc_metadata/metadata_rules/crf/crf_rule_group.py +2 -5
  430. edc_metadata/metadata_rules/persistant_singleton_mixin.py +3 -3
  431. edc_metadata/metadata_rules/requisition/requisition_rule_group.py +1 -2
  432. edc_metadata/metadata_rules/rule_evaluator.py +1 -3
  433. edc_metadata/metadata_rules/rule_group.py +2 -6
  434. edc_metadata/metadata_rules/rule_group_meta_options.py +1 -3
  435. edc_metadata/metadata_updater.py +1 -3
  436. edc_metadata/metadata_wrappers/metadata_wrapper.py +1 -3
  437. edc_metadata/migrations/0001_initial.py +2 -1
  438. edc_metadata/migrations/0002_auto_20161127_2226.py +6 -13
  439. edc_metadata/migrations/0005_auto_20170112_0602.py +2 -1
  440. edc_metadata/migrations/0007_auto_20170810_1032.py +2 -1
  441. edc_metadata/migrations/0009_auto_20180116_1528.py +2 -1
  442. edc_metadata/migrations/0014_auto_20190707_0002.py +1 -1
  443. edc_metadata/migrations/0015_auto_20190709_0009.py +3 -5
  444. edc_metadata/migrations/0021_alter_crfmetadata_managers_and_more.py +1 -1
  445. edc_metadata/migrations/0023_alter_crfmetadata_device_created_and_more.py +5 -13
  446. edc_metadata/migrations/0030_alter_crfmetadata_revision_and_more.py +38 -0
  447. edc_metadata/model_mixins/creates/creates_metadata_model_mixin.py +1 -3
  448. edc_metadata/model_mixins/updates/updates_metadata_model_mixin.py +1 -3
  449. edc_metadata/models/crf_metadata_model_mixin.py +2 -6
  450. edc_metadata/next_form_getter.py +1 -3
  451. edc_metadata/requisition/requisition_metadata_handler.py +3 -2
  452. edc_metadata/requisition/requisition_metadata_updater.py +1 -3
  453. edc_metadata/update_metadata_on_schedule_change.py +7 -14
  454. edc_model/models/fields/initials_field.py +1 -3
  455. edc_model/models/signals.py +1 -3
  456. edc_model/system_checks.py +1 -3
  457. edc_model/validators/duration.py +1 -3
  458. edc_model_admin/admin_site.py +1 -3
  459. edc_model_admin/changelist_buttons/model_admin_changelist_button_mixin.py +4 -12
  460. edc_model_admin/changelist_buttons/model_admin_changelist_model_button_mixin.py +1 -3
  461. edc_model_admin/dashboard/model_admin_crf_dashboard_mixin.py +1 -3
  462. edc_model_admin/dashboard/model_admin_dashboard_mixin.py +1 -3
  463. edc_model_admin/mixins/base_model_admin_redirect_mixin.py +2 -6
  464. edc_model_admin/mixins/inlines/limited_admin_inline_mixin.py +1 -3
  465. edc_model_admin/mixins/model_admin_bypass_default_form_cls_mixin.py +4 -12
  466. edc_model_admin/mixins/model_admin_form_auto_number_mixin.py +2 -6
  467. edc_model_admin/mixins/model_admin_form_instructions_mixin.py +2 -6
  468. edc_model_admin/mixins/model_admin_next_url_redirect_mixin.py +3 -9
  469. edc_model_admin/mixins/model_admin_protect_pii_mixin.py +1 -3
  470. edc_model_admin/mixins/model_admin_redirect_all_to_changelist_mixin.py +2 -6
  471. edc_model_admin/mixins/model_admin_redirect_on_delete_mixin.py +1 -3
  472. edc_model_admin/templatetags/edc_admin_modify.py +3 -9
  473. edc_model_fields/fields/initials_field.py +1 -3
  474. edc_model_form/mixins/inline_model_form_mixin.py +5 -9
  475. edc_model_to_dataframe/model_to_dataframe.py +15 -46
  476. edc_navbar/get_default_navbar.py +1 -3
  477. edc_navbar/migrations/0004_auto_20220825_0451.py +1 -1
  478. edc_navbar/migrations/0006_alter_edcpermissions_device_created_and_more.py +3 -7
  479. edc_navbar/migrations/0008_alter_edcpermissions_revision.py +26 -0
  480. edc_navbar/navbar.py +1 -3
  481. edc_navbar/navbar_item.py +1 -3
  482. edc_navbar/site_navbars.py +2 -6
  483. edc_navbar/templatetags/edc_navbar_extras.py +1 -3
  484. edc_notification/admin_site.py +1 -3
  485. edc_notification/mailing_list_manager.py +5 -15
  486. edc_notification/migrations/0001_initial.py +2 -1
  487. edc_notification/migrations/0008_alter_notification_device_created_and_more.py +3 -7
  488. edc_notification/migrations/0010_alter_notification_revision.py +26 -0
  489. edc_notification/modeladmin_mixins.py +1 -3
  490. edc_notification/models/notification.py +1 -3
  491. edc_notification/models/signals.py +3 -10
  492. edc_notification/notification/model_notification.py +3 -9
  493. edc_notification/notification/notification.py +4 -12
  494. edc_notification/site_notifications.py +5 -14
  495. edc_offstudy/migrations/0001_initial.py +2 -1
  496. edc_offstudy/migrations/0002_auto_20180921_0434.py +4 -3
  497. edc_offstudy/migrations/0008_auto_20191102_0033.py +2 -1
  498. edc_offstudy/migrations/0015_auto_20220925_0032.py +1 -1
  499. edc_offstudy/migrations/0016_auto_20220929_1742.py +1 -0
  500. edc_offstudy/migrations/0018_alter_subjectoffstudy_managers.py +2 -1
  501. edc_offstudy/migrations/0019_alter_historicalsubjectoffstudy_device_created_and_more.py +5 -13
  502. edc_offstudy/migrations/0022_alter_historicalsubjectoffstudy_revision_and_more.py +41 -0
  503. edc_offstudy/model_mixins/offstudy_model_mixin.py +3 -3
  504. edc_offstudy/modelform_mixins/crf/offstudy_crf_modelform_mixin.py +2 -6
  505. edc_offstudy/templatetags/edc_offstudy_extras.py +2 -6
  506. edc_offstudy/utils.py +1 -3
  507. edc_pdf_reports/admin/modeladmin_mixins.py +1 -3
  508. edc_pdf_reports/crf_pdf_report.py +3 -9
  509. edc_pdf_reports/flowables/textbox.py +1 -3
  510. edc_pdf_reports/report.py +6 -18
  511. edc_pdf_reports/utils.py +1 -3
  512. edc_pdf_reports/views/pdf_intermediate_view.py +1 -3
  513. edc_pdf_reports/views/print_pdf_report_view.py +2 -6
  514. edc_pdutils/actions.py +4 -12
  515. edc_pdutils/choices.py +1 -4
  516. edc_pdutils/database.py +1 -3
  517. edc_pdutils/df_exporters/csv_crf_inline_tables_exporter.py +4 -12
  518. edc_pdutils/df_exporters/csv_exporter.py +7 -22
  519. edc_pdutils/df_handlers/crf_df_handler.py +3 -9
  520. edc_pdutils/df_handlers/df_handler.py +1 -3
  521. edc_pdutils/df_handlers/registered_subject_df_handler.py +1 -3
  522. edc_pdutils/management/commands/export_models.py +2 -6
  523. edc_pdutils/migrations/0001_initial.py +6 -9
  524. edc_pdutils/site.py +2 -6
  525. edc_pdutils/site_values_mappings.py +3 -9
  526. edc_pdutils/tables/aliquot.py +2 -9
  527. edc_pdutils/tables/consent.py +2 -6
  528. edc_pdutils/tables/crf.py +4 -12
  529. edc_pdutils/tables/requisition.py +4 -12
  530. edc_pdutils/tables/visit.py +1 -3
  531. edc_pdutils/utils/convert_dates_from_model.py +3 -9
  532. edc_pdutils/utils/convert_numerics_from_model.py +1 -3
  533. edc_pdutils/utils/convert_timedelta_from_model.py +1 -3
  534. edc_pdutils/utils/missing_subject_identifiers.py +1 -3
  535. edc_pharmacy/admin/actions/confirm_stock.py +2 -6
  536. edc_pharmacy/admin/actions/delete_order_items.py +1 -3
  537. edc_pharmacy/admin/actions/delete_receive_items.py +1 -3
  538. edc_pharmacy/admin/actions/print_stock_report.py +1 -3
  539. edc_pharmacy/admin/list_filters.py +5 -17
  540. edc_pharmacy/admin/model_admin_mixin.py +1 -3
  541. edc_pharmacy/admin/prescription/rx_admin.py +2 -6
  542. edc_pharmacy/admin/prescription/rx_refill_admin.py +1 -3
  543. edc_pharmacy/admin/reports/stock_availability_admin.py +1 -5
  544. edc_pharmacy/admin/stock/allocation_admin.py +5 -15
  545. edc_pharmacy/admin/stock/allocation_proxy_admin.py +1 -3
  546. edc_pharmacy/admin/stock/confirmation_admin.py +1 -3
  547. edc_pharmacy/admin/stock/confirmation_at_site_admin.py +4 -12
  548. edc_pharmacy/admin/stock/confirmation_at_site_item_admin.py +5 -17
  549. edc_pharmacy/admin/stock/dispense_admin.py +3 -11
  550. edc_pharmacy/admin/stock/dispense_item_admin.py +4 -14
  551. edc_pharmacy/admin/stock/order_admin.py +1 -3
  552. edc_pharmacy/admin/stock/order_item_admin.py +5 -15
  553. edc_pharmacy/admin/stock/receive_admin.py +4 -12
  554. edc_pharmacy/admin/stock/receive_item_admin.py +4 -12
  555. edc_pharmacy/admin/stock/repack_request_admin.py +2 -6
  556. edc_pharmacy/admin/stock/stock_adjustment_admin.py +1 -3
  557. edc_pharmacy/admin/stock/stock_admin.py +8 -24
  558. edc_pharmacy/admin/stock/stock_proxy_admin.py +1 -5
  559. edc_pharmacy/admin/stock/stock_request_admin.py +5 -4
  560. edc_pharmacy/admin/stock/stock_request_item_admin.py +10 -19
  561. edc_pharmacy/admin/stock/stock_transfer_admin.py +4 -12
  562. edc_pharmacy/admin/stock/stock_transfer_item_admin.py +6 -18
  563. edc_pharmacy/admin/stock/storage_bin_admin.py +3 -11
  564. edc_pharmacy/admin/stock/storage_bin_item_admin.py +4 -14
  565. edc_pharmacy/analytics/dataframes/get_next_scheduled_visit_for_subjects_df.py +1 -1
  566. edc_pharmacy/analytics/dataframes/in_stock_for_subjects_df.py +2 -6
  567. edc_pharmacy/analytics/dataframes/stock_for_subjects.py +1 -3
  568. edc_pharmacy/form_validators/crf/study_medication_form_validator.py +9 -27
  569. edc_pharmacy/forms/stock/container_form.py +2 -6
  570. edc_pharmacy/forms/stock/receive_item_form.py +2 -6
  571. edc_pharmacy/forms/stock/repack_request_form.py +4 -11
  572. edc_pharmacy/forms/stock/stock_request_form.py +1 -0
  573. edc_pharmacy/forms/stock/stock_request_item_form.py +1 -3
  574. edc_pharmacy/labels/draw_bulk_stock_label_code128.py +1 -3
  575. edc_pharmacy/labels/draw_bulk_stock_label_code39.py +3 -9
  576. edc_pharmacy/labels/draw_patient_stock_label_code128.py +1 -3
  577. edc_pharmacy/migrations/0001_initial.py +7 -15
  578. edc_pharmacy/migrations/0005_alter_rx_managers.py +2 -1
  579. edc_pharmacy/migrations/0015_auto_20220913_2139.py +9 -22
  580. edc_pharmacy/migrations/0016_auto_20220929_1742.py +2 -1
  581. edc_pharmacy/migrations/0018_alter_rxrefill_managers.py +1 -1
  582. edc_pharmacy/migrations/0020_alter_box_device_created_alter_box_device_modified_and_more.py +71 -211
  583. edc_pharmacy/migrations/0021_alter_box_options_alter_container_options_and_more.py +1 -1
  584. edc_pharmacy/migrations/0023_remove_rx_edc_pharmac_modifie_986021_idx_and_more.py +1 -3
  585. edc_pharmacy/migrations/0024_allocation_assignment_containerunits_dispense_and_more.py +40 -104
  586. edc_pharmacy/migrations/0031_historicalrepackrequest_task_id_and_more.py +2 -1
  587. edc_pharmacy/migrations/0033_container_display_name_and_more.py +1 -3
  588. edc_pharmacy/migrations/0035_container_max_per_subject_and_more.py +2 -6
  589. edc_pharmacy/migrations/0037_remove_historicalstock_confirmed_at_site_by_and_more.py +2 -6
  590. edc_pharmacy/migrations/0039_remove_dispense_registered_subject_and_more.py +7 -9
  591. edc_pharmacy/migrations/0043_stockproxy_alter_historicallot_lot_no_and_more.py +2 -1
  592. edc_pharmacy/migrations/0049_remove_stocktransferconfirmation_stock_and_more.py +5 -13
  593. edc_pharmacy/migrations/0050_remove_stocktransferconfirmation2_location_and_more.py +2 -6
  594. edc_pharmacy/migrations/0051_alter_historicalstocktransferconfirmationitem_options_and_more.py +2 -1
  595. edc_pharmacy/migrations/0053_alter_location_managers_alter_historicalstock_lot_and_more.py +7 -11
  596. edc_pharmacy/migrations/0057_scanduplicates.py +3 -4
  597. edc_pharmacy/migrations/0058_stockrequestproxy_alter_stockproxy_options.py +2 -1
  598. edc_pharmacy/migrations/0060_alter_container_max_per_subject_and_more.py +8 -14
  599. edc_pharmacy/migrations/0061_alter_historicalstocktransferconfirmation_options_and_more.py +1 -1
  600. edc_pharmacy/migrations/0062_auto_20250312_1433.py +2 -6
  601. edc_pharmacy/migrations/0063_alter_allocation_managers_remove_allocation_site_and_more.py +2 -1
  602. edc_pharmacy/migrations/0065_allocationproxy.py +2 -1
  603. edc_pharmacy/migrations/0068_stockout.py +2 -1
  604. edc_pharmacy/migrations/0076_historicalstockadjustment_stockadjustment.py +5 -8
  605. edc_pharmacy/migrations/0077_historicalstockadjustment_adjustment_datetime_and_more.py +2 -1
  606. edc_pharmacy/migrations/0078_alter_historicalstock_qty_and_more.py +2 -1
  607. edc_pharmacy/migrations/0081_historicalconfirmation_confirmation.py +8 -10
  608. edc_pharmacy/migrations/0084_confirmationatsiteitem_and_more.py +2 -2
  609. edc_pharmacy/migrations/0088_alter_allocation_revision_alter_assignment_revision_and_more.py +794 -0
  610. edc_pharmacy/model_mixins/study_medication_crf_model_mixin.py +3 -9
  611. edc_pharmacy/models/medication/dosage_guideline.py +1 -3
  612. edc_pharmacy/models/medication/formulation.py +1 -3
  613. edc_pharmacy/models/prescription/rx.py +1 -3
  614. edc_pharmacy/models/prescription/rx_refill.py +2 -6
  615. edc_pharmacy/models/signals.py +11 -21
  616. edc_pharmacy/models/stock/allocation.py +3 -9
  617. edc_pharmacy/models/stock/confirmation.py +1 -3
  618. edc_pharmacy/models/stock/confirmation_at_site_item.py +1 -3
  619. edc_pharmacy/models/stock/container.py +1 -3
  620. edc_pharmacy/models/stock/dispense.py +1 -3
  621. edc_pharmacy/models/stock/dispense_item.py +1 -3
  622. edc_pharmacy/models/stock/lot.py +1 -3
  623. edc_pharmacy/models/stock/order_item.py +2 -6
  624. edc_pharmacy/models/stock/product.py +2 -6
  625. edc_pharmacy/models/stock/receive_item.py +4 -12
  626. edc_pharmacy/models/stock/repack_request.py +1 -3
  627. edc_pharmacy/models/stock/stock.py +3 -8
  628. edc_pharmacy/models/stock/stock_request_item.py +4 -4
  629. edc_pharmacy/models/stock/stock_transfer_item.py +1 -3
  630. edc_pharmacy/models/stock/supplier.py +1 -3
  631. edc_pharmacy/models/storage/utils.py +1 -4
  632. edc_pharmacy/pdf_reports/manifest_pdf_report.py +3 -9
  633. edc_pharmacy/pdf_reports/stock_pdf_report.py +6 -11
  634. edc_pharmacy/refill/adjust_previous_end_datetime.py +2 -6
  635. edc_pharmacy/refill/create_next_refill.py +1 -3
  636. edc_pharmacy/refill/create_refill.py +1 -3
  637. edc_pharmacy/refill/refill_creator.py +2 -6
  638. edc_pharmacy/sample_usb_printing/network_printers.py +1 -3
  639. edc_pharmacy/settings.py +3 -9
  640. edc_pharmacy/urls.py +1 -3
  641. edc_pharmacy/utils/allocate_stock.py +1 -3
  642. edc_pharmacy/utils/confirm_stock_at_site.py +3 -5
  643. edc_pharmacy/utils/dispense.py +1 -4
  644. edc_pharmacy/utils/get_unit_qty_out.py +1 -3
  645. edc_pharmacy/utils/process_repack_request.py +1 -3
  646. edc_pharmacy/utils/process_repack_request_queryset.py +1 -3
  647. edc_pharmacy/utils/stock_request/bulk_create_stock_request_items.py +2 -6
  648. edc_pharmacy/utils/stock_request/get_instock_and_nostock_data.py +3 -8
  649. edc_pharmacy/utils/transfer_stock.py +1 -3
  650. edc_pharmacy/utils/update_previous_refill_end_datetime.py +1 -3
  651. edc_pharmacy/views/add_to_storage_bin_view.py +2 -6
  652. edc_pharmacy/views/allocate_to_subject_view.py +7 -21
  653. edc_pharmacy/views/confirm_stock_from_instance_view.py +2 -6
  654. edc_pharmacy/views/confirm_stock_from_queryset_view.py +2 -7
  655. edc_pharmacy/views/confirmation_at_site_view.py +10 -31
  656. edc_pharmacy/views/dispense_view.py +2 -6
  657. edc_pharmacy/views/move_to_storage_bin_view.py +2 -6
  658. edc_pharmacy/views/prepare_and_review_stock_request_view.py +3 -9
  659. edc_pharmacy/views/print_labels_view.py +1 -3
  660. edc_pharmacy/views/print_stock_transfer_manifest_view.py +1 -3
  661. edc_pharmacy/views/transfer_stock_view.py +1 -3
  662. edc_prn/modelform_mixins.py +1 -3
  663. edc_prn/prn.py +2 -6
  664. edc_prn/templatetags/edc_prn_extras.py +4 -8
  665. edc_protocol/research_protocol_config.py +2 -5
  666. edc_protocol_incident/admin/protocol_deviation_violation_admin.py +1 -3
  667. edc_protocol_incident/auth_objects.py +1 -3
  668. edc_protocol_incident/auths.py +1 -3
  669. edc_protocol_incident/form_validators/mixins.py +3 -9
  670. edc_protocol_incident/form_validators/protocol_deviation_violation_form_validator.py +6 -18
  671. edc_protocol_incident/form_validators/protocol_incident_form_validator.py +3 -8
  672. edc_protocol_incident/migrations/0001_initial.py +4 -3
  673. edc_protocol_incident/migrations/0001_squashed_0015_auto_20220927_0401.py +7 -12
  674. edc_protocol_incident/migrations/0005_protocolincident_historicalprotocolincident_and_more.py +4 -3
  675. edc_protocol_incident/migrations/0012_auto_20220913_2139.py +3 -9
  676. edc_protocol_incident/migrations/0020_alter_historicalprotocoldeviationviolation_device_created_and_more.py +9 -25
  677. edc_protocol_incident/migrations/0023_alter_historicalprotocoldeviationviolation_revision_and_more.py +65 -0
  678. edc_protocol_incident/model_mixins/protocol_deviation_violation_model_mixin.py +3 -7
  679. edc_protocol_incident/model_mixins/protocol_incident_model_mixin.py +1 -3
  680. edc_protocol_incident/urls.py +1 -3
  681. edc_pylabels/actions.py +2 -6
  682. edc_pylabels/admin/label_configuration_admin.py +4 -4
  683. edc_pylabels/drawing_callable_example.py +1 -3
  684. edc_pylabels/migrations/0001_initial.py +1 -3
  685. edc_pylabels/migrations/0002_alter_label_options_label_created_and_more.py +2 -6
  686. edc_pylabels/migrations/0005_labelconfiguration_delete_label_and_more.py +1 -3
  687. edc_pylabels/migrations/0012_alter_labelconfiguration_revision.py +26 -0
  688. edc_pylabels/models/label_configuration.py +1 -3
  689. edc_qareports/migrations/0001_initial.py +3 -4
  690. edc_qareports/migrations/0005_edcpermissions.py +2 -4
  691. edc_qareports/migrations/0006_qareportlog.py +2 -1
  692. edc_qareports/migrations/0007_qareportlog_edc_qarepor_accesse_738ffe_idx.py +1 -3
  693. edc_qareports/migrations/0017_auto_20240816_0256.py +1 -0
  694. edc_qareports/migrations/0018_alter_edcpermissions_revision_alter_note_revision.py +38 -0
  695. edc_qareports/model_mixins/note_model_mixin.py +1 -3
  696. edc_qareports/modeladmin_mixins/list_filters.py +8 -12
  697. edc_qareports/modeladmin_mixins/note_modeladmin_mixin.py +1 -3
  698. edc_qareports/modeladmin_mixins/on_study_missing_values_modeladmin_mixin.py +2 -6
  699. edc_qareports/modeladmin_mixins/qa_report_modeladmin_mixin.py +1 -3
  700. edc_qareports/sql_generator/crf_case.py +1 -5
  701. edc_qareports/sql_generator/sql_view_generator.py +1 -3
  702. edc_qareports/utils.py +4 -7
  703. edc_randomization/admin.py +1 -3
  704. edc_randomization/auths.py +2 -6
  705. edc_randomization/blinding.py +1 -3
  706. edc_randomization/migrations/0001_initial.py +3 -4
  707. edc_randomization/migrations/0009_edcpermissions.py +1 -1
  708. edc_randomization/migrations/0011_alter_edcpermissions_device_created_and_more.py +7 -19
  709. edc_randomization/migrations/0013_alter_edcpermissions_revision_and_more.py +50 -0
  710. edc_randomization/model_mixins.py +2 -5
  711. edc_randomization/randomization_list_importer.py +3 -7
  712. edc_randomization/randomization_list_verifier.py +2 -7
  713. edc_randomization/randomizer.py +4 -7
  714. edc_randomization/site_randomizers.py +1 -3
  715. edc_randomization/system_checks.py +1 -3
  716. edc_randomization/utils.py +2 -6
  717. edc_refusal/admin.py +1 -3
  718. edc_refusal/forms.py +1 -2
  719. edc_refusal/migrations/0001_initial.py +2 -1
  720. edc_refusal/migrations/0002_historicalsubjectrefusal.py +6 -4
  721. edc_refusal/migrations/0004_refusalreasons_plural_name.py +1 -3
  722. edc_refusal/migrations/0005_alter_subjectrefusal_options_and_more.py +2 -1
  723. edc_refusal/migrations/0006_alter_subjectrefusal_managers.py +2 -1
  724. edc_refusal/migrations/0008_alter_historicalsubjectrefusal_device_created_and_more.py +5 -13
  725. edc_refusal/migrations/0011_alter_historicalsubjectrefusal_revision_and_more.py +38 -0
  726. edc_registration/admin_site.py +1 -3
  727. edc_registration/migrations/0001_initial.py +3 -4
  728. edc_registration/migrations/0002_auto_20161127_2226.py +4 -7
  729. edc_registration/migrations/0004_auto_20161221_0018.py +2 -1
  730. edc_registration/migrations/0005_auto_20170111_1809.py +2 -1
  731. edc_registration/migrations/0008_auto_20170810_1032.py +2 -1
  732. edc_registration/migrations/0012_auto_20180116_1528.py +2 -1
  733. edc_registration/migrations/0015_auto_20181006_2257.py +1 -1
  734. edc_registration/migrations/0016_historicalregisteredsubject.py +5 -6
  735. edc_registration/migrations/0026_historicalregisteredsubject_familiar_name_and_more.py +1 -1
  736. edc_registration/migrations/0028_alter_registeredsubject_managers.py +1 -1
  737. edc_registration/migrations/0029_alter_historicalregisteredsubject_device_created_and_more.py +5 -13
  738. edc_registration/migrations/0032_alter_historicalregisteredsubject_revision_and_more.py +38 -0
  739. edc_registration/modeladmin_mixins.py +1 -3
  740. edc_registration/models/registered_subject.py +4 -11
  741. edc_registration/utils.py +1 -3
  742. edc_reportable/admin_site.py +1 -3
  743. edc_reportable/data/normal_data/africa.py +4 -14
  744. edc_reportable/evaluator.py +2 -6
  745. edc_reportable/forms/reportables_form_validator_mixin.py +5 -4
  746. edc_reportable/formula.py +2 -6
  747. edc_reportable/management/commands/export_reportables.py +1 -3
  748. edc_reportable/migrations/0001_initial.py +3 -9
  749. edc_reportable/migrations/0003_referencerangecollection_grade1_and_more.py +3 -9
  750. edc_reportable/migrations/0004_alter_referencerangecollection_grade3_and_more.py +4 -7
  751. edc_reportable/migrations/0006_alter_gradingdata_revision_and_more.py +370 -0
  752. edc_reportable/models/mw.py +1 -3
  753. edc_reportable/models/reference_model_mixins.py +1 -3
  754. edc_reportable/models/reference_range_collection.py +3 -9
  755. edc_reportable/post_migrate_signals.py +1 -3
  756. edc_reportable/reference_range_evaluator.py +4 -11
  757. edc_reportable/utils/convert_units.py +3 -4
  758. edc_reportable/utils/get_grade_for_value.py +3 -1
  759. edc_reportable/utils/get_reference_range_collection.py +2 -2
  760. edc_reportable/utils/load_data.py +1 -3
  761. edc_reportable/utils/molecular_weight_model_cls.py +1 -1
  762. edc_reportable/utils/update_grading_data.py +2 -6
  763. edc_review_dashboard/migrations/0001_initial.py +1 -1
  764. edc_review_dashboard/migrations/0003_alter_edcpermissions_device_created_and_more.py +3 -7
  765. edc_review_dashboard/migrations/0005_alter_edcpermissions_revision.py +26 -0
  766. edc_review_dashboard/views/subject_review_listboard_view.py +1 -3
  767. edc_screening/eligibility.py +1 -3
  768. edc_screening/fc.py +1 -3
  769. edc_screening/migrations/0001_initial.py +1 -1
  770. edc_screening/migrations/0002_alter_edcpermissions_device_created_and_more.py +3 -7
  771. edc_screening/migrations/0004_alter_edcpermissions_revision.py +26 -0
  772. edc_screening/model_mixins/eligibility_model_mixin.py +1 -3
  773. edc_screening/model_mixins/screening_fields_model_mixin.py +2 -0
  774. edc_screening/modelform_mixins.py +1 -3
  775. edc_screening/screening_eligibility.py +1 -0
  776. edc_search/search_slug.py +2 -6
  777. edc_search/updater.py +2 -5
  778. edc_sites/admin/site_model_admin_mixin.py +4 -12
  779. edc_sites/management/commands/sync_sites.py +1 -3
  780. edc_sites/migrations/0007_edcpermissions.py +2 -4
  781. edc_sites/migrations/0009_alter_edcpermissions_revision.py +26 -0
  782. edc_sites/single_site/get_languages.py +1 -3
  783. edc_sites/single_site/single_site.py +1 -1
  784. edc_sites/site.py +6 -12
  785. edc_sites/system_checks.py +1 -4
  786. edc_sites/utils/add_or_update_django_sites.py +2 -4
  787. edc_subject_dashboard/migrations/0001_initial.py +1 -1
  788. edc_subject_dashboard/migrations/0002_alter_edcpermissions_device_created_and_more.py +3 -7
  789. edc_subject_dashboard/migrations/0004_alter_edcpermissions_revision.py +26 -0
  790. edc_subject_dashboard/requisition_labels.py +1 -3
  791. edc_subject_dashboard/requisition_report.py +5 -15
  792. edc_subject_dashboard/requisition_verifier.py +2 -7
  793. edc_subject_dashboard/templatetags/edc_subject_dashboard_extras.py +2 -6
  794. edc_subject_dashboard/view_mixins/subject_visit_view_mixin.py +1 -2
  795. edc_subject_dashboard/view_utils/crf_button.py +1 -3
  796. edc_subject_dashboard/view_utils/subject_consent_listboard_button.py +1 -3
  797. edc_subject_dashboard/view_utils/timepoint_status_button.py +1 -3
  798. edc_subject_dashboard/views/requisition_print_actions_view.py +4 -12
  799. edc_subject_dashboard/views/requisition_verify_actions_view.py +1 -3
  800. edc_subject_dashboard/views/subject_dashboard_view.py +1 -3
  801. edc_timepoint/apps.py +1 -3
  802. edc_timepoint/timepoint.py +1 -3
  803. edc_timepoint/timepoint_lookup.py +1 -3
  804. edc_transfer/form_validators.py +4 -6
  805. edc_transfer/model_mixins.py +1 -3
  806. edc_transfer/modelform_mixins.py +1 -3
  807. edc_unblinding/action_items.py +1 -3
  808. edc_unblinding/admin_site.py +1 -3
  809. edc_unblinding/migrations/0001_initial.py +6 -4
  810. edc_unblinding/migrations/0002_auto_20210908_2318.py +1 -1
  811. edc_unblinding/migrations/0009_alter_unblindingrequest_managers_and_more.py +2 -1
  812. edc_unblinding/migrations/0010_alter_historicalunblindingrequest_device_created_and_more.py +9 -25
  813. edc_unblinding/migrations/0013_alter_historicalunblindingrequest_revision_and_more.py +62 -0
  814. edc_unblinding/models/unblinding_request.py +1 -3
  815. edc_unblinding/models/unblinding_review.py +1 -3
  816. edc_utils/age.py +1 -3
  817. edc_utils/date.py +1 -3
  818. edc_utils/paths_for_urlpatterns.py +1 -3
  819. edc_utils/show_urls.py +1 -3
  820. edc_utils/text.py +1 -2
  821. edc_view_utils/model_button.py +5 -13
  822. edc_view_utils/query_button.py +1 -3
  823. edc_visit_schedule/admin/subject_schedule_history_admin.py +1 -3
  824. edc_visit_schedule/baseline.py +1 -3
  825. edc_visit_schedule/migrations/0001_initial.py +3 -4
  826. edc_visit_schedule/migrations/0003_historicalvisitschedule_visitschedule.py +1 -3
  827. edc_visit_schedule/migrations/0004_auto_20190629_1800.py +1 -3
  828. edc_visit_schedule/migrations/0011_alter_historicalvisitschedule_device_created_and_more.py +7 -19
  829. edc_visit_schedule/migrations/0012_alter_subjectschedulehistory_managers_and_more.py +2 -1
  830. edc_visit_schedule/migrations/0015_historicalonschedule_offschedule_onschedule.py +9 -13
  831. edc_visit_schedule/migrations/0017_alter_onschedule_managers.py +2 -1
  832. edc_visit_schedule/migrations/0018_alter_historicalonschedule_revision_and_more.py +86 -0
  833. edc_visit_schedule/model_mixins/crf/crf_schedule_model_mixin.py +1 -1
  834. edc_visit_schedule/model_mixins/off_schedule_model_mixin.py +2 -6
  835. edc_visit_schedule/model_mixins/on_schedule_model_mixin.py +1 -3
  836. edc_visit_schedule/modelform_mixins/off_schedule_modelform_mixin.py +1 -3
  837. edc_visit_schedule/models/subject_schedule_history.py +3 -8
  838. edc_visit_schedule/ordered_collection.py +1 -3
  839. edc_visit_schedule/schedule/schedule.py +10 -20
  840. edc_visit_schedule/simple_model_validator.py +3 -8
  841. edc_visit_schedule/site_visit_schedules.py +6 -16
  842. edc_visit_schedule/subject_schedule.py +6 -17
  843. edc_visit_schedule/system_checks.py +1 -3
  844. edc_visit_schedule/utils.py +8 -17
  845. edc_visit_schedule/view_mixins.py +4 -10
  846. edc_visit_schedule/visit/crf.py +1 -2
  847. edc_visit_schedule/visit/requisition.py +1 -3
  848. edc_visit_schedule/visit/visit.py +6 -16
  849. edc_visit_schedule/visit/window_period.py +3 -3
  850. edc_visit_schedule/visit_schedule/visit_schedule.py +2 -5
  851. edc_visit_tracking/crf_date_validator.py +1 -2
  852. edc_visit_tracking/form_validators/visit_form_validator.py +2 -8
  853. edc_visit_tracking/form_validators/visit_missed_form_validator.py +3 -9
  854. edc_visit_tracking/migrations/0003_auto_20220913_2139.py +2 -6
  855. edc_visit_tracking/migrations/0004_subjectvisit_subjectvisitmissedreasons_extra_value_and_more.py +8 -16
  856. edc_visit_tracking/migrations/0008_alter_historicalsubjectvisit_revision_and_more.py +65 -0
  857. edc_visit_tracking/model_mixins/base/visit_methods_model_mixin.py +2 -6
  858. edc_visit_tracking/model_mixins/crfs/visit_tracking_crf_model_mixin.py +1 -3
  859. edc_visit_tracking/model_mixins/requisitions/visit_tracking_requisition_model_mixin.py +1 -3
  860. edc_visit_tracking/model_mixins/subject_visit_missed_model_mixin.py +1 -3
  861. edc_visit_tracking/model_mixins/visit_model_mixin/visit_model_fields_mixin.py +1 -2
  862. edc_visit_tracking/modeladmin_mixins/crf_model_admin_mixin.py +4 -8
  863. edc_visit_tracking/modeladmin_mixins/visit_model_admin_mixin.py +4 -6
  864. edc_visit_tracking/modelform_mixins/crf/visit_tracking_crf_modelform_mixin.py +2 -6
  865. edc_visit_tracking/modelform_mixins/utils.py +1 -3
  866. edc_visit_tracking/modelform_mixins/visit_tracking_modelform_mixin.py +1 -2
  867. edc_visit_tracking/models/signals.py +1 -3
  868. edc_visit_tracking/stubs.py +1 -3
  869. edc_visit_tracking/utils.py +1 -2
  870. edc_visit_tracking/view_utils/related_visit_button.py +1 -3
  871. edc_visit_tracking/visit_sequence.py +1 -3
  872. edc_vitals/__init__.py +2 -0
  873. edc_vitals/apps.py +6 -0
  874. edc_vitals/calculators/__init__.py +1 -0
  875. edc_vitals/calculators/bmi.py +70 -0
  876. edc_vitals/form_validators/__init__.py +5 -0
  877. edc_vitals/form_validators/blood_pressure_form_validator_mixin.py +40 -0
  878. edc_vitals/form_validators/bmi_form_validator_mixin.py +19 -0
  879. edc_vitals/form_validators/weight_height_with_bmi_form_validator_mixin.py +13 -0
  880. edc_vitals/migrations/__init__.py +0 -0
  881. edc_vitals/model_mixins/__init__.py +5 -0
  882. edc_vitals/model_mixins/blood_pressure_model_mixin.py +80 -0
  883. edc_vitals/model_mixins/weight_height_bmi_model_mixin.py +42 -0
  884. edc_vitals/models/__init__.py +10 -0
  885. edc_vitals/models/fields/__init__.py +7 -0
  886. edc_vitals/models/fields/blood_pressure.py +36 -0
  887. edc_vitals/models/fields/heart_rate.py +22 -0
  888. edc_vitals/models/fields/height.py +26 -0
  889. edc_vitals/models/fields/respiratory_rate.py +22 -0
  890. edc_vitals/models/fields/temperature.py +26 -0
  891. edc_vitals/models/fields/waist_circumference.py +23 -0
  892. edc_vitals/models/fields/weight.py +26 -0
  893. edc_vitals/utils.py +51 -0
  894. edc_vitals/validators.py +5 -0
  895. edc_lab_results/model_mixin_factory/__init__.py +0 -2
  896. {clinicedc-2.0.0.dist-info → clinicedc-2.0.2.dist-info}/licenses/LICENSE +0 -0
@@ -1,8 +1,8 @@
1
1
  # Generated by Django 4.2.4 on 2023-08-23 01:13
2
2
 
3
3
  import _socket
4
- from django.db import migrations, models
5
4
  import django_audit_fields.fields.hostname_modification_field
5
+ from django.db import migrations, models
6
6
 
7
7
 
8
8
  class Migration(migrations.Migration):
@@ -17,16 +17,12 @@ class Migration(migrations.Migration):
17
17
  migrations.AlterField(
18
18
  model_name="box",
19
19
  name="device_created",
20
- field=models.CharField(
21
- blank=True, max_length=10, verbose_name="Device created"
22
- ),
20
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device created"),
23
21
  ),
24
22
  migrations.AlterField(
25
23
  model_name="box",
26
24
  name="device_modified",
27
- field=models.CharField(
28
- blank=True, max_length=10, verbose_name="Device modified"
29
- ),
25
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device modified"),
30
26
  ),
31
27
  migrations.AlterField(
32
28
  model_name="box",
@@ -52,16 +48,12 @@ class Migration(migrations.Migration):
52
48
  migrations.AlterField(
53
49
  model_name="dispensinghistory",
54
50
  name="device_created",
55
- field=models.CharField(
56
- blank=True, max_length=10, verbose_name="Device created"
57
- ),
51
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device created"),
58
52
  ),
59
53
  migrations.AlterField(
60
54
  model_name="dispensinghistory",
61
55
  name="device_modified",
62
- field=models.CharField(
63
- blank=True, max_length=10, verbose_name="Device modified"
64
- ),
56
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device modified"),
65
57
  ),
66
58
  migrations.AlterField(
67
59
  model_name="dispensinghistory",
@@ -87,16 +79,12 @@ class Migration(migrations.Migration):
87
79
  migrations.AlterField(
88
80
  model_name="dosageguideline",
89
81
  name="device_created",
90
- field=models.CharField(
91
- blank=True, max_length=10, verbose_name="Device created"
92
- ),
82
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device created"),
93
83
  ),
94
84
  migrations.AlterField(
95
85
  model_name="dosageguideline",
96
86
  name="device_modified",
97
- field=models.CharField(
98
- blank=True, max_length=10, verbose_name="Device modified"
99
- ),
87
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device modified"),
100
88
  ),
101
89
  migrations.AlterField(
102
90
  model_name="dosageguideline",
@@ -122,16 +110,12 @@ class Migration(migrations.Migration):
122
110
  migrations.AlterField(
123
111
  model_name="formulation",
124
112
  name="device_created",
125
- field=models.CharField(
126
- blank=True, max_length=10, verbose_name="Device created"
127
- ),
113
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device created"),
128
114
  ),
129
115
  migrations.AlterField(
130
116
  model_name="formulation",
131
117
  name="device_modified",
132
- field=models.CharField(
133
- blank=True, max_length=10, verbose_name="Device modified"
134
- ),
118
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device modified"),
135
119
  ),
136
120
  migrations.AlterField(
137
121
  model_name="formulation",
@@ -157,16 +141,12 @@ class Migration(migrations.Migration):
157
141
  migrations.AlterField(
158
142
  model_name="genericcontainer",
159
143
  name="device_created",
160
- field=models.CharField(
161
- blank=True, max_length=10, verbose_name="Device created"
162
- ),
144
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device created"),
163
145
  ),
164
146
  migrations.AlterField(
165
147
  model_name="genericcontainer",
166
148
  name="device_modified",
167
- field=models.CharField(
168
- blank=True, max_length=10, verbose_name="Device modified"
169
- ),
149
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device modified"),
170
150
  ),
171
151
  migrations.AlterField(
172
152
  model_name="genericcontainer",
@@ -192,16 +172,12 @@ class Migration(migrations.Migration):
192
172
  migrations.AlterField(
193
173
  model_name="historicaldispensinghistory",
194
174
  name="device_created",
195
- field=models.CharField(
196
- blank=True, max_length=10, verbose_name="Device created"
197
- ),
175
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device created"),
198
176
  ),
199
177
  migrations.AlterField(
200
178
  model_name="historicaldispensinghistory",
201
179
  name="device_modified",
202
- field=models.CharField(
203
- blank=True, max_length=10, verbose_name="Device modified"
204
- ),
180
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device modified"),
205
181
  ),
206
182
  migrations.AlterField(
207
183
  model_name="historicaldispensinghistory",
@@ -227,16 +203,12 @@ class Migration(migrations.Migration):
227
203
  migrations.AlterField(
228
204
  model_name="historicaldosageguideline",
229
205
  name="device_created",
230
- field=models.CharField(
231
- blank=True, max_length=10, verbose_name="Device created"
232
- ),
206
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device created"),
233
207
  ),
234
208
  migrations.AlterField(
235
209
  model_name="historicaldosageguideline",
236
210
  name="device_modified",
237
- field=models.CharField(
238
- blank=True, max_length=10, verbose_name="Device modified"
239
- ),
211
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device modified"),
240
212
  ),
241
213
  migrations.AlterField(
242
214
  model_name="historicaldosageguideline",
@@ -262,16 +234,12 @@ class Migration(migrations.Migration):
262
234
  migrations.AlterField(
263
235
  model_name="historicalformulation",
264
236
  name="device_created",
265
- field=models.CharField(
266
- blank=True, max_length=10, verbose_name="Device created"
267
- ),
237
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device created"),
268
238
  ),
269
239
  migrations.AlterField(
270
240
  model_name="historicalformulation",
271
241
  name="device_modified",
272
- field=models.CharField(
273
- blank=True, max_length=10, verbose_name="Device modified"
274
- ),
242
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device modified"),
275
243
  ),
276
244
  migrations.AlterField(
277
245
  model_name="historicalformulation",
@@ -297,16 +265,12 @@ class Migration(migrations.Migration):
297
265
  migrations.AlterField(
298
266
  model_name="historicallabels",
299
267
  name="device_created",
300
- field=models.CharField(
301
- blank=True, max_length=10, verbose_name="Device created"
302
- ),
268
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device created"),
303
269
  ),
304
270
  migrations.AlterField(
305
271
  model_name="historicallabels",
306
272
  name="device_modified",
307
- field=models.CharField(
308
- blank=True, max_length=10, verbose_name="Device modified"
309
- ),
273
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device modified"),
310
274
  ),
311
275
  migrations.AlterField(
312
276
  model_name="historicallabels",
@@ -332,16 +296,12 @@ class Migration(migrations.Migration):
332
296
  migrations.AlterField(
333
297
  model_name="historicalmedication",
334
298
  name="device_created",
335
- field=models.CharField(
336
- blank=True, max_length=10, verbose_name="Device created"
337
- ),
299
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device created"),
338
300
  ),
339
301
  migrations.AlterField(
340
302
  model_name="historicalmedication",
341
303
  name="device_modified",
342
- field=models.CharField(
343
- blank=True, max_length=10, verbose_name="Device modified"
344
- ),
304
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device modified"),
345
305
  ),
346
306
  migrations.AlterField(
347
307
  model_name="historicalmedication",
@@ -367,16 +327,12 @@ class Migration(migrations.Migration):
367
327
  migrations.AlterField(
368
328
  model_name="historicalmedicationlot",
369
329
  name="device_created",
370
- field=models.CharField(
371
- blank=True, max_length=10, verbose_name="Device created"
372
- ),
330
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device created"),
373
331
  ),
374
332
  migrations.AlterField(
375
333
  model_name="historicalmedicationlot",
376
334
  name="device_modified",
377
- field=models.CharField(
378
- blank=True, max_length=10, verbose_name="Device modified"
379
- ),
335
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device modified"),
380
336
  ),
381
337
  migrations.AlterField(
382
338
  model_name="historicalmedicationlot",
@@ -402,16 +358,12 @@ class Migration(migrations.Migration):
402
358
  migrations.AlterField(
403
359
  model_name="historicalorder",
404
360
  name="device_created",
405
- field=models.CharField(
406
- blank=True, max_length=10, verbose_name="Device created"
407
- ),
361
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device created"),
408
362
  ),
409
363
  migrations.AlterField(
410
364
  model_name="historicalorder",
411
365
  name="device_modified",
412
- field=models.CharField(
413
- blank=True, max_length=10, verbose_name="Device modified"
414
- ),
366
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device modified"),
415
367
  ),
416
368
  migrations.AlterField(
417
369
  model_name="historicalorder",
@@ -437,16 +389,12 @@ class Migration(migrations.Migration):
437
389
  migrations.AlterField(
438
390
  model_name="historicalproduct",
439
391
  name="device_created",
440
- field=models.CharField(
441
- blank=True, max_length=10, verbose_name="Device created"
442
- ),
392
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device created"),
443
393
  ),
444
394
  migrations.AlterField(
445
395
  model_name="historicalproduct",
446
396
  name="device_modified",
447
- field=models.CharField(
448
- blank=True, max_length=10, verbose_name="Device modified"
449
- ),
397
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device modified"),
450
398
  ),
451
399
  migrations.AlterField(
452
400
  model_name="historicalproduct",
@@ -472,16 +420,12 @@ class Migration(migrations.Migration):
472
420
  migrations.AlterField(
473
421
  model_name="historicalreturnhistory",
474
422
  name="device_created",
475
- field=models.CharField(
476
- blank=True, max_length=10, verbose_name="Device created"
477
- ),
423
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device created"),
478
424
  ),
479
425
  migrations.AlterField(
480
426
  model_name="historicalreturnhistory",
481
427
  name="device_modified",
482
- field=models.CharField(
483
- blank=True, max_length=10, verbose_name="Device modified"
484
- ),
428
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device modified"),
485
429
  ),
486
430
  migrations.AlterField(
487
431
  model_name="historicalreturnhistory",
@@ -507,16 +451,12 @@ class Migration(migrations.Migration):
507
451
  migrations.AlterField(
508
452
  model_name="historicalrx",
509
453
  name="device_created",
510
- field=models.CharField(
511
- blank=True, max_length=10, verbose_name="Device created"
512
- ),
454
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device created"),
513
455
  ),
514
456
  migrations.AlterField(
515
457
  model_name="historicalrx",
516
458
  name="device_modified",
517
- field=models.CharField(
518
- blank=True, max_length=10, verbose_name="Device modified"
519
- ),
459
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device modified"),
520
460
  ),
521
461
  migrations.AlterField(
522
462
  model_name="historicalrx",
@@ -542,16 +482,12 @@ class Migration(migrations.Migration):
542
482
  migrations.AlterField(
543
483
  model_name="historicalrxrefill",
544
484
  name="device_created",
545
- field=models.CharField(
546
- blank=True, max_length=10, verbose_name="Device created"
547
- ),
485
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device created"),
548
486
  ),
549
487
  migrations.AlterField(
550
488
  model_name="historicalrxrefill",
551
489
  name="device_modified",
552
- field=models.CharField(
553
- blank=True, max_length=10, verbose_name="Device modified"
554
- ),
490
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device modified"),
555
491
  ),
556
492
  migrations.AlterField(
557
493
  model_name="historicalrxrefill",
@@ -577,16 +513,12 @@ class Migration(migrations.Migration):
577
513
  migrations.AlterField(
578
514
  model_name="historicalstock",
579
515
  name="device_created",
580
- field=models.CharField(
581
- blank=True, max_length=10, verbose_name="Device created"
582
- ),
516
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device created"),
583
517
  ),
584
518
  migrations.AlterField(
585
519
  model_name="historicalstock",
586
520
  name="device_modified",
587
- field=models.CharField(
588
- blank=True, max_length=10, verbose_name="Device modified"
589
- ),
521
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device modified"),
590
522
  ),
591
523
  migrations.AlterField(
592
524
  model_name="historicalstock",
@@ -612,16 +544,12 @@ class Migration(migrations.Migration):
612
544
  migrations.AlterField(
613
545
  model_name="historicalstockcreatelabels",
614
546
  name="device_created",
615
- field=models.CharField(
616
- blank=True, max_length=10, verbose_name="Device created"
617
- ),
547
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device created"),
618
548
  ),
619
549
  migrations.AlterField(
620
550
  model_name="historicalstockcreatelabels",
621
551
  name="device_modified",
622
- field=models.CharField(
623
- blank=True, max_length=10, verbose_name="Device modified"
624
- ),
552
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device modified"),
625
553
  ),
626
554
  migrations.AlterField(
627
555
  model_name="historicalstockcreatelabels",
@@ -647,16 +575,12 @@ class Migration(migrations.Migration):
647
575
  migrations.AlterField(
648
576
  model_name="historicalstockreceiving",
649
577
  name="device_created",
650
- field=models.CharField(
651
- blank=True, max_length=10, verbose_name="Device created"
652
- ),
578
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device created"),
653
579
  ),
654
580
  migrations.AlterField(
655
581
  model_name="historicalstockreceiving",
656
582
  name="device_modified",
657
- field=models.CharField(
658
- blank=True, max_length=10, verbose_name="Device modified"
659
- ),
583
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device modified"),
660
584
  ),
661
585
  migrations.AlterField(
662
586
  model_name="historicalstockreceiving",
@@ -682,16 +606,12 @@ class Migration(migrations.Migration):
682
606
  migrations.AlterField(
683
607
  model_name="labels",
684
608
  name="device_created",
685
- field=models.CharField(
686
- blank=True, max_length=10, verbose_name="Device created"
687
- ),
609
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device created"),
688
610
  ),
689
611
  migrations.AlterField(
690
612
  model_name="labels",
691
613
  name="device_modified",
692
- field=models.CharField(
693
- blank=True, max_length=10, verbose_name="Device modified"
694
- ),
614
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device modified"),
695
615
  ),
696
616
  migrations.AlterField(
697
617
  model_name="labels",
@@ -717,16 +637,12 @@ class Migration(migrations.Migration):
717
637
  migrations.AlterField(
718
638
  model_name="location",
719
639
  name="device_created",
720
- field=models.CharField(
721
- blank=True, max_length=10, verbose_name="Device created"
722
- ),
640
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device created"),
723
641
  ),
724
642
  migrations.AlterField(
725
643
  model_name="location",
726
644
  name="device_modified",
727
- field=models.CharField(
728
- blank=True, max_length=10, verbose_name="Device modified"
729
- ),
645
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device modified"),
730
646
  ),
731
647
  migrations.AlterField(
732
648
  model_name="location",
@@ -752,16 +668,12 @@ class Migration(migrations.Migration):
752
668
  migrations.AlterField(
753
669
  model_name="medication",
754
670
  name="device_created",
755
- field=models.CharField(
756
- blank=True, max_length=10, verbose_name="Device created"
757
- ),
671
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device created"),
758
672
  ),
759
673
  migrations.AlterField(
760
674
  model_name="medication",
761
675
  name="device_modified",
762
- field=models.CharField(
763
- blank=True, max_length=10, verbose_name="Device modified"
764
- ),
676
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device modified"),
765
677
  ),
766
678
  migrations.AlterField(
767
679
  model_name="medication",
@@ -787,16 +699,12 @@ class Migration(migrations.Migration):
787
699
  migrations.AlterField(
788
700
  model_name="medicationlot",
789
701
  name="device_created",
790
- field=models.CharField(
791
- blank=True, max_length=10, verbose_name="Device created"
792
- ),
702
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device created"),
793
703
  ),
794
704
  migrations.AlterField(
795
705
  model_name="medicationlot",
796
706
  name="device_modified",
797
- field=models.CharField(
798
- blank=True, max_length=10, verbose_name="Device modified"
799
- ),
707
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device modified"),
800
708
  ),
801
709
  migrations.AlterField(
802
710
  model_name="medicationlot",
@@ -822,16 +730,12 @@ class Migration(migrations.Migration):
822
730
  migrations.AlterField(
823
731
  model_name="order",
824
732
  name="device_created",
825
- field=models.CharField(
826
- blank=True, max_length=10, verbose_name="Device created"
827
- ),
733
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device created"),
828
734
  ),
829
735
  migrations.AlterField(
830
736
  model_name="order",
831
737
  name="device_modified",
832
- field=models.CharField(
833
- blank=True, max_length=10, verbose_name="Device modified"
834
- ),
738
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device modified"),
835
739
  ),
836
740
  migrations.AlterField(
837
741
  model_name="order",
@@ -857,16 +761,12 @@ class Migration(migrations.Migration):
857
761
  migrations.AlterField(
858
762
  model_name="pillbottle",
859
763
  name="device_created",
860
- field=models.CharField(
861
- blank=True, max_length=10, verbose_name="Device created"
862
- ),
764
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device created"),
863
765
  ),
864
766
  migrations.AlterField(
865
767
  model_name="pillbottle",
866
768
  name="device_modified",
867
- field=models.CharField(
868
- blank=True, max_length=10, verbose_name="Device modified"
869
- ),
769
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device modified"),
870
770
  ),
871
771
  migrations.AlterField(
872
772
  model_name="pillbottle",
@@ -892,16 +792,12 @@ class Migration(migrations.Migration):
892
792
  migrations.AlterField(
893
793
  model_name="product",
894
794
  name="device_created",
895
- field=models.CharField(
896
- blank=True, max_length=10, verbose_name="Device created"
897
- ),
795
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device created"),
898
796
  ),
899
797
  migrations.AlterField(
900
798
  model_name="product",
901
799
  name="device_modified",
902
- field=models.CharField(
903
- blank=True, max_length=10, verbose_name="Device modified"
904
- ),
800
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device modified"),
905
801
  ),
906
802
  migrations.AlterField(
907
803
  model_name="product",
@@ -927,16 +823,12 @@ class Migration(migrations.Migration):
927
823
  migrations.AlterField(
928
824
  model_name="returnhistory",
929
825
  name="device_created",
930
- field=models.CharField(
931
- blank=True, max_length=10, verbose_name="Device created"
932
- ),
826
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device created"),
933
827
  ),
934
828
  migrations.AlterField(
935
829
  model_name="returnhistory",
936
830
  name="device_modified",
937
- field=models.CharField(
938
- blank=True, max_length=10, verbose_name="Device modified"
939
- ),
831
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device modified"),
940
832
  ),
941
833
  migrations.AlterField(
942
834
  model_name="returnhistory",
@@ -962,16 +854,12 @@ class Migration(migrations.Migration):
962
854
  migrations.AlterField(
963
855
  model_name="room",
964
856
  name="device_created",
965
- field=models.CharField(
966
- blank=True, max_length=10, verbose_name="Device created"
967
- ),
857
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device created"),
968
858
  ),
969
859
  migrations.AlterField(
970
860
  model_name="room",
971
861
  name="device_modified",
972
- field=models.CharField(
973
- blank=True, max_length=10, verbose_name="Device modified"
974
- ),
862
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device modified"),
975
863
  ),
976
864
  migrations.AlterField(
977
865
  model_name="room",
@@ -997,16 +885,12 @@ class Migration(migrations.Migration):
997
885
  migrations.AlterField(
998
886
  model_name="rx",
999
887
  name="device_created",
1000
- field=models.CharField(
1001
- blank=True, max_length=10, verbose_name="Device created"
1002
- ),
888
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device created"),
1003
889
  ),
1004
890
  migrations.AlterField(
1005
891
  model_name="rx",
1006
892
  name="device_modified",
1007
- field=models.CharField(
1008
- blank=True, max_length=10, verbose_name="Device modified"
1009
- ),
893
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device modified"),
1010
894
  ),
1011
895
  migrations.AlterField(
1012
896
  model_name="rx",
@@ -1032,16 +916,12 @@ class Migration(migrations.Migration):
1032
916
  migrations.AlterField(
1033
917
  model_name="rxrefill",
1034
918
  name="device_created",
1035
- field=models.CharField(
1036
- blank=True, max_length=10, verbose_name="Device created"
1037
- ),
919
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device created"),
1038
920
  ),
1039
921
  migrations.AlterField(
1040
922
  model_name="rxrefill",
1041
923
  name="device_modified",
1042
- field=models.CharField(
1043
- blank=True, max_length=10, verbose_name="Device modified"
1044
- ),
924
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device modified"),
1045
925
  ),
1046
926
  migrations.AlterField(
1047
927
  model_name="rxrefill",
@@ -1067,16 +947,12 @@ class Migration(migrations.Migration):
1067
947
  migrations.AlterField(
1068
948
  model_name="shelf",
1069
949
  name="device_created",
1070
- field=models.CharField(
1071
- blank=True, max_length=10, verbose_name="Device created"
1072
- ),
950
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device created"),
1073
951
  ),
1074
952
  migrations.AlterField(
1075
953
  model_name="shelf",
1076
954
  name="device_modified",
1077
- field=models.CharField(
1078
- blank=True, max_length=10, verbose_name="Device modified"
1079
- ),
955
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device modified"),
1080
956
  ),
1081
957
  migrations.AlterField(
1082
958
  model_name="shelf",
@@ -1102,16 +978,12 @@ class Migration(migrations.Migration):
1102
978
  migrations.AlterField(
1103
979
  model_name="stock",
1104
980
  name="device_created",
1105
- field=models.CharField(
1106
- blank=True, max_length=10, verbose_name="Device created"
1107
- ),
981
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device created"),
1108
982
  ),
1109
983
  migrations.AlterField(
1110
984
  model_name="stock",
1111
985
  name="device_modified",
1112
- field=models.CharField(
1113
- blank=True, max_length=10, verbose_name="Device modified"
1114
- ),
986
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device modified"),
1115
987
  ),
1116
988
  migrations.AlterField(
1117
989
  model_name="stock",
@@ -1137,16 +1009,12 @@ class Migration(migrations.Migration):
1137
1009
  migrations.AlterField(
1138
1010
  model_name="stockcreatelabels",
1139
1011
  name="device_created",
1140
- field=models.CharField(
1141
- blank=True, max_length=10, verbose_name="Device created"
1142
- ),
1012
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device created"),
1143
1013
  ),
1144
1014
  migrations.AlterField(
1145
1015
  model_name="stockcreatelabels",
1146
1016
  name="device_modified",
1147
- field=models.CharField(
1148
- blank=True, max_length=10, verbose_name="Device modified"
1149
- ),
1017
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device modified"),
1150
1018
  ),
1151
1019
  migrations.AlterField(
1152
1020
  model_name="stockcreatelabels",
@@ -1172,16 +1040,12 @@ class Migration(migrations.Migration):
1172
1040
  migrations.AlterField(
1173
1041
  model_name="stockreceiving",
1174
1042
  name="device_created",
1175
- field=models.CharField(
1176
- blank=True, max_length=10, verbose_name="Device created"
1177
- ),
1043
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device created"),
1178
1044
  ),
1179
1045
  migrations.AlterField(
1180
1046
  model_name="stockreceiving",
1181
1047
  name="device_modified",
1182
- field=models.CharField(
1183
- blank=True, max_length=10, verbose_name="Device modified"
1184
- ),
1048
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device modified"),
1185
1049
  ),
1186
1050
  migrations.AlterField(
1187
1051
  model_name="stockreceiving",
@@ -1207,16 +1071,12 @@ class Migration(migrations.Migration):
1207
1071
  migrations.AlterField(
1208
1072
  model_name="subjectpillbottle",
1209
1073
  name="device_created",
1210
- field=models.CharField(
1211
- blank=True, max_length=10, verbose_name="Device created"
1212
- ),
1074
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device created"),
1213
1075
  ),
1214
1076
  migrations.AlterField(
1215
1077
  model_name="subjectpillbottle",
1216
1078
  name="device_modified",
1217
- field=models.CharField(
1218
- blank=True, max_length=10, verbose_name="Device modified"
1219
- ),
1079
+ field=models.CharField(blank=True, max_length=10, verbose_name="Device modified"),
1220
1080
  ),
1221
1081
  migrations.AlterField(
1222
1082
  model_name="subjectpillbottle",
@@ -2,10 +2,10 @@
2
2
 
3
3
  import uuid
4
4
 
5
- import edc_sites.models
6
5
  from django.db import migrations, models
7
6
 
8
7
  import edc_pharmacy.models.prescription
8
+ import edc_sites.models
9
9
 
10
10
 
11
11
  class Migration(migrations.Migration):