meta-edc 0.3.6__py3-none-any.whl → 0.3.15__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- meta_auth/auth_objects.py +10 -3
- meta_consent/baker_recipes.py +4 -4
- meta_consent/consents.py +1 -1
- meta_consent/migrations/0025_alter_historicalsubjectconsent_first_name_and_more.py +151 -0
- meta_consent/models/signals.py +16 -13
- meta_consent/models/subject_consent_v1.py +1 -3
- meta_consent/tests/tests/test_form_validators.py +1 -1
- meta_dashboard/templates/meta_dashboard/bootstrap3/screening/listboard.html +4 -4
- meta_dashboard/templates/meta_dashboard/bootstrap3/subject/listboard.html +1 -2
- meta_edc/settings/debug.py +9 -9
- meta_edc/settings/defaults.py +25 -18
- meta_edc/settings/live.py +1 -9
- meta_edc/settings/uat.py +1 -14
- meta_edc/templates/meta_edc/bootstrap3/home.html +8 -5
- meta_edc/tests/test_settings.py +176 -0
- meta_edc/tests/tests/test_endpoints.py +20 -19
- meta_edc/urls.py +1 -1
- {meta_edc-0.3.6.dist-info → meta_edc-0.3.15.dist-info}/METADATA +5 -4
- {meta_edc-0.3.6.dist-info → meta_edc-0.3.15.dist-info}/RECORD +128 -74
- meta_prn/action_items.py +44 -2
- meta_prn/admin/__init__.py +3 -0
- meta_prn/admin/dm_referral_admin.py +49 -0
- meta_prn/admin/offschedule_dm_referral_admin.py +47 -0
- meta_prn/admin/onschedule_dm_referral_admin.py +39 -0
- meta_prn/baker_recipes.py +8 -1
- meta_prn/choices.py +2 -1
- meta_prn/constants.py +4 -1
- meta_prn/forms/__init__.py +2 -0
- meta_prn/forms/dm_referral_form.py +40 -0
- meta_prn/forms/offschedule_dm_referral_form.py +35 -0
- meta_prn/forms/offschedule_form.py +6 -0
- meta_prn/migrations/0057_historicalonscheduledmreferral_and_more.py +1156 -0
- meta_prn/migrations/0058_dmreferral_referral_note_and_more.py +29 -0
- meta_prn/migrations/0059_alter_historicaloffstudymedication_reason_and_more.py +53 -0
- meta_prn/models/__init__.py +13 -2
- meta_prn/models/dm_referral.py +39 -0
- meta_prn/models/offschedule.py +15 -1
- meta_prn/models/onschedule.py +6 -0
- meta_prn/models/signals.py +41 -1
- meta_prn/tests/tests/test_dm_referral.py +206 -0
- meta_screening/form_validators/screening_part_two.py +1 -1
- meta_screening/migrations/0062_remove_icpreferral_site_and_more.py +27 -0
- meta_screening/migrations/0063_alter_historicalscreeningpartone_fasting_duration_str_and_more.py +184 -0
- meta_screening/migrations/0064_remove_historicalscreeningpartone_fasting_duration_minutes_and_more.py +126 -0
- meta_screening/migrations/0065_auto_20240516_0352.py +31 -0
- meta_screening/migrations/0066_alter_historicalscreeningpartone_fasting_duration_delta_and_more.py +103 -0
- meta_screening/models/__init__.py +1 -1
- meta_screening/tests/meta_test_case_mixin.py +2 -2
- meta_screening/tests/options.py +3 -3
- meta_sites/__init__.py +0 -1
- meta_sites/sites.py +8 -7
- meta_subject/action_items.py +23 -0
- meta_subject/admin/__init__.py +1 -1
- meta_subject/admin/birth_outcome_admin.py +2 -3
- meta_subject/admin/delivery_admin.py +0 -1
- meta_subject/admin/diabetes/__init__.py +2 -0
- meta_subject/admin/diabetes/dm_diagnosis_admin.py +89 -0
- meta_subject/admin/{dm_referral_followup_admin.py → diabetes/dm_followup_admin.py} +15 -8
- meta_subject/admin/glucose_admin.py +1 -1
- meta_subject/admin/glucose_fbg_admin.py +34 -8
- meta_subject/admin/subject_visit_admin.py +4 -1
- meta_subject/baker_recipes.py +6 -0
- meta_subject/choices.py +8 -0
- meta_subject/constants.py +2 -1
- meta_subject/form_validators/__init__.py +2 -1
- meta_subject/form_validators/dm_diagnosis_form_validator.py +38 -0
- meta_subject/form_validators/dm_dx_result_form_validator.py +7 -0
- meta_subject/form_validators/{dm_referral_followup_form_validator.py → dm_followup_form_validator.py} +41 -2
- meta_subject/forms/__init__.py +1 -0
- meta_subject/forms/diabetes/__init__.py +3 -0
- meta_subject/forms/diabetes/dm_diagnosis_form.py +13 -0
- meta_subject/forms/diabetes/dm_dx_result_form.py +11 -0
- meta_subject/forms/diabetes/dm_followup_form.py +25 -0
- meta_subject/forms/glucose_fbg_form.py +38 -16
- meta_subject/forms/subject_visit_form.py +16 -0
- meta_subject/metadata_rules/metadata_rules.py +14 -0
- meta_subject/metadata_rules/predicates.py +22 -0
- meta_subject/migrations/0181_dmreferralfollowup_action_identifier_and_more.py +143 -0
- meta_subject/migrations/0182_rename_dmreferralfollowup_dmfollowup_and_more.py +54 -0
- meta_subject/migrations/0183_alter_dmfollowup_on_dm_medications_and_more.py +31 -0
- meta_subject/migrations/0184_alter_glucose_options_and_more.py +31 -0
- meta_subject/migrations/0185_alter_bloodresultsins_fasting_duration_str_and_more.py +82 -0
- meta_subject/migrations/0186_healtheconomicsupdate_singleton_field_and_more.py +55 -0
- meta_subject/migrations/0187_dmdiagnosis_historicaldmdiagnosis_dmdxresult_and_more.py +451 -0
- meta_subject/migrations/0188_historicaldmdxresult_dmdxresult.py +403 -0
- meta_subject/migrations/0189_alter_dmdxresult_options_and_more.py +116 -0
- meta_subject/migrations/0190_dmdiagnosis_dx_no_tmg_reason_and_more.py +65 -0
- meta_subject/migrations/0191_alter_dmdiagnosis_dx_no_tmg_reason_and_more.py +70 -0
- meta_subject/migrations/0192_rename_glucose_quantifier_glucosefbg_fbg_quantifier_and_more.py +44 -0
- meta_subject/migrations/0193_alter_glucosefbg_fbg_value_and_more.py +44 -0
- meta_subject/migrations/0194_remove_glucosefbg_assay_datetime_and_more.py +166 -0
- meta_subject/migrations/0195_alter_glucosefbg_fbg_datetime_and_more.py +27 -0
- meta_subject/migrations/0196_glucosefbg_fbg_not_performed_reason_and_more.py +49 -0
- meta_subject/migrations/0197_glucosefbg_fasting_duration_estimated_and_more.py +33 -0
- meta_subject/migrations/0198_alter_glucosefbg_fasting_duration_estimated_and_more.py +33 -0
- meta_subject/migrations/0199_auto_20240516_0247.py +18 -0
- meta_subject/migrations/0200_rename_fasting_duration_minutes_bloodresultsins_fasting_duration_delta_and_more.py +43 -0
- meta_subject/migrations/0201_alter_bloodresultsins_fasting_duration_delta_and_more.py +58 -0
- meta_subject/migrations/0202_auto_20240516_0315.py +32 -0
- meta_subject/migrations/0203_alter_bloodresultsins_fasting_duration_delta_and_more.py +67 -0
- meta_subject/migrations/0204_glucosefbg_repeat_fbg_date_and_more.py +27 -0
- meta_subject/migrations/0205_historicalsubjectrequisition_crf_status_and_more.py +80 -0
- meta_subject/migrations/0206_bloodresultsfbc_crf_status_and_more.py +62 -0
- meta_subject/models/__init__.py +1 -1
- meta_subject/models/blood_results/blood_results_fbc.py +3 -2
- meta_subject/models/blood_results/blood_results_hba1c.py +2 -0
- meta_subject/models/blood_results/blood_results_ins.py +2 -0
- meta_subject/models/blood_results/blood_results_lft.py +2 -0
- meta_subject/models/blood_results/blood_results_lipid.py +2 -0
- meta_subject/models/blood_results/blood_results_rft.py +2 -0
- meta_subject/models/diabetes/__init__.py +3 -0
- meta_subject/models/diabetes/dm_diagnosis.py +50 -0
- meta_subject/models/diabetes/dm_dx_result.py +70 -0
- meta_subject/models/{dm_referral_followup.py → diabetes/dm_followup.py} +18 -6
- meta_subject/models/glucose.py +5 -15
- meta_subject/models/glucose_fbg.py +40 -51
- meta_subject/models/health_economics/health_economics_update.py +2 -0
- meta_subject/models/subject_requisition.py +3 -4
- meta_subject/tests/tests/test_egfr.py +6 -5
- meta_subject/tests/tests/test_metadata_rules.py +32 -2
- meta_visit_schedule/constants.py +3 -1
- meta_visit_schedule/visit_schedules/phase_three/crfs.py +12 -1
- meta_visit_schedule/visit_schedules/phase_three/schedule_dm_referral.py +60 -0
- meta_visit_schedule/visit_schedules/phase_three/visit_schedule.py +2 -0
- meta_subject/forms/dm_referral_followup.py +0 -18
- {meta_edc-0.3.6.dist-info → meta_edc-0.3.15.dist-info}/AUTHORS +0 -0
- {meta_edc-0.3.6.dist-info → meta_edc-0.3.15.dist-info}/LICENSE +0 -0
- {meta_edc-0.3.6.dist-info → meta_edc-0.3.15.dist-info}/WHEEL +0 -0
- {meta_edc-0.3.6.dist-info → meta_edc-0.3.15.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,176 @@
|
|
1
|
+
#!/usr/bin/env python
|
2
|
+
import sys
|
3
|
+
from datetime import datetime
|
4
|
+
from os.path import join
|
5
|
+
from pathlib import Path
|
6
|
+
from zoneinfo import ZoneInfo
|
7
|
+
|
8
|
+
from django.conf import locale
|
9
|
+
from edc_constants.internationalization import EXTRA_LANG_INFO
|
10
|
+
from edc_test_settings.default_test_settings import DefaultTestSettings
|
11
|
+
from multisite import SiteID
|
12
|
+
|
13
|
+
from meta_edc.meta_version import PHASE_THREE
|
14
|
+
|
15
|
+
LANG_INFO = dict(locale.LANG_INFO, **EXTRA_LANG_INFO)
|
16
|
+
locale.LANG_INFO = LANG_INFO
|
17
|
+
LANGUAGE_LIST = ["sw", "en-gb", "en", "mas"]
|
18
|
+
|
19
|
+
app_name = "meta_edc"
|
20
|
+
base_dir = Path(__file__).parent.parent
|
21
|
+
|
22
|
+
project_settings = DefaultTestSettings(
|
23
|
+
calling_file=__file__,
|
24
|
+
META_PHASE=PHASE_THREE,
|
25
|
+
BASE_DIR=base_dir,
|
26
|
+
APP_NAME=app_name,
|
27
|
+
ETC_DIR=base_dir / "etc",
|
28
|
+
DJANGO_CRYPTO_FIELDS_KEY_PATH=base_dir / "tests" / "etc",
|
29
|
+
GIT_DIR=base_dir.parent,
|
30
|
+
HOLIDAY_FILE=base_dir / "tests" / "holidays.csv",
|
31
|
+
EDC_RANDOMIZATION_LIST_PATH=base_dir / "tests" / "etc",
|
32
|
+
SITE_ID=SiteID(default=10),
|
33
|
+
EDC_SITES_DOMAIN_SUFFIX="meta3.clinicedc.org",
|
34
|
+
EDC_EGFR_DROP_NOTIFICATION_MODEL="meta_subject.egfrdropnotification",
|
35
|
+
EDC_RANDOMIZATION_REGISTER_DEFAULT_RANDOMIZER=False,
|
36
|
+
EDC_MNSI_ABNORMAL_FOOT_APPEARANCE_OBSERVATIONS_MODEL=(
|
37
|
+
"meta_lists.abnormalfootappearanceobservations"
|
38
|
+
),
|
39
|
+
EDC_QOL_EQ5D3L_MODEL="meta_subject.eq5d3l",
|
40
|
+
ROOT_URLCONF="meta_edc.urls",
|
41
|
+
EDC_AUTH_CODENAMES_WARN_ONLY=True,
|
42
|
+
EDC_DX_REVIEW_LIST_MODEL_APP_LABEL="edc_dx_review",
|
43
|
+
SENTRY_ENABLED=False,
|
44
|
+
INDEX_PAGE="localhost:8000",
|
45
|
+
EXPORT_FOLDER=join(base_dir, "tests", "export"),
|
46
|
+
SUBJECT_APP_LABEL="meta_subject",
|
47
|
+
SUBJECT_SCREENING_MODEL="meta_screening.subjectscreening",
|
48
|
+
SUBJECT_VISIT_MODEL="meta_subject.subjectvisit",
|
49
|
+
SUBJECT_VISIT_MISSED_MODEL="meta_subject.subjectvisitmissed",
|
50
|
+
SUBJECT_CONSENT_MODEL="meta_consent.subjectconsentv1",
|
51
|
+
SUBJECT_REQUISITION_MODEL="meta_subject.subjectrequisition",
|
52
|
+
EDC_BLOOD_RESULTS_MODEL_APP_LABEL="meta_subject",
|
53
|
+
DEFENDER_ENABLED=False,
|
54
|
+
DJANGO_LAB_DASHBOARD_REQUISITION_MODEL="meta_subject.subjectrequisition",
|
55
|
+
ADVERSE_EVENT_ADMIN_SITE="meta_ae_admin",
|
56
|
+
EDC_DX_LABELS=dict(hiv="HIV", dm="Diabetes", htn="Hypertension", chol="High Cholesterol"),
|
57
|
+
ADVERSE_EVENT_APP_LABEL="meta_ae",
|
58
|
+
EDC_NAVBAR_DEFAULT="meta_dashboard",
|
59
|
+
EDC_PROTOCOL_STUDY_OPEN_DATETIME=datetime(2019, 4, 30, 0, 0, 0, tzinfo=ZoneInfo("UTC")),
|
60
|
+
EDC_PROTOCOL_STUDY_CLOSE_DATETIME=datetime(
|
61
|
+
2025, 12, 31, 23, 59, 59, tzinfo=ZoneInfo("UTC")
|
62
|
+
),
|
63
|
+
LANGUAGE_CODE="en",
|
64
|
+
LANGUAGES=[(code, LANG_INFO[code]["name"]) for code in LANGUAGE_LIST],
|
65
|
+
DASHBOARD_BASE_TEMPLATES=dict(
|
66
|
+
edc_base_template="edc_dashboard/base.html",
|
67
|
+
listboard_base_template="meta_edc/base.html",
|
68
|
+
dashboard_base_template="meta_edc/base.html",
|
69
|
+
screening_listboard_template="meta_dashboard/screening/listboard.html",
|
70
|
+
subject_listboard_template="meta_dashboard/subject/listboard.html",
|
71
|
+
subject_dashboard_template="meta_dashboard/subject/dashboard.html",
|
72
|
+
subject_review_listboard_template="edc_review_dashboard/subject_review_listboard.html",
|
73
|
+
),
|
74
|
+
EDC_BOOTSTRAP=3,
|
75
|
+
EMAIL_BACKEND="django.core.mail.backends.locmem.EmailBackend",
|
76
|
+
EMAIL_CONTACTS={
|
77
|
+
"ae_reports": "someone@example.com",
|
78
|
+
"data_request": "someone@example.com",
|
79
|
+
"data_manager": "someone@example.com",
|
80
|
+
"tmg": "someone@example.com",
|
81
|
+
},
|
82
|
+
EMAIL_ENABLED=True,
|
83
|
+
LIVE_SYSTEM=False,
|
84
|
+
EDC_SITES_MODULE_NAME="meta_sites",
|
85
|
+
EDC_AUTH_SKIP_SITE_AUTHS=True,
|
86
|
+
EDC_AUTH_SKIP_AUTH_UPDATER=True,
|
87
|
+
EDC_MNSI_MODEL="meta_subject.mnsi",
|
88
|
+
INSTALLED_APPS=[
|
89
|
+
"django.contrib.admin",
|
90
|
+
"django.contrib.auth",
|
91
|
+
"django.contrib.contenttypes",
|
92
|
+
"django.contrib.sessions",
|
93
|
+
"django.contrib.messages",
|
94
|
+
"django.contrib.staticfiles",
|
95
|
+
"django.contrib.sites",
|
96
|
+
"django_crypto_fields.apps.AppConfig",
|
97
|
+
"django_revision.apps.AppConfig",
|
98
|
+
# "debug_toolbar",
|
99
|
+
"django_extensions",
|
100
|
+
"logentry_admin",
|
101
|
+
"simple_history",
|
102
|
+
"storages",
|
103
|
+
"edc_sites.apps.AppConfig",
|
104
|
+
"edc_action_item.apps.AppConfig",
|
105
|
+
"edc_adherence.apps.AppConfig",
|
106
|
+
"edc_adverse_event.apps.AppConfig",
|
107
|
+
"edc_appointment.apps.AppConfig",
|
108
|
+
"edc_auth.apps.AppConfig",
|
109
|
+
"edc_crf.apps.AppConfig",
|
110
|
+
"edc_he.apps.AppConfig",
|
111
|
+
"edc_data_manager.apps.AppConfig",
|
112
|
+
"edc_consent.apps.AppConfig",
|
113
|
+
"edc_device.apps.AppConfig",
|
114
|
+
"edc_dashboard.apps.AppConfig",
|
115
|
+
"edc_egfr.apps.AppConfig",
|
116
|
+
"edc_export.apps.AppConfig",
|
117
|
+
"edc_facility.apps.AppConfig",
|
118
|
+
"edc_fieldsets.apps.AppConfig",
|
119
|
+
"edc_form_runners.apps.AppConfig",
|
120
|
+
"edc_form_validators.apps.AppConfig",
|
121
|
+
"edc_reportable.apps.AppConfig",
|
122
|
+
"edc_lab.apps.AppConfig",
|
123
|
+
"edc_lab_dashboard.apps.AppConfig",
|
124
|
+
"edc_label.apps.AppConfig",
|
125
|
+
"edc_listboard.apps.AppConfig",
|
126
|
+
"edc_locator.apps.AppConfig",
|
127
|
+
"edc_pdf_reports.apps.AppConfig",
|
128
|
+
"edc_identifier.apps.AppConfig",
|
129
|
+
"edc_metadata.apps.AppConfig",
|
130
|
+
"edc_model_admin.apps.AppConfig",
|
131
|
+
"edc_navbar.apps.AppConfig",
|
132
|
+
"edc_notification.apps.AppConfig",
|
133
|
+
"edc_offstudy.apps.AppConfig",
|
134
|
+
"edc_visit_tracking.apps.AppConfig",
|
135
|
+
"edc_visit_schedule.apps.AppConfig",
|
136
|
+
"edc_pdutils.apps.AppConfig",
|
137
|
+
"edc_pharmacy.apps.AppConfig",
|
138
|
+
"edc_protocol.apps.AppConfig",
|
139
|
+
"edc_protocol_incident.apps.AppConfig",
|
140
|
+
"edc_prn.apps.AppConfig",
|
141
|
+
"edc_randomization.apps.AppConfig",
|
142
|
+
"edc_registration.apps.AppConfig",
|
143
|
+
"edc_subject_dashboard.apps.AppConfig",
|
144
|
+
"edc_screening.apps.AppConfig",
|
145
|
+
"edc_timepoint.apps.AppConfig",
|
146
|
+
"edc_list_data.apps.AppConfig",
|
147
|
+
"edc_review_dashboard.apps.AppConfig",
|
148
|
+
"edc_refusal.apps.AppConfig",
|
149
|
+
"edc_mnsi.apps.AppConfig",
|
150
|
+
"edc_unblinding.apps.AppConfig",
|
151
|
+
"edc_qol.apps.AppConfig",
|
152
|
+
"edc_dx_review.apps.AppConfig",
|
153
|
+
"edc_dx.apps.AppConfig",
|
154
|
+
"meta_auth.apps.AppConfig",
|
155
|
+
"meta_consent.apps.AppConfig",
|
156
|
+
"meta_lists.apps.AppConfig",
|
157
|
+
"meta_dashboard.apps.AppConfig",
|
158
|
+
"meta_labs.apps.AppConfig",
|
159
|
+
"meta_rando.apps.AppConfig",
|
160
|
+
"meta_subject.apps.AppConfig",
|
161
|
+
"meta_visit_schedule.apps.AppConfig",
|
162
|
+
"meta_ae.apps.AppConfig",
|
163
|
+
"meta_prn.apps.AppConfig",
|
164
|
+
"meta_export.apps.AppConfig",
|
165
|
+
"meta_sites.apps.AppConfig",
|
166
|
+
"meta_screening.apps.AppConfig",
|
167
|
+
"meta_edc.apps.AppConfig",
|
168
|
+
"edc_appconfig.apps.AppConfig",
|
169
|
+
],
|
170
|
+
add_dashboard_middleware=True,
|
171
|
+
add_lab_dashboard_middleware=True,
|
172
|
+
add_adverse_event_dashboard_middleware=True,
|
173
|
+
).settings
|
174
|
+
|
175
|
+
for k, v in project_settings.items():
|
176
|
+
setattr(sys.modules[__name__], k, v)
|
@@ -12,8 +12,7 @@ from django.apps import apps as django_apps
|
|
12
12
|
from django.conf import settings
|
13
13
|
from django.contrib.auth import get_user_model
|
14
14
|
from django.contrib.sites.models import Site
|
15
|
-
from django.test import tag
|
16
|
-
from django.test.utils import override_settings
|
15
|
+
from django.test.utils import override_settings, tag
|
17
16
|
from django.urls.base import reverse
|
18
17
|
from django.urls.exceptions import NoReverseMatch
|
19
18
|
from django_extensions.management.color import color_style
|
@@ -25,7 +24,7 @@ from edc_auth.auth_updater import AuthUpdater
|
|
25
24
|
from edc_auth.constants import AUDITOR_ROLE, CLINICIAN_ROLE, STAFF_ROLE
|
26
25
|
from edc_auth.site_auths import site_auths
|
27
26
|
from edc_consent.site_consents import site_consents
|
28
|
-
from edc_constants.constants import
|
27
|
+
from edc_constants.constants import YES
|
29
28
|
from edc_dashboard.url_names import url_names
|
30
29
|
from edc_export.constants import DATA_EXPORTER_ROLE
|
31
30
|
from edc_lab.auth_objects import LAB_TECHNICIAN_ROLE
|
@@ -217,7 +216,7 @@ class AdminSiteTest(MetaTestCaseMixin, WebTest):
|
|
217
216
|
else:
|
218
217
|
self.assertNotIn(label, response)
|
219
218
|
|
220
|
-
@
|
219
|
+
@skip
|
221
220
|
@time_machine.travel(datetime(2019, 6, 11, 8, 00, tzinfo=ZoneInfo("UTC")))
|
222
221
|
def test_screening_form_phase3(self):
|
223
222
|
self.login(superuser=False, roles=[STAFF_ROLE, CLINICIAN_ROLE])
|
@@ -241,18 +240,18 @@ class AdminSiteTest(MetaTestCaseMixin, WebTest):
|
|
241
240
|
add_screening_part_two,
|
242
241
|
screening_identifier,
|
243
242
|
) = self.webtest_for_screening_form_part_one(part_one_data)
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
"
|
248
|
-
|
249
|
-
if part_two_data["appt_datetime"] < get_utcnow():
|
250
|
-
part_two_data.update(p3_ltfu=PENDING)
|
251
|
-
# part_two_data.update(p3_ltfu_date=get_utcnow().date())
|
252
|
-
# part_two_data.update()
|
253
|
-
|
254
|
-
traveller = time_machine.travel(part_two_data["part_two_report_datetime"])
|
243
|
+
|
244
|
+
# travel 10 min into the future
|
245
|
+
traveller = time_machine.travel(
|
246
|
+
part_one_data["report_datetime"] + relativedelta(minutes=10)
|
247
|
+
)
|
255
248
|
traveller.start()
|
249
|
+
part_two_data = deepcopy(
|
250
|
+
get_part_two_eligible_options(
|
251
|
+
report_datetime=get_utcnow() + relativedelta(minutes=1)
|
252
|
+
)
|
253
|
+
)
|
254
|
+
part_two_data["appt_datetime"] = get_utcnow() + relativedelta(days=10)
|
256
255
|
part_two_data.update(
|
257
256
|
dict(
|
258
257
|
part_two_report_datetime_0=part_two_data["part_two_report_datetime"].strftime(
|
@@ -272,11 +271,14 @@ class AdminSiteTest(MetaTestCaseMixin, WebTest):
|
|
272
271
|
) = self.webtest_for_screening_form_part_two(
|
273
272
|
home_page, add_screening_part_two, screening_identifier, part_two_data
|
274
273
|
)
|
274
|
+
traveller.stop()
|
275
275
|
|
276
|
+
# travel 10 days into the future
|
276
277
|
traveller = time_machine.travel(part_two_data["appt_datetime"])
|
277
278
|
traveller.start()
|
278
|
-
part_three_data = deepcopy(
|
279
|
-
|
279
|
+
part_three_data = deepcopy(
|
280
|
+
get_part_three_eligible_options(report_datetime=get_utcnow())
|
281
|
+
)
|
280
282
|
|
281
283
|
traveller = time_machine.travel(part_two_data.get("part_three_report_datetime"))
|
282
284
|
traveller.start()
|
@@ -311,7 +313,6 @@ class AdminSiteTest(MetaTestCaseMixin, WebTest):
|
|
311
313
|
self.assertIn(screening_identifier, screening_listboard_page)
|
312
314
|
self.assertIn("Consent", screening_listboard_page)
|
313
315
|
|
314
|
-
@tag("1")
|
315
316
|
def webtest_for_screening_form_part_one(self, part_one_data):
|
316
317
|
home_page = self.app.get(reverse("home_url"), user=self.user, status=200)
|
317
318
|
screening_listboard_page = home_page.click(description="Screening", index=1)
|
@@ -367,7 +368,7 @@ class AdminSiteTest(MetaTestCaseMixin, WebTest):
|
|
367
368
|
errorlist = soup.find_all("ul", "errorlist")
|
368
369
|
self.assertEqual([], errorlist)
|
369
370
|
# redirects back to listboard
|
370
|
-
obj = SubjectScreening.objects.
|
371
|
+
obj = SubjectScreening.objects.get(screening_identifier=screening_identifier)
|
371
372
|
url = reverse(screening_listboard_url, args=(obj.screening_identifier,))
|
372
373
|
self.assertRedirects(page, url)
|
373
374
|
# shows P1 | P2 | P3 | PENDING
|
meta_edc/urls.py
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
from django.conf import settings
|
2
|
+
from django.contrib.auth.views import LogoutView
|
2
3
|
from django.urls.conf import include, path, re_path
|
3
4
|
from django.views.defaults import page_not_found, server_error # noqa
|
4
5
|
from django.views.generic import RedirectView
|
5
|
-
from edc_auth.views import LogoutView
|
6
6
|
from edc_dashboard.utils import get_index_page
|
7
7
|
from edc_dashboard.views import AdministrationView
|
8
8
|
from edc_utils.paths_for_urlpatterns import paths_for_urlpatterns
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: meta-edc
|
3
|
-
Version: 0.3.
|
3
|
+
Version: 0.3.15
|
4
4
|
Summary: META Trial EDC (http://www.isrctn.com/ISRCTN76157257)
|
5
5
|
Home-page: https://github.com/meta-trial/meta-edc
|
6
6
|
Author: Erik van Widenfelt
|
@@ -13,15 +13,16 @@ Classifier: Framework :: Django :: 4.2
|
|
13
13
|
Classifier: Intended Audience :: Developers
|
14
14
|
Classifier: Intended Audience :: Science/Research
|
15
15
|
Classifier: Operating System :: OS Independent
|
16
|
-
Classifier: Programming Language :: Python :: 3.
|
16
|
+
Classifier: Programming Language :: Python :: 3.12
|
17
17
|
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
|
18
|
-
Requires-Python: >=3.
|
18
|
+
Requires-Python: >=3.12
|
19
19
|
Description-Content-Type: text/x-rst
|
20
20
|
License-File: LICENSE
|
21
21
|
License-File: AUTHORS
|
22
|
-
Requires-Dist: edc ==0.5.
|
22
|
+
Requires-Dist: edc ==0.5.90
|
23
23
|
Requires-Dist: edc-microscopy
|
24
24
|
Requires-Dist: beautifulsoup4
|
25
|
+
Requires-Dist: Django ==4.2.11
|
25
26
|
|
26
27
|
|pypi| |actions| |codecov| |downloads|
|
27
28
|
|