clinicedc 2.0.20__py3-none-any.whl → 2.0.22__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.
- {clinicedc-2.0.20.dist-info → clinicedc-2.0.22.dist-info}/METADATA +1 -1
- {clinicedc-2.0.20.dist-info → clinicedc-2.0.22.dist-info}/RECORD +64 -64
- edc_appointment/utils.py +4 -5
- edc_pdf_reports/report.py +2 -2
- edc_reportable/reference_range_evaluator.py +1 -2
- edc_subject_dashboard/middleware.py +2 -3
- edc_subject_dashboard/requisition_labels.py +2 -2
- edc_subject_dashboard/requisition_report.py +10 -6
- edc_subject_dashboard/templatetags/edc_subject_dashboard_extras.py +33 -33
- edc_subject_dashboard/view_mixins/subject_visit_view_mixin.py +1 -1
- edc_subject_dashboard/view_utils/crf_button.py +5 -4
- edc_subject_dashboard/view_utils/go_to_forms_button.py +1 -2
- edc_subject_dashboard/view_utils/subject_screening_button.py +2 -6
- edc_subject_dashboard/views/base_requisition_view.py +2 -3
- edc_subject_dashboard/views/refresh_appointments_view.py +6 -6
- edc_subject_dashboard/views/requisition_print_actions_view.py +5 -5
- edc_subject_dashboard/views/requisition_verify_actions_view.py +1 -1
- edc_timepoint/form_mixin.py +3 -3
- edc_timepoint/timepoint.py +1 -1
- edc_timepoint/timepoint_collection.py +3 -3
- edc_transfer/action_items.py +1 -2
- edc_transfer/form_validators.py +2 -2
- edc_unblinding/action_items.py +2 -4
- edc_unblinding/admin/autocomplete_admin.py +2 -2
- edc_unblinding/admin/unblinding_request_admin.py +2 -2
- edc_unblinding/admin/unblinding_review_admin.py +2 -2
- edc_unblinding/auths.py +11 -5
- edc_unblinding/models/unblinding_review.py +2 -2
- edc_utils/age.py +7 -3
- edc_utils/celery.py +3 -3
- edc_utils/context_processors_check.py +1 -1
- edc_utils/get_datetime_from_env.py +1 -1
- edc_utils/get_static_file.py +24 -14
- edc_utils/logging_filters/ignore_specific_ip_disallowed_host.py +1 -1
- edc_utils/message_in_queue.py +1 -4
- edc_utils/show_urls.py +1 -1
- edc_utils/text.py +1 -1
- edc_view_utils/model_button.py +2 -3
- edc_visit_schedule/exceptions.py +3 -3
- edc_visit_schedule/management/commands/find_invalid_onschedules.py +6 -4
- edc_visit_schedule/modelform_mixins/crf/visit_schedule_crf_modelform_mixin.py +1 -1
- edc_visit_schedule/modelform_mixins/off_schedule_modelform_mixin.py +3 -3
- edc_visit_schedule/modelform_mixins/visit_schedule_non_crf_modelform_mixin.py +1 -1
- edc_visit_schedule/models/signals.py +3 -8
- edc_visit_schedule/ordered_collection.py +4 -8
- edc_visit_schedule/post_migrate_signals.py +2 -2
- edc_visit_schedule/schedule/schedule.py +3 -7
- edc_visit_schedule/schedule/window.py +1 -1
- edc_visit_schedule/simple_model_validator.py +4 -4
- edc_visit_schedule/site_visit_schedules.py +12 -16
- edc_visit_schedule/subject_schedule.py +8 -8
- edc_visit_schedule/system_checks.py +3 -3
- edc_visit_schedule/templatetags/edc_visit_schedule_extras.py +2 -2
- edc_visit_schedule/utils.py +13 -14
- edc_visit_schedule/view_mixins.py +1 -1
- edc_visit_schedule/visit/crf.py +7 -6
- edc_visit_schedule/visit/forms_collection.py +2 -2
- edc_visit_schedule/visit/requisition.py +3 -3
- edc_visit_schedule/visit/visit.py +30 -30
- edc_visit_schedule/visit/window_period.py +3 -2
- edc_visit_schedule/visit_schedule/schedules_collection.py +5 -3
- edc_visit_schedule/visit_schedule/visit_schedule.py +5 -5
- {clinicedc-2.0.20.dist-info → clinicedc-2.0.22.dist-info}/WHEEL +0 -0
- {clinicedc-2.0.20.dist-info → clinicedc-2.0.22.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: clinicedc
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.22
|
|
4
4
|
Summary: A clinical trials data management framework built on Django
|
|
5
5
|
Keywords: django,clinicedc,edc,clinical trials,research,data management,esource
|
|
6
6
|
Author: Erik van Widenfelt, Jonathan Willitts
|
|
@@ -439,7 +439,7 @@ edc_appointment/stubs.py,sha256=sJF2Hq4ri2PjfTMwisacpULfRBzRXIPc0TNlhHGTfwg,1195
|
|
|
439
439
|
edc_appointment/system_checks.py,sha256=f4ue8BS7J6ii6JuUfNjDterSyEShzF3gNbwKX7HAHDQ,429
|
|
440
440
|
edc_appointment/templates/button.html,sha256=1_KluGcdDJMjMmxaqkf0NWy0yKASqB9YtWKnYJuwwOw,451
|
|
441
441
|
edc_appointment/urls.py,sha256=PmIaTbc-MQRb3BxVJ560m4gK0BmGvTUyOqniA2il2j0,634
|
|
442
|
-
edc_appointment/utils.py,sha256=
|
|
442
|
+
edc_appointment/utils.py,sha256=6K0GkLdUJtVxvmHcRNOnLNeFNgAcCtn6pjeVtFmNBzw,31326
|
|
443
443
|
edc_appointment/view_mixins/__init__.py,sha256=2EubqlkD0BWqdKyOGRroFqirvBDk7oolMAa7fmmz_S8,57
|
|
444
444
|
edc_appointment/view_mixins/appointment_view_mixin.py,sha256=0ajpPcVcOHZkXsTUvYS_kI3W0zJItGca5Gab7ORjceg,4469
|
|
445
445
|
edc_appointment/view_utils/__init__.py,sha256=r44ui0AWLVhW2CzDg_2d-9Hu92xHa7miMWvyt8IG23s,50
|
|
@@ -2111,7 +2111,7 @@ edc_pdf_reports/flowables/textbox.py,sha256=u_AgwkWDCqNsOeZo-yNToVL27SDgMkzf7BJm
|
|
|
2111
2111
|
edc_pdf_reports/flowables/textfield.py,sha256=0KWdjPVBdZsmCN5MaHbBzPtAEcE3NPcFOQz3C55pKjs,1144
|
|
2112
2112
|
edc_pdf_reports/model_mixins.py,sha256=K2oFqrvucKmn9vqW7iL023lZODcj4nkDSwwTPhu-i8g,677
|
|
2113
2113
|
edc_pdf_reports/numbered_canvas.py,sha256=5eKBdEX4nUv_ZhSbGkF5tx1gAC_-LadgHREqc3Wr9ak,1907
|
|
2114
|
-
edc_pdf_reports/report.py,sha256
|
|
2114
|
+
edc_pdf_reports/report.py,sha256=-8_lLV9Nvy-Q8fmmbchzmNz1J63gdE-k2G_9BsycVDg,7080
|
|
2115
2115
|
edc_pdf_reports/static/edc_pdf_reports/clinicedc_logo.jpg,sha256=QDy3Gxxe2pfljXuXMf-CNd8lmLcW28s1quCIZRgwaw4,6725
|
|
2116
2116
|
edc_pdf_reports/templates/edc_pdf_reports/pdf_button.html,sha256=pDqtwIAqSUYCKc5HC1EhznhRyzFYNWMQWlxeEV6RHjg,167
|
|
2117
2117
|
edc_pdf_reports/templates/edc_pdf_reports/pdf_intermediate_edc.html,sha256=bDjKXEHhnN5TLp3h0Q6fW0ODZSbu-T6925PwkcDmA-s,1390
|
|
@@ -2929,7 +2929,7 @@ edc_reportable/models/normal_data.py,sha256=AofGm0in2gg5cXNRHEeq08K1BF6iA5z5V66w
|
|
|
2929
2929
|
edc_reportable/models/reference_model_mixins.py,sha256=Afl45lq1hc5i5O11wgZ_tzo0yuUga9jqRki8hw31wzQ,4791
|
|
2930
2930
|
edc_reportable/models/reference_range_collection.py,sha256=zRunJ1NPL9C5Zda-gkuBR46eyd-NJTQwv0pNwvZHLzU,4204
|
|
2931
2931
|
edc_reportable/post_migrate_signals.py,sha256=SgoII3XJgkvTkFVrKvx7BWrSQ-giGqrfCadupklRJl4,717
|
|
2932
|
-
edc_reportable/reference_range_evaluator.py,sha256=
|
|
2932
|
+
edc_reportable/reference_range_evaluator.py,sha256=vJiDeWq8a4P8ZrE8SJpMMh67N2LVA4b1mx8myVHDH1s,11205
|
|
2933
2933
|
edc_reportable/units.py,sha256=zrYjO8MqipIYjRFB8hQJy2HSuo17PwNDlUsekdkH_Vk,1207
|
|
2934
2934
|
edc_reportable/urls.py,sha256=K164a5FVdOBOKt0wBfM4boTvlnGV7KlaE8Xjma5-eh8,309
|
|
2935
2935
|
edc_reportable/utils/__init__.py,sha256=hYzfyJjWw4_tdlpW-ba3Rdg_YaOny5ywJrt5c9mOvU4,952
|
|
@@ -3067,7 +3067,7 @@ edc_subject_dashboard/apps.py,sha256=wbvA8hlNAD77U8k9vWYLpBRBNWCGLDzcb7rKpVFeRJU
|
|
|
3067
3067
|
edc_subject_dashboard/auths.py,sha256=wYxSu_3BLCW94weUN4FoYYQ6dJv9ojZeLECDBLs5PNc,1253
|
|
3068
3068
|
edc_subject_dashboard/dashboard_templates.py,sha256=OUUwFZ0KTAqxBw1DYlaVv5RI2_NxRa5oQxrmwVzq3U4,189
|
|
3069
3069
|
edc_subject_dashboard/locale/sw/LC_MESSAGES/django.po,sha256=lzcHVCkytUQ2Vko7hendgJSoE-p6DnCZSpnrwbgpAQo,1940
|
|
3070
|
-
edc_subject_dashboard/middleware.py,sha256=
|
|
3070
|
+
edc_subject_dashboard/middleware.py,sha256=LLoRoxfBL95IpBu9ZpKpA3EghE7NFHI8Dhms0kwIa5E,851
|
|
3071
3071
|
edc_subject_dashboard/migrations/0001_initial.py,sha256=HNLX2wzHJRZOUeJONktV6LcqMX3ANacbY7QBTSuqcXU,3657
|
|
3072
3072
|
edc_subject_dashboard/migrations/0002_alter_edcpermissions_device_created_and_more.py,sha256=y6ZF9B2doK2fpZnlWnoRfVAq1RpUQVcszAY4M9cztX4,1544
|
|
3073
3073
|
edc_subject_dashboard/migrations/0003_edcpermissions_locale_created_and_more.py,sha256=bkTf8buNs1bXdY5n_YFhri5t2k0KaIookKPzw6uMlAI,986
|
|
@@ -3076,8 +3076,8 @@ edc_subject_dashboard/migrations/0005_alter_edcpermissions_device_created_and_mo
|
|
|
3076
3076
|
edc_subject_dashboard/migrations/0006_alter_edcpermissions_revision.py,sha256=NyY0KIvOB696hjVyACMZ9q4CFC0akBB7W17jRq7u8a8,800
|
|
3077
3077
|
edc_subject_dashboard/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3078
3078
|
edc_subject_dashboard/models.py,sha256=f6P4zXxLQdTAbn2KnFlwfE86Lmzj7Ecp4JJ2F8mrwTc,286
|
|
3079
|
-
edc_subject_dashboard/requisition_labels.py,sha256=
|
|
3080
|
-
edc_subject_dashboard/requisition_report.py,sha256=
|
|
3079
|
+
edc_subject_dashboard/requisition_labels.py,sha256=8TfuqULJhAGGmbCT_koCuwoGOtcm1kXq8hvOtgGtQ9E,2330
|
|
3080
|
+
edc_subject_dashboard/requisition_report.py,sha256=HShdFmYIsNSIzHdXsrB54MJz1PNcPZ7fu2428HgEEcc,13836
|
|
3081
3081
|
edc_subject_dashboard/requisition_verifier.py,sha256=tcpTUIYtvKq9Mh6pUeUSxnjkhDZaQIopjzSZV6b7euc,2795
|
|
3082
3082
|
edc_subject_dashboard/system_checks.py,sha256=W99olKU5kFqnnFyAkUa_QnRXmrHOrUweA3RtEv7j4uE,414
|
|
3083
3083
|
edc_subject_dashboard/templates/edc_subject_dashboard/appointment_in_progress.html,sha256=dEyW9Sibf7WyiYNbfdEDtgtIPsipZDOZPL_DVhB6MKU,241
|
|
@@ -3111,44 +3111,44 @@ edc_subject_dashboard/templates/edc_subject_dashboard/dashboard_button.html,sha2
|
|
|
3111
3111
|
edc_subject_dashboard/templates/edc_subject_dashboard/print_requisition_popover.html,sha256=SyIgpJs0YHvu0xalFdvpz7XZCOVB1WrPRlH3ELOMbbk,1477
|
|
3112
3112
|
edc_subject_dashboard/templates/edc_subject_dashboard/requisition_panel_actions.html,sha256=1mO3fVOksUJSykNPNPzHgXvWgqoF8aFdP8nNu7gbpsg,2422
|
|
3113
3113
|
edc_subject_dashboard/templatetags/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3114
|
-
edc_subject_dashboard/templatetags/edc_subject_dashboard_extras.py,sha256=
|
|
3114
|
+
edc_subject_dashboard/templatetags/edc_subject_dashboard_extras.py,sha256=ZipARZUGleYMF_o3ubex4CVI80J9uyY3ZRzlG8E3HQ4,17366
|
|
3115
3115
|
edc_subject_dashboard/urls.py,sha256=rNJMiKrQbpTnLL4_EIW3wbK4bJDaFvjG798zvnHabCk,1285
|
|
3116
3116
|
edc_subject_dashboard/view_mixins/__init__.py,sha256=kfgJVLmW74gh0ohRm6kXRN-KeQWAMQZ1Plf6tyg--tU,158
|
|
3117
3117
|
edc_subject_dashboard/view_mixins/registered_subject_view_mixin.py,sha256=mWZdATTVGbCKp9pce3wFkhTCQEnzXukPbVvH-WjRI6U,1890
|
|
3118
|
-
edc_subject_dashboard/view_mixins/subject_visit_view_mixin.py,sha256=
|
|
3118
|
+
edc_subject_dashboard/view_mixins/subject_visit_view_mixin.py,sha256=b65pGmBznurd6-swai0IBT6ICMogLeokfp8LVK5dgzs,3258
|
|
3119
3119
|
edc_subject_dashboard/view_utils/__init__.py,sha256=xJbNKTYb7YfTn_EvFGk_yUW0-SdkTpCL9c1V7_Ri9YE,644
|
|
3120
|
-
edc_subject_dashboard/view_utils/crf_button.py,sha256=
|
|
3121
|
-
edc_subject_dashboard/view_utils/go_to_forms_button.py,sha256=
|
|
3120
|
+
edc_subject_dashboard/view_utils/crf_button.py,sha256=Vhh5jYmeoquD4JvlusIrGlQrbaSVeCdjZ-J7_gqt4Xo,766
|
|
3121
|
+
edc_subject_dashboard/view_utils/go_to_forms_button.py,sha256=8tY4LC2CuBxqsmZBC1iwPtFQUAYU0AUlj7wYRpmJSA4,2826
|
|
3122
3122
|
edc_subject_dashboard/view_utils/requisition_button.py,sha256=fS-_AglX3TnU00_MxBBRRzvMVVEpEarVHS8AOtjxuYw,1019
|
|
3123
3123
|
edc_subject_dashboard/view_utils/subject_consent_dashboard_button.py,sha256=HfXb0Y9wPfZZ7MyjTVqwrXfLfhbr2hBprMx4ofjox00,1187
|
|
3124
3124
|
edc_subject_dashboard/view_utils/subject_consent_listboard_button.py,sha256=Qq922qZOhJ-7PvIM3m6jOSvXIU-oO9xzhr0EiWaoKO0,3015
|
|
3125
|
-
edc_subject_dashboard/view_utils/subject_screening_button.py,sha256=
|
|
3125
|
+
edc_subject_dashboard/view_utils/subject_screening_button.py,sha256=Wn9zJem1u0wCyFOcltz5mcr95i0S1QZdoNM4mnqu_nQ,1568
|
|
3126
3126
|
edc_subject_dashboard/view_utils/timepoint_status_button.py,sha256=tXdE8pV38OMnpBNpLHoEhMufMh-41SaE2GCraK5HvzI,3163
|
|
3127
3127
|
edc_subject_dashboard/views/__init__.py,sha256=-PjvFdwPDVNFjlBtwC2rUpONdlQxjhx_N0na9LKMCG4,266
|
|
3128
|
-
edc_subject_dashboard/views/base_requisition_view.py,sha256=
|
|
3129
|
-
edc_subject_dashboard/views/refresh_appointments_view.py,sha256=
|
|
3130
|
-
edc_subject_dashboard/views/requisition_print_actions_view.py,sha256=
|
|
3131
|
-
edc_subject_dashboard/views/requisition_verify_actions_view.py,sha256=
|
|
3128
|
+
edc_subject_dashboard/views/base_requisition_view.py,sha256=OWmoZuRLLwOW8ABvyHYtOHhfQ3l8U9Is7OiS_YEkzpA,1136
|
|
3129
|
+
edc_subject_dashboard/views/refresh_appointments_view.py,sha256=Wsfc2pn44ZhZRAaOchSgMkdoVOCFoFHulQxBhzIfeSw,1125
|
|
3130
|
+
edc_subject_dashboard/views/requisition_print_actions_view.py,sha256=0jPMUODv5IHhEsYJ5-ia5wx2odb-TkhiuPajFZPzJ5g,7433
|
|
3131
|
+
edc_subject_dashboard/views/requisition_verify_actions_view.py,sha256=b9wacujAuXjzDt06i27LtQECIo6rFJrqulKJv2gn1i4,1432
|
|
3132
3132
|
edc_subject_dashboard/views/subject_dashboard_view.py,sha256=vyNHKl1JaACy7ixZCSPtzbn8CLU_CQQh8R1wYk2apvA,1972
|
|
3133
3133
|
edc_subject_dashboard/wsgi.py,sha256=C3xfh4zRCDI3sXViXAMzhEDwlxuuJleTMJrZdXipr5Y,420
|
|
3134
3134
|
edc_timepoint/__init__.py,sha256=e4sjI6ped8ZAMuBKDAllrZZTAw5U4n690MWN1sf-LZ8,87
|
|
3135
3135
|
edc_timepoint/apps.py,sha256=bfAL60xOlaTPmi2cQBvmOEph0RwDUQHEMBYFTpYwDno,1095
|
|
3136
3136
|
edc_timepoint/choices.py,sha256=NQ-hdJwS_CX8bfxQF6RY9O-z9P41Bk5zaQpEvSvdEfg,182
|
|
3137
3137
|
edc_timepoint/constants.py,sha256=COoxO6sAQ1Aw6MtqZWgaFtJiDxpISAz4SzO-1X6SnNA,74
|
|
3138
|
-
edc_timepoint/form_mixin.py,sha256=
|
|
3138
|
+
edc_timepoint/form_mixin.py,sha256=eBKR-7VKSe3pZrca2BUmOrytMl161yWQhrltDk8Gfn8,936
|
|
3139
3139
|
edc_timepoint/model_mixins.py,sha256=01i_YA395MtY3HwetBfDhtHxwwV80FCUOlqdNziTezc,6073
|
|
3140
3140
|
edc_timepoint/models/__init__.py,sha256=uOMJiGRAkgG5ehPUNPmfMVHQB5WJlKd-U4aAybNvA0Y,51
|
|
3141
3141
|
edc_timepoint/models/signals.py,sha256=NFgmQzsydRxAjevdDTitvigssAd2FwK2U6Eq41fKVUU,512
|
|
3142
|
-
edc_timepoint/timepoint.py,sha256=
|
|
3143
|
-
edc_timepoint/timepoint_collection.py,sha256=
|
|
3142
|
+
edc_timepoint/timepoint.py,sha256=3cy04uuvOGgVj0xmttnJIjJcdntMrBfmYYPL2GBb3cs,692
|
|
3143
|
+
edc_timepoint/timepoint_collection.py,sha256=PE04M5Z6WpvmrIGaHnUQeeTnjJ1NQ_WIWxFOb5VAioo,1252
|
|
3144
3144
|
edc_timepoint/timepoint_lookup.py,sha256=tQDJw5R2Ig7BA4nJO7mqVCRQAOibuJO92Kgoh2y3iM8,1726
|
|
3145
3145
|
edc_timepoint/utils.py,sha256=AC6CTqmahCKNTHC1Ma2prldi5JlYFeMj6oOmhZTkeGU,140
|
|
3146
3146
|
edc_transfer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3147
|
-
edc_transfer/action_items.py,sha256=
|
|
3147
|
+
edc_transfer/action_items.py,sha256=DqYNVX7UNbC28lGfFW2i6DeKXw4GZZqc4p7b0n2-XtM,733
|
|
3148
3148
|
edc_transfer/apps.py,sha256=0yhvI8CsTZeza4OOjRQ3y8CAxKIxK5dJRN8wPnEXDp0,149
|
|
3149
3149
|
edc_transfer/choices.py,sha256=Y5dCHTfCIFueJYWWQm0nL_vbWf8sQ01dkCE4n3txGds,181
|
|
3150
3150
|
edc_transfer/constants.py,sha256=oICUq7brwBylRTqEFmUFDfsUb6Nyp-esRqLeeTOF878,87
|
|
3151
|
-
edc_transfer/form_validators.py,sha256=
|
|
3151
|
+
edc_transfer/form_validators.py,sha256=4b6SL9u40Ii6YAS5vl_deL4NVC_UiwKpDpHnTi11HEM,3337
|
|
3152
3152
|
edc_transfer/forms.py,sha256=Nq2vbNJY3-cSJVlRqhK8yFLm4NYzcs6TOmmTvKGUx0A,816
|
|
3153
3153
|
edc_transfer/list_data.py,sha256=VnLqxlcZmoIOrJyrugs248RhzlkQyjaP1J8boZURiZ4,449
|
|
3154
3154
|
edc_transfer/model_mixins.py,sha256=QJemH8zoOkSU7NcEyzE3pKUntQUzFpp8NwjCm8bwrQw,2701
|
|
@@ -3156,15 +3156,15 @@ edc_transfer/modeladmin_mixins.py,sha256=L30YRc3_Zx0jdmcHyuxurA5rvkvKh1NuhwqpsIT
|
|
|
3156
3156
|
edc_transfer/modelform_mixins.py,sha256=MDfkUhxdU_QMc4IzM0j0_4WaBVBhRJDi2PnnobwTiXA,825
|
|
3157
3157
|
edc_transfer/models.py,sha256=m6R5bis5oeZNAKWVQwZ9ZCV5xOQ_QVntuz5tU3t3Wwo,633
|
|
3158
3158
|
edc_unblinding/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3159
|
-
edc_unblinding/action_items.py,sha256=
|
|
3159
|
+
edc_unblinding/action_items.py,sha256=Avp8h5ng5bBrJzNIDgKMjYrlg4bSSmd1cZI-CZ6YJS8,1865
|
|
3160
3160
|
edc_unblinding/admin/__init__.py,sha256=bL6PZOQ2hqQfrHRbQDdeu2oXlk70Cir4cJfsrfWo-9k,223
|
|
3161
|
-
edc_unblinding/admin/autocomplete_admin.py,sha256=
|
|
3162
|
-
edc_unblinding/admin/unblinding_request_admin.py,sha256=
|
|
3163
|
-
edc_unblinding/admin/unblinding_review_admin.py,sha256=
|
|
3161
|
+
edc_unblinding/admin/autocomplete_admin.py,sha256=1qmUe0HyJFk2Y-iSY2Y0sTqf0juBmWKGBjbyDQ5W9Vs,1414
|
|
3162
|
+
edc_unblinding/admin/unblinding_request_admin.py,sha256=PpHpGtjT35NsEjd_Ubp36iW8cDIFb_KCR3c_N6DTz2U,1558
|
|
3163
|
+
edc_unblinding/admin/unblinding_review_admin.py,sha256=LFqQ-KwPQK-lHIe12yWOQSF916gMG8QvfhCNz0-noZc,1114
|
|
3164
3164
|
edc_unblinding/admin_site.py,sha256=fI2Qfnb71dD47RfiWKhXFsueEbWTHOXW9tdjJo4tDDM,173
|
|
3165
3165
|
edc_unblinding/apps.py,sha256=xCm4pdpg5YrOll-Mk0LOLqfHgHBKm1KrYla6u90Op34,229
|
|
3166
3166
|
edc_unblinding/auth_objects.py,sha256=wWckQGaCh4VmuEAmsaLwr-lRJAlvQg-nxrMkw18PLOQ,839
|
|
3167
|
-
edc_unblinding/auths.py,sha256=
|
|
3167
|
+
edc_unblinding/auths.py,sha256=lrawxWwNIBYkx6yQ8_S-A8Fz8wprbGfg9vblKjIZ2Rg,852
|
|
3168
3168
|
edc_unblinding/constants.py,sha256=ULJb-EMh-pI20APRJOf28DC2iniM6mrWNWY3D9gcT5M,96
|
|
3169
3169
|
edc_unblinding/forms/__init__.py,sha256=Zyu4-ATRRGbSTYqoBnxq3GAm34zfXq51wk8iEtEFuWk,116
|
|
3170
3170
|
edc_unblinding/forms/unblinding_request_form.py,sha256=TWMTFJe8rcPqdHajLYKt1zxvZV2KWhd0q1f2v75NWXY,810
|
|
@@ -3188,34 +3188,34 @@ edc_unblinding/migrations/0016_alter_historicalunblindingrequest_revision_and_mo
|
|
|
3188
3188
|
edc_unblinding/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3189
3189
|
edc_unblinding/models/__init__.py,sha256=J9uKxJNPMYKPLOw96xTvvzVvH2rpf60wX-Lk45COals,175
|
|
3190
3190
|
edc_unblinding/models/unblinding_request.py,sha256=HodDIIxpwSQpY1X6Nl-JoUGUisZ_yO6lHPT_EDAHSwg,2256
|
|
3191
|
-
edc_unblinding/models/unblinding_review.py,sha256=
|
|
3191
|
+
edc_unblinding/models/unblinding_review.py,sha256=4OwQn6JWrx3346_0fCyyFBotUoLs6_PgV1rUB_IkJ2Q,1762
|
|
3192
3192
|
edc_unblinding/models/unblinding_user.py,sha256=BOjHLHN1YAJO3oZN5yBz5tA1Cy6FakT5uO_UyisIHj4,713
|
|
3193
3193
|
edc_unblinding/urls.py,sha256=uQYNuDE8QpAmN31hE95BltHDYkMOa8WGIMYcafAh4Bw,304
|
|
3194
3194
|
edc_utils/__init__.py,sha256=ogi8SSiV1t9AvBegWJ-by6QDMioelbA6ZnGNvJ3k9-U,1682
|
|
3195
|
-
edc_utils/age.py,sha256=
|
|
3195
|
+
edc_utils/age.py,sha256=8sxX5PZveuLF3JKrdV2fTzN1F5Qhom_gR-37CzgKAno,2691
|
|
3196
3196
|
edc_utils/apps.py,sha256=PhmjQhf2uRbmIQnvzc_2qp7WqDXpRp6WyojveHI0YHI,221
|
|
3197
|
-
edc_utils/celery.py,sha256=
|
|
3198
|
-
edc_utils/context_processors_check.py,sha256=
|
|
3197
|
+
edc_utils/celery.py,sha256=oDh6JmClxeMgyDZMUOHFF2Dwcx7WqtzZJIYW31QKlyo,1172
|
|
3198
|
+
edc_utils/context_processors_check.py,sha256=E6fAoVDyon-o0r5XQiRteL1XoHkWPg0GqhukiDxyWIA,696
|
|
3199
3199
|
edc_utils/dashboard_middleware_check.py,sha256=scuaB4qwSlErLzv4nwEPLmcLuaZaR6l1OnyurXVsDms,463
|
|
3200
3200
|
edc_utils/date.py,sha256=nFcazebLFW2cGze_vVXSUdWVIsOf_cSlz4xLJ8yldZQ,1261
|
|
3201
3201
|
edc_utils/disable_signals.py,sha256=aAr3nnPeNEgzi2Lf06NZukMOc_N0ODEJ9xeQi8e-l_o,1269
|
|
3202
|
-
edc_utils/get_datetime_from_env.py,sha256=
|
|
3203
|
-
edc_utils/get_static_file.py,sha256=
|
|
3202
|
+
edc_utils/get_datetime_from_env.py,sha256=75cPQVub9lv9j4Hwsk_zQI_W7mSXOnl-st7i6fPE3rA,647
|
|
3203
|
+
edc_utils/get_static_file.py,sha256=uSb6TK-tiaCdoYMsHiNMWkcDt6TtMS6wmsPo_UQd928,988
|
|
3204
3204
|
edc_utils/get_uuid.py,sha256=kcLQX9JpfYBNQtpOxxdKKr-M9C9TDP4_xSRnHgdvpHk,64
|
|
3205
3205
|
edc_utils/logging_filters/__init__.py,sha256=97cn5sz3DXk94FCpiVrTaYcGKpS-Z-bLL-WojS-TZBo,79
|
|
3206
|
-
edc_utils/logging_filters/ignore_specific_ip_disallowed_host.py,sha256=
|
|
3207
|
-
edc_utils/message_in_queue.py,sha256=
|
|
3206
|
+
edc_utils/logging_filters/ignore_specific_ip_disallowed_host.py,sha256=e6XJqYmloOnfqnWjYXvciguUxtRZDCba9Lu_goFyQPY,570
|
|
3207
|
+
edc_utils/message_in_queue.py,sha256=9IiN1GYE57i_-WXoXDpza7TckPKucDhpSArzw3BxhaA,203
|
|
3208
3208
|
edc_utils/paths_for_urlpatterns.py,sha256=dNH41UxqDH-1BcjBgQ2EttlEwL7UttmW7vhlQQ4XcZQ,605
|
|
3209
3209
|
edc_utils/round_up.py,sha256=pwlailrQG9xZGncu9qEPrrC4ElwqaqSNx8pYVa-qSbM,838
|
|
3210
|
-
edc_utils/show_urls.py,sha256=
|
|
3210
|
+
edc_utils/show_urls.py,sha256=WcttdSp-BepHRI4WQYWxsXzxHqHruOb3EH9vNA8292M,3689
|
|
3211
3211
|
edc_utils/sqlite.py,sha256=nFT4x0gxG9K6Eru_8mkwOGZLQV9jKt2tnxbQUHQU7mE,235
|
|
3212
|
-
edc_utils/text.py,sha256=
|
|
3212
|
+
edc_utils/text.py,sha256=18lidD2CE2hSXgtydZFs5H723fW1EZ56JyzG1VEfD3U,3526
|
|
3213
3213
|
edc_view_utils/__init__.py,sha256=wH6dVBlPnKBYW8AlN0YTsTk4dyGCI3POMMCY-hCmxO4,610
|
|
3214
3214
|
edc_view_utils/apps.py,sha256=Fw_b7JzNByXHdk0CHPmIqM9jAIhaI9biTYy_npnNy80,231
|
|
3215
3215
|
edc_view_utils/dashboard_model_button.py,sha256=9K0ooGEB5P-pnm-2vr1KwnU6NXdQ0hhgXQFEd2K0C0U,1889
|
|
3216
3216
|
edc_view_utils/history_button.py,sha256=nd_P_Df0dSflC14r4XnjhK0eq8v8xJZutFIAt5K28MU,1243
|
|
3217
3217
|
edc_view_utils/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3218
|
-
edc_view_utils/model_button.py,sha256=
|
|
3218
|
+
edc_view_utils/model_button.py,sha256=C0XUMJZGX6G-8m-jxCs99WW11f9-PZq0Fg_KzCZF8Bw,4487
|
|
3219
3219
|
edc_view_utils/next_querystring.py,sha256=Rl-M5ZL-GaK3GqPWzvnnn20ssqIMEg1ApiM5AE3Gu5g,1617
|
|
3220
3220
|
edc_view_utils/perms.py,sha256=F8nGUhg0IBggltYptyrYQBLrJIHtgRXlwSlVWp7VEVg,3430
|
|
3221
3221
|
edc_view_utils/prn_button.py,sha256=GzvkAljbTABa4ueOxne5ZvhzGb8b0xBIZkgQgcoC4EQ,125
|
|
@@ -3233,12 +3233,12 @@ edc_visit_schedule/auths.py,sha256=F498GY111anDlK2g4-5_q7qF5MEcJ8bE5OCnimQZhSU,2
|
|
|
3233
3233
|
edc_visit_schedule/baseline.py,sha256=ZXwB8xdT1xFtoyFZ9k_anGUq1mJC6fTOOBu4vu5L8iY,3346
|
|
3234
3234
|
edc_visit_schedule/choices.py,sha256=feq0GogDxFn_MyrnNcynlWeq5QTrXeJOEHA23cRiccQ,304
|
|
3235
3235
|
edc_visit_schedule/constants.py,sha256=4vqZ7MI-4bu9wQ7n7R5hzX2uVwO0ZJZ34uUA3W8yypY,714
|
|
3236
|
-
edc_visit_schedule/exceptions.py,sha256=
|
|
3236
|
+
edc_visit_schedule/exceptions.py,sha256=4og2q40ABfZjrRsZFvkz9dBFAkIVpfBN1d3dUlUhf-o,989
|
|
3237
3237
|
edc_visit_schedule/fieldsets.py,sha256=2fnyh-9qFc8fbXcR6f_QO7lLBWEzoZ6mxEz76PQnDOs,548
|
|
3238
3238
|
edc_visit_schedule/forms.py,sha256=1sGwsK16oEcSAOFEBDR_d97FaoUy1SWJhPn0x2BWk08,356
|
|
3239
3239
|
edc_visit_schedule/management/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3240
3240
|
edc_visit_schedule/management/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3241
|
-
edc_visit_schedule/management/commands/find_invalid_onschedules.py,sha256=
|
|
3241
|
+
edc_visit_schedule/management/commands/find_invalid_onschedules.py,sha256=MJdPgoTXPMzylnNYwq1y5Ks7opin7uKEa_nyxPgzzyM,2057
|
|
3242
3242
|
edc_visit_schedule/migrations/0001_initial.py,sha256=X8zAUE8gKtexzaYMiLub_eUHn8h-5tiQfgldxLCEapo,5382
|
|
3243
3243
|
edc_visit_schedule/migrations/0002_auto_20190305_0123.py,sha256=rCxF93Vy508Cnok6GfXROoBLw3nRUiZpKBlKabW4FK4,1922
|
|
3244
3244
|
edc_visit_schedule/migrations/0003_historicalvisitschedule_visitschedule.py,sha256=bOs3z_XkDmNqjfwNUgyARU036xlv5JfuxEN5V0jkHuY,8978
|
|
@@ -3274,49 +3274,49 @@ edc_visit_schedule/model_mixins/visit_schedule/visit_schedule_methods_model_mixi
|
|
|
3274
3274
|
edc_visit_schedule/model_mixins/visit_schedule/visit_schedule_model_mixins.py,sha256=4OwZgegiQxW1acnVhIOAf3k1wERZa2oxWcH5LgILbUk,736
|
|
3275
3275
|
edc_visit_schedule/modelform_mixins/__init__.py,sha256=B6GNMl01Getf1fu8pKpJhu8bqNaylKsVQv9_NNGdBGw,329
|
|
3276
3276
|
edc_visit_schedule/modelform_mixins/crf/__init__.py,sha256=SvdBJbRkdxvAyc-2WYOjenKYdGpbz2IWpWT5JIT328s,79
|
|
3277
|
-
edc_visit_schedule/modelform_mixins/crf/visit_schedule_crf_modelform_mixin.py,sha256=
|
|
3278
|
-
edc_visit_schedule/modelform_mixins/off_schedule_modelform_mixin.py,sha256=
|
|
3279
|
-
edc_visit_schedule/modelform_mixins/visit_schedule_non_crf_modelform_mixin.py,sha256=
|
|
3277
|
+
edc_visit_schedule/modelform_mixins/crf/visit_schedule_crf_modelform_mixin.py,sha256=PBWjczl15yS9wjbqZhdKLkmiRwK_iqBPcFbEAEaI2PI,2422
|
|
3278
|
+
edc_visit_schedule/modelform_mixins/off_schedule_modelform_mixin.py,sha256=GT6y7mwq2KK0z1625gCpjE6HtKqTqn-w1pdNY8Sdvcg,2202
|
|
3279
|
+
edc_visit_schedule/modelform_mixins/visit_schedule_non_crf_modelform_mixin.py,sha256=dW85SIQXMCS8pAojpNCJAAPEkjqDfSoj31qwfXz-XpM,3258
|
|
3280
3280
|
edc_visit_schedule/models/__init__.py,sha256=MdSbyV73oGdiNLgyvIXlBKSvn6tmJJjARM9ZCzcxLpc,278
|
|
3281
3281
|
edc_visit_schedule/models/offschedule.py,sha256=XbJF8PcmB_3eYHaGVTSL_iqmJIOW41jsVvk2565xpxI,389
|
|
3282
3282
|
edc_visit_schedule/models/onschedule.py,sha256=Q-MIxrjLiBYa51ZYjMoJmfhS5s163LbSo0HF9RIReX0,365
|
|
3283
|
-
edc_visit_schedule/models/signals.py,sha256=
|
|
3283
|
+
edc_visit_schedule/models/signals.py,sha256=o3CCDX8XHPOk4EhFvpBOSEZazQl_n92h0fnpjmjcTXE,2825
|
|
3284
3284
|
edc_visit_schedule/models/subject_schedule_history.py,sha256=HukebXHhw7RBjt5o2EAMCGz8k4Cj82nj5qmfdJlgSFI,3729
|
|
3285
3285
|
edc_visit_schedule/models/visit_schedule.py,sha256=W5_L_hQ90v5th7qLyKNJICaVDXXoZeJAr5eO-ZLHLVY,2094
|
|
3286
3286
|
edc_visit_schedule/navbars.py,sha256=RWx57OD-KxpPh0ihRyangGGiOOR7vfxRFjPCj8C5uF4,763
|
|
3287
|
-
edc_visit_schedule/ordered_collection.py,sha256=
|
|
3288
|
-
edc_visit_schedule/post_migrate_signals.py,sha256=
|
|
3287
|
+
edc_visit_schedule/ordered_collection.py,sha256=Ira51rBxDhxhjsSmg7xaES9_fRu6c4Z1V47-pJs0EGI,1602
|
|
3288
|
+
edc_visit_schedule/post_migrate_signals.py,sha256=MmhFktkcDG4xCRQEgjjbaDe0AOe2UriZ6OHsxs6EUc0,782
|
|
3289
3289
|
edc_visit_schedule/schedule/__init__.py,sha256=bzyYW9y3pPCFTjwjvkUVgkW3d1g1D2SCNfgE9bnLjII,101
|
|
3290
|
-
edc_visit_schedule/schedule/schedule.py,sha256=
|
|
3290
|
+
edc_visit_schedule/schedule/schedule.py,sha256=ROUNin-k1oJVtx_wEXwlj5xrhTw3I_6VeeqsovJSdFo,14762
|
|
3291
3291
|
edc_visit_schedule/schedule/visit_collection.py,sha256=9OJKrLtx-H0eL9oo0dsRqYGPICiAMqEF4xIhhlinx0A,2033
|
|
3292
|
-
edc_visit_schedule/schedule/window.py,sha256=
|
|
3293
|
-
edc_visit_schedule/simple_model_validator.py,sha256=
|
|
3294
|
-
edc_visit_schedule/site_visit_schedules.py,sha256=
|
|
3295
|
-
edc_visit_schedule/subject_schedule.py,sha256=
|
|
3296
|
-
edc_visit_schedule/system_checks.py,sha256=
|
|
3292
|
+
edc_visit_schedule/schedule/window.py,sha256=gsXW7z3P84h6kWX7e7CABmalyLGgbbIwe0Q6atIbyEI,5229
|
|
3293
|
+
edc_visit_schedule/simple_model_validator.py,sha256=5lMyVrrlAy4HxLmAqM3he7D2ssCJoyjAWDWnFmJwRT0,789
|
|
3294
|
+
edc_visit_schedule/site_visit_schedules.py,sha256=U6h3ZKiEME41oyzjvpqTun6cieVLf9gfS7IXm7LY2pU,13078
|
|
3295
|
+
edc_visit_schedule/subject_schedule.py,sha256=gai8sQ9nek3KEu27GL656twm0zKP3I3g510effNdIT8,16552
|
|
3296
|
+
edc_visit_schedule/system_checks.py,sha256=Gp5DXTThRCFXyZ3dlN2S8FJPz16weonpjedcy6XIIms,9300
|
|
3297
3297
|
edc_visit_schedule/templates/edc_visit_schedule/home.html,sha256=RqtGsq6-zXi43jU0iSv24-xsIXXHkuiHjJvF-yqDyjA,1112
|
|
3298
3298
|
edc_visit_schedule/templates/edc_visit_schedule/subject_schedule_footer_row.html,sha256=TJ23XPi1ji-veMhTuuYErjjtFqDXBHKzly5SxQYPkOM,719
|
|
3299
3299
|
edc_visit_schedule/templates/edc_visit_schedule/visit_schedule.html,sha256=vX8vsYcR12f5tbiM65yWH7zuRy0Cm7In8GCLb5v8hxI,4926
|
|
3300
3300
|
edc_visit_schedule/templatetags/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3301
|
-
edc_visit_schedule/templatetags/edc_visit_schedule_extras.py,sha256=
|
|
3301
|
+
edc_visit_schedule/templatetags/edc_visit_schedule_extras.py,sha256=hly2p9KJkm7qzO-ePgyDzxryWbKTstdH7LgagaKkmyw,2857
|
|
3302
3302
|
edc_visit_schedule/typing_stubs.py,sha256=NCrQqqL0Z9l296gh_RgdHdnN7mhGBGMIoHQ6u92sy78,247
|
|
3303
3303
|
edc_visit_schedule/urls.py,sha256=x5Q8_HGtN2GMXY5XVi2E1QiRMcGaiGWRBah5SXy-svI,973
|
|
3304
|
-
edc_visit_schedule/utils.py,sha256=
|
|
3305
|
-
edc_visit_schedule/view_mixins.py,sha256=
|
|
3304
|
+
edc_visit_schedule/utils.py,sha256=TFmPeIb6-141UzLok56uy6iVWWFJj-KK2B5JvSx6GkM,13870
|
|
3305
|
+
edc_visit_schedule/view_mixins.py,sha256=xAFqK04hIiQU5_bpv9oC5XMLgzvCi72cUORp55ChueY,2294
|
|
3306
3306
|
edc_visit_schedule/views/__init__.py,sha256=r_po9VhEv8GN_rqvYsHnV0WKpA5s7cgt-fYU7FjGjZA,83
|
|
3307
3307
|
edc_visit_schedule/views/home_view.py,sha256=nbwQVkQPK7yWrMpo8NftqnN1zu9DpSVkNHErdr8EZBM,350
|
|
3308
3308
|
edc_visit_schedule/views/visit_schedule_view.py,sha256=-iyz7Rvu3l1sLl3yedAKFrSnrYSH_frPMPn9VvDaWwE,1038
|
|
3309
3309
|
edc_visit_schedule/visit/__init__.py,sha256=Nvj3dwkUhwNLi5UNFit4rBJMH5Kk_J4VMuz4wUSLYbQ,323
|
|
3310
|
-
edc_visit_schedule/visit/crf.py,sha256=
|
|
3310
|
+
edc_visit_schedule/visit/crf.py,sha256=mhuqzZLOB_C5GC1T1xIfJZrMWy18ZsigaIGtV_3g-JU,1985
|
|
3311
3311
|
edc_visit_schedule/visit/crf_collection.py,sha256=l3lRANKR3x6BZudCux9COJS_4nnuWXedhbOiTx6VJI0,771
|
|
3312
|
-
edc_visit_schedule/visit/forms_collection.py,sha256=
|
|
3313
|
-
edc_visit_schedule/visit/requisition.py,sha256=
|
|
3312
|
+
edc_visit_schedule/visit/forms_collection.py,sha256=f6yY2kXkPK4Xyjr-BEligZhCfxih0LxdbBuAaMRN5hM,3735
|
|
3313
|
+
edc_visit_schedule/visit/requisition.py,sha256=wab3WymZH54yNwppuMqdPUUQkM1sk2a5_43c2NlLH2I,2124
|
|
3314
3314
|
edc_visit_schedule/visit/requisition_collection.py,sha256=Ne3brfS-tmPB1y6YVNzhfRbDrEPRWkO_qPzTOXh3E0M,823
|
|
3315
|
-
edc_visit_schedule/visit/visit.py,sha256=
|
|
3316
|
-
edc_visit_schedule/visit/window_period.py,sha256=
|
|
3315
|
+
edc_visit_schedule/visit/visit.py,sha256=d0eZWoSwVF8e6WoeIONkhcxQaEalK80tiwkP26Zu37U,10833
|
|
3316
|
+
edc_visit_schedule/visit/window_period.py,sha256=aGPWofttbIQ8AyMHDaVmTdVxvUeYtGyhjcLnN1cIlE8,1665
|
|
3317
3317
|
edc_visit_schedule/visit_schedule/__init__.py,sha256=MHyJ8v4a9adimeBxMQHyr7AMkduekafHBtTKJavlmVg,282
|
|
3318
|
-
edc_visit_schedule/visit_schedule/schedules_collection.py,sha256=
|
|
3319
|
-
edc_visit_schedule/visit_schedule/visit_schedule.py,sha256=
|
|
3318
|
+
edc_visit_schedule/visit_schedule/schedules_collection.py,sha256=bf_N8ax0uPpe8q2Det655ZyRBjZkgQ8IW8KHYGiHPk8,1357
|
|
3319
|
+
edc_visit_schedule/visit_schedule/visit_schedule.py,sha256=YIoVHzB5hTf2nbMkdOuyLV1QypRPDhWa5DC9585cIVw,5780
|
|
3320
3320
|
edc_visit_schedule/wsgi.py,sha256=ToL_Ox7yQ30uUMBj5Ev2q_im2dl6mWKdqsUyJWeyFWU,397
|
|
3321
3321
|
edc_visit_tracking/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3322
3322
|
edc_visit_tracking/action_items.py,sha256=lWf2-lNgz3QxkvbHW3j7YpZFbwqZwUvI_qDaAR4SWWI,1216
|
|
@@ -3406,7 +3406,7 @@ edc_vitals/models/fields/waist_circumference.py,sha256=fZcHFDdEwWLjIVLktKrFCD9UU
|
|
|
3406
3406
|
edc_vitals/models/fields/weight.py,sha256=zo9_9e3Cpu0UqoRbWS-iDkcDo6fK80b1dDQy4x4MyxE,921
|
|
3407
3407
|
edc_vitals/utils.py,sha256=vXid44KUXxeaSyund_y5MNXc5DFJs052_PwUAjszE2k,1384
|
|
3408
3408
|
edc_vitals/validators.py,sha256=vNiElWMs0rRnHRNuVoPLRf0rW_C_0xcfUyep1Y_Si5s,156
|
|
3409
|
-
clinicedc-2.0.
|
|
3410
|
-
clinicedc-2.0.
|
|
3411
|
-
clinicedc-2.0.
|
|
3412
|
-
clinicedc-2.0.
|
|
3409
|
+
clinicedc-2.0.22.dist-info/licenses/LICENSE,sha256=jOtLnuWt7d5Hsx6XXB2QxzrSe2sWWh3NgMfFRetluQM,35147
|
|
3410
|
+
clinicedc-2.0.22.dist-info/WHEEL,sha256=-neZj6nU9KAMg2CnCY6T3w8J53nx1kFGw_9HfoSzM60,79
|
|
3411
|
+
clinicedc-2.0.22.dist-info/METADATA,sha256=dFNOxUA-89V0DfvPPnHib7ZoJL3H0A3OADbHgb1FjEM,15755
|
|
3412
|
+
clinicedc-2.0.22.dist-info/RECORD,,
|
edc_appointment/utils.py
CHANGED
|
@@ -744,9 +744,9 @@ def update_appt_status_for_timepoint(related_visit: RelatedVisitModel) -> None:
|
|
|
744
744
|
|
|
745
745
|
|
|
746
746
|
def refresh_appointments(
|
|
747
|
-
subject_identifier: str
|
|
748
|
-
visit_schedule_name: str
|
|
749
|
-
schedule_name: str
|
|
747
|
+
subject_identifier: str,
|
|
748
|
+
visit_schedule_name: str,
|
|
749
|
+
schedule_name: str,
|
|
750
750
|
request: WSGIRequest | None = None,
|
|
751
751
|
warn_only: bool | None = None,
|
|
752
752
|
) -> tuple[str, str]:
|
|
@@ -768,7 +768,7 @@ def refresh_appointments(
|
|
|
768
768
|
% dict(error_msg=str(e)),
|
|
769
769
|
)
|
|
770
770
|
elif warn_only:
|
|
771
|
-
warnings.warn(str(e))
|
|
771
|
+
warnings.warn(str(e), stacklevel=2)
|
|
772
772
|
else:
|
|
773
773
|
raise
|
|
774
774
|
else:
|
|
@@ -832,7 +832,6 @@ def validate_date_is_on_clinic_day(
|
|
|
832
832
|
and calendar.weekday(appt_date.year, appt_date.month, appt_date.day)
|
|
833
833
|
not in clinic_days
|
|
834
834
|
):
|
|
835
|
-
|
|
836
835
|
days_str = [day_abbr[d] for d in clinic_days]
|
|
837
836
|
days_str = []
|
|
838
837
|
for d in clinic_days:
|
edc_pdf_reports/report.py
CHANGED
|
@@ -33,7 +33,7 @@ class Report(ABC):
|
|
|
33
33
|
)
|
|
34
34
|
default_numbered_canvas = NumberedCanvas
|
|
35
35
|
|
|
36
|
-
default_page = dict(
|
|
36
|
+
default_page = dict( # noqa: RUF012
|
|
37
37
|
rightMargin=0.5 * cm,
|
|
38
38
|
leftMargin=0.5 * cm,
|
|
39
39
|
topMargin=1.5 * cm,
|
|
@@ -117,7 +117,7 @@ class Report(ABC):
|
|
|
117
117
|
def draw_header(self, canvas, doc):
|
|
118
118
|
pass
|
|
119
119
|
|
|
120
|
-
def draw_footer(self, canvas, doc):
|
|
120
|
+
def draw_footer(self, canvas, doc): # noqa: ARG002
|
|
121
121
|
styles = getSampleStyleSheet()
|
|
122
122
|
styles.add(ParagraphStyle(name="header", fontSize=6, alignment=TA_CENTER))
|
|
123
123
|
width, _ = A4
|
|
@@ -8,10 +8,9 @@ class DashboardMiddleware:
|
|
|
8
8
|
self.get_response = get_response
|
|
9
9
|
|
|
10
10
|
def __call__(self, request):
|
|
11
|
-
|
|
12
|
-
return response
|
|
11
|
+
return self.get_response(request)
|
|
13
12
|
|
|
14
|
-
def process_view(self, request, *args):
|
|
13
|
+
def process_view(self, request, *args): # noqa: ARG002
|
|
15
14
|
"""Adds/Updates references to templates."""
|
|
16
15
|
try:
|
|
17
16
|
template_data = settings.SUBJECT_DASHBOARD_BASE_TEMPLATES
|
|
@@ -16,11 +16,11 @@ class RequisitionLabels:
|
|
|
16
16
|
self.requisitions_not_printed = []
|
|
17
17
|
self.appointment = appointment
|
|
18
18
|
for metadata in requisition_metadata.filter(panel_name__in=panel_names):
|
|
19
|
-
panel =
|
|
19
|
+
panel = next(
|
|
20
20
|
r
|
|
21
21
|
for r in appointment.related_visit.visit.all_requisitions
|
|
22
22
|
if r.panel.name == metadata.panel_name
|
|
23
|
-
|
|
23
|
+
).panel
|
|
24
24
|
requisition = self.get_or_create_requisition(panel=panel, user=user)
|
|
25
25
|
if requisition.is_drawn != NO:
|
|
26
26
|
item_count = requisition.item_count or 1
|
|
@@ -7,6 +7,7 @@ from reportlab.lib import colors
|
|
|
7
7
|
from reportlab.lib.units import cm, mm
|
|
8
8
|
from reportlab.platypus import Paragraph, Spacer, Table, TableStyle
|
|
9
9
|
|
|
10
|
+
from edc_appointment.models import Appointment
|
|
10
11
|
from edc_constants.constants import YES
|
|
11
12
|
from edc_identifier.utils import convert_to_human_readable
|
|
12
13
|
from edc_lab.model_mixins import RequisitionModelMixin
|
|
@@ -17,8 +18,9 @@ from edc_pdf_reports import Report
|
|
|
17
18
|
class RequisitionReport(Report):
|
|
18
19
|
def __init__(
|
|
19
20
|
self,
|
|
20
|
-
|
|
21
|
-
|
|
21
|
+
*,
|
|
22
|
+
appointment: Appointment,
|
|
23
|
+
selected_panel_names: list[str],
|
|
22
24
|
consignee=None,
|
|
23
25
|
request=None,
|
|
24
26
|
**kwargs,
|
|
@@ -34,7 +36,10 @@ class RequisitionReport(Report):
|
|
|
34
36
|
self.contact_name = f"{self.user.first_name} {self.user.last_name}"
|
|
35
37
|
self.image_folder = mkdtemp()
|
|
36
38
|
self.timestamp = timezone.now().strftime("%Y%m%d%H%M%S")
|
|
37
|
-
|
|
39
|
+
|
|
40
|
+
@property
|
|
41
|
+
def report_filename(self) -> str:
|
|
42
|
+
return f"requisition_{self.timestamp}.pdf"
|
|
38
43
|
|
|
39
44
|
@property
|
|
40
45
|
def shipper(self):
|
|
@@ -46,7 +51,7 @@ class RequisitionReport(Report):
|
|
|
46
51
|
shipper = Shipper()
|
|
47
52
|
return shipper
|
|
48
53
|
|
|
49
|
-
def get_report_story(self, **kwargs):
|
|
54
|
+
def get_report_story(self, **kwargs): # noqa: ARG002
|
|
50
55
|
story = [
|
|
51
56
|
Paragraph(
|
|
52
57
|
"PATIENT SPECIMEN REQUISITION / MANIFEST",
|
|
@@ -283,8 +288,7 @@ class RequisitionReport(Report):
|
|
|
283
288
|
|
|
284
289
|
@property
|
|
285
290
|
def consignee_data(self):
|
|
286
|
-
|
|
287
|
-
return data
|
|
291
|
+
return self.consignee.__dict__
|
|
288
292
|
|
|
289
293
|
@staticmethod
|
|
290
294
|
def formatted_address(**kwargs):
|
|
@@ -77,8 +77,8 @@ class SubjectDashboardExtrasError(Exception):
|
|
|
77
77
|
|
|
78
78
|
@register.inclusion_tag("edc_subject_dashboard/appointment_in_progress.html")
|
|
79
79
|
def appointment_in_progress(
|
|
80
|
-
subject_identifier: str = None,
|
|
81
|
-
visit_schedule: VisitSchedule = None,
|
|
80
|
+
subject_identifier: str | None = None,
|
|
81
|
+
visit_schedule: VisitSchedule | None = None,
|
|
82
82
|
schedule: Schedule = None,
|
|
83
83
|
) -> dict[str, str]:
|
|
84
84
|
"""Returns the context with the visit code of the appointment in
|
|
@@ -136,15 +136,15 @@ def requisition_panel_actions(context, requisitions=None):
|
|
|
136
136
|
)
|
|
137
137
|
def print_requisition_popover(context):
|
|
138
138
|
C = namedtuple("Consignee", "pk name")
|
|
139
|
-
consignees = [
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
139
|
+
context["consignees"] = [
|
|
140
|
+
C(str(consignee.pk), consignee.name)
|
|
141
|
+
for consignee in django_apps.get_model("edc_lab.Consignee").objects.all()
|
|
142
|
+
]
|
|
143
143
|
return context
|
|
144
144
|
|
|
145
145
|
|
|
146
146
|
@register.inclusion_tag("edc_subject_dashboard/appointment_status.html")
|
|
147
|
-
def render_appointment_status_icon(appt_status: str = None) -> dict[str, str]:
|
|
147
|
+
def render_appointment_status_icon(appt_status: str | None = None) -> dict[str, str]:
|
|
148
148
|
return dict(
|
|
149
149
|
appt_status=appt_status,
|
|
150
150
|
NEW_APPT=NEW_APPT,
|
|
@@ -159,7 +159,7 @@ def render_appointment_status_icon(appt_status: str = None) -> dict[str, str]:
|
|
|
159
159
|
@register.inclusion_tag(
|
|
160
160
|
"edc_subject_dashboard/dashboard/crf_totals.html",
|
|
161
161
|
)
|
|
162
|
-
def render_crf_totals(appointment: Appointment = None) -> dict[str, bool | int]:
|
|
162
|
+
def render_crf_totals(appointment: Appointment | None = None) -> dict[str, bool | int]:
|
|
163
163
|
helper = MetadataHelper(appointment)
|
|
164
164
|
skipped: bool = False
|
|
165
165
|
show_totals: bool = False
|
|
@@ -184,7 +184,7 @@ def render_crf_totals(appointment: Appointment = None) -> dict[str, bool | int]:
|
|
|
184
184
|
num_keyed = crf_keyed + requisition_keyed
|
|
185
185
|
num_total = crf_total + requisition_total
|
|
186
186
|
if appointment.related_visit:
|
|
187
|
-
show_totals =
|
|
187
|
+
show_totals = not (num_keyed != 0 and num_keyed == num_total)
|
|
188
188
|
complete = num_keyed != 0 and num_keyed == num_total
|
|
189
189
|
return dict(
|
|
190
190
|
show_totals=show_totals,
|
|
@@ -202,10 +202,10 @@ def render_crf_totals(appointment: Appointment = None) -> dict[str, bool | int]:
|
|
|
202
202
|
)
|
|
203
203
|
def render_crf_button_group(
|
|
204
204
|
context,
|
|
205
|
-
model_obj: CrfMetadata = None,
|
|
206
|
-
appointment: Appointment = None,
|
|
207
|
-
registered_subject: RegisteredSubject = None,
|
|
208
|
-
visit_schedule: VisitScheduleModel = None,
|
|
205
|
+
model_obj: CrfMetadata | None = None,
|
|
206
|
+
appointment: Appointment | None = None,
|
|
207
|
+
registered_subject: RegisteredSubject | None = None,
|
|
208
|
+
visit_schedule: VisitScheduleModel | None = None,
|
|
209
209
|
):
|
|
210
210
|
"""Prepare context data to render CRF, History, and Query
|
|
211
211
|
dashboard buttons.
|
|
@@ -238,10 +238,10 @@ def render_crf_button_group(
|
|
|
238
238
|
)
|
|
239
239
|
def render_requisition_button_group(
|
|
240
240
|
context,
|
|
241
|
-
model_obj: CrfMetadata = None,
|
|
242
|
-
appointment: Appointment = None,
|
|
243
|
-
registered_subject: RegisteredSubject = None,
|
|
244
|
-
visit_schedule: VisitScheduleModel = None,
|
|
241
|
+
model_obj: CrfMetadata | None = None,
|
|
242
|
+
appointment: Appointment | None = None,
|
|
243
|
+
registered_subject: RegisteredSubject | None = None,
|
|
244
|
+
visit_schedule: VisitScheduleModel | None = None,
|
|
245
245
|
):
|
|
246
246
|
# if still using deprecated ModelWrapper, get model instance
|
|
247
247
|
# from model_wrapper
|
|
@@ -281,7 +281,7 @@ def render_prn_button(context, model_obj, model_name: str) -> dict:
|
|
|
281
281
|
"edc_subject_dashboard/buttons/appointment_button.html",
|
|
282
282
|
takes_context=True,
|
|
283
283
|
)
|
|
284
|
-
def render_appointment_button(context, appointment: Appointment = None):
|
|
284
|
+
def render_appointment_button(context, appointment: Appointment | None = None):
|
|
285
285
|
# if still using deprecated ModelWrapper, get model instance
|
|
286
286
|
# from model_wrapper
|
|
287
287
|
appointment = getattr(appointment, "object", appointment)
|
|
@@ -297,7 +297,7 @@ def render_appointment_button(context, appointment: Appointment = None):
|
|
|
297
297
|
"edc_subject_dashboard/buttons/appointment_button.html",
|
|
298
298
|
takes_context=True,
|
|
299
299
|
)
|
|
300
|
-
def render_related_visit_button(context, appointment: Appointment = None):
|
|
300
|
+
def render_related_visit_button(context, appointment: Appointment | None = None):
|
|
301
301
|
# if still using deprecated ModelWrapper, get model instance
|
|
302
302
|
# from model_wrapper
|
|
303
303
|
appointment = getattr(appointment, "object", appointment)
|
|
@@ -317,7 +317,7 @@ def render_related_visit_button(context, appointment: Appointment = None):
|
|
|
317
317
|
"edc_subject_dashboard/buttons/forms_button.html",
|
|
318
318
|
takes_context=True,
|
|
319
319
|
)
|
|
320
|
-
def render_gotoforms_button(context, appointment: Appointment = None):
|
|
320
|
+
def render_gotoforms_button(context, appointment: Appointment | None = None):
|
|
321
321
|
# if still using deprecated ModelWrapper, get model instance
|
|
322
322
|
# from model_wrapper
|
|
323
323
|
appointment: Appointment = getattr(appointment, "object", appointment)
|
|
@@ -337,7 +337,7 @@ def render_gotoforms_button(context, appointment: Appointment = None):
|
|
|
337
337
|
"edc_subject_dashboard/buttons/appointment_button.html",
|
|
338
338
|
takes_context=True,
|
|
339
339
|
)
|
|
340
|
-
def render_timepoint_status_button(context, appointment: Appointment = None):
|
|
340
|
+
def render_timepoint_status_button(context, appointment: Appointment | None = None):
|
|
341
341
|
btn = TimepointStatusButton(
|
|
342
342
|
model_obj=appointment,
|
|
343
343
|
user=context["user"],
|
|
@@ -350,9 +350,9 @@ def render_timepoint_status_button(context, appointment: Appointment = None):
|
|
|
350
350
|
"edc_subject_dashboard/buttons/subject_consent_button.html",
|
|
351
351
|
takes_context=True,
|
|
352
352
|
)
|
|
353
|
-
def render_subject_listboard_consent_button(
|
|
353
|
+
def render_subject_listboard_consent_button( # noqa: UP047
|
|
354
354
|
context,
|
|
355
|
-
subject_screening: ScreeningModel = None,
|
|
355
|
+
subject_screening: ScreeningModel | None = None,
|
|
356
356
|
next_url_name: str | None = None,
|
|
357
357
|
):
|
|
358
358
|
"""A subject consent button to appear on the subject listboard.
|
|
@@ -372,10 +372,10 @@ def render_subject_listboard_consent_button(
|
|
|
372
372
|
"edc_subject_dashboard/buttons/subject_consent_button.html",
|
|
373
373
|
takes_context=True,
|
|
374
374
|
)
|
|
375
|
-
def render_subject_consent_dashboard_button(
|
|
375
|
+
def render_subject_consent_dashboard_button( # noqa: UP047
|
|
376
376
|
context,
|
|
377
|
-
consent: ConsentModel = None,
|
|
378
|
-
appointment: Appointment = None,
|
|
377
|
+
consent: ConsentModel | None = None,
|
|
378
|
+
appointment: Appointment | None = None,
|
|
379
379
|
next_url_name: str | None = None,
|
|
380
380
|
):
|
|
381
381
|
"""A subject consent button to appear on the subject dashboard
|
|
@@ -398,7 +398,7 @@ def render_subject_consent_dashboard_button(
|
|
|
398
398
|
takes_context=True,
|
|
399
399
|
)
|
|
400
400
|
def render_unscheduled_appointment_button(
|
|
401
|
-
context, appointment: Appointment = None, view_appointment: bool = None
|
|
401
|
+
context, appointment: Appointment | None = None, view_appointment: bool | None = None
|
|
402
402
|
):
|
|
403
403
|
show_button = False
|
|
404
404
|
anchor_id: str | None = None
|
|
@@ -477,9 +477,9 @@ def render_subject_schedule_button(
|
|
|
477
477
|
)
|
|
478
478
|
def render_refresh_appointments_button(
|
|
479
479
|
context,
|
|
480
|
-
subject_identifier: str = None,
|
|
481
|
-
visit_schedule_name: str = None,
|
|
482
|
-
schedule_name: str = None,
|
|
480
|
+
subject_identifier: str | None = None,
|
|
481
|
+
visit_schedule_name: str | None = None,
|
|
482
|
+
schedule_name: str | None = None,
|
|
483
483
|
) -> dict:
|
|
484
484
|
if context["request"].user.userprofile.is_multisite_viewer or context[
|
|
485
485
|
"request"
|
|
@@ -503,9 +503,9 @@ def render_refresh_appointments_button(
|
|
|
503
503
|
)
|
|
504
504
|
def render_refresh_data_collection_schedule_button(
|
|
505
505
|
context,
|
|
506
|
-
related_visit_id: str = None,
|
|
507
|
-
visit_schedule_name: str = None,
|
|
508
|
-
schedule_name: str = None,
|
|
506
|
+
related_visit_id: str | None = None,
|
|
507
|
+
visit_schedule_name: str | None = None,
|
|
508
|
+
schedule_name: str | None = None,
|
|
509
509
|
) -> dict:
|
|
510
510
|
if (
|
|
511
511
|
context["request"].user.userprofile.is_multisite_viewer
|
|
@@ -19,9 +19,10 @@ class CrfButton(DashboardModelButton):
|
|
|
19
19
|
@property
|
|
20
20
|
def disabled(self) -> str:
|
|
21
21
|
disabled = "disabled"
|
|
22
|
-
if (
|
|
22
|
+
if (
|
|
23
|
+
(not self.model_obj and self.perms.add)
|
|
24
|
+
or self.perms.change
|
|
25
|
+
or (self.perms.view and self.model_obj)
|
|
26
|
+
):
|
|
23
27
|
disabled = ""
|
|
24
|
-
elif self.perms.view:
|
|
25
|
-
if self.model_obj:
|
|
26
|
-
disabled = ""
|
|
27
28
|
return disabled
|