meta-edc 1.1.18__py3-none-any.whl → 1.2.0__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 meta-edc might be problematic. Click here for more details.

Files changed (24) hide show
  1. meta_consent/migrations/0033_historicalsubjectconsentspfq_subjectconsentspfq.py +615 -0
  2. meta_consent/migrations/0034_remove_subjectconsentspfq_site_and_more.py +23 -0
  3. meta_consent/models/signals.py +13 -16
  4. meta_edc/settings/defaults.py +14 -10
  5. meta_edc/urls.py +1 -0
  6. {meta_edc-1.1.18.dist-info → meta_edc-1.2.0.dist-info}/METADATA +6 -5
  7. {meta_edc-1.1.18.dist-info → meta_edc-1.2.0.dist-info}/RECORD +24 -12
  8. meta_labs/list_data.py +2 -2
  9. meta_prn/baker_recipes.py +6 -6
  10. meta_prn/migrations/0069_alter_historicaloffstudymedication_singleton_field_and_more.py +37 -0
  11. meta_rando/migrations/0007_spfqlist.py +197 -0
  12. meta_rando/migrations/0008_delete_spfqlist.py +16 -0
  13. meta_rando/models/__init__.py +1 -0
  14. meta_rando/{models.py → models/randomization_list.py} +3 -3
  15. meta_subject/migrations/0228_bloodresultshba1c_hba1c_datetime_and_more.py +1 -6780
  16. meta_subject/migrations/0229_alter_glucosefbg_consent_model_and_more.py +1918 -0
  17. meta_subject/migrations/0230_alter_historicaldelivery_action_identifier_and_more.py +1733 -0
  18. meta_subject/migrations/0231_alter_historicalmedicationadherence_consent_model_and_more.py +2054 -0
  19. meta_subject/migrations/0232_alter_patienthistory_concomitant_conditions_and_more.py +1170 -0
  20. meta_subject/migrations/0233_historicalspfq_spfq.py +1066 -0
  21. meta_subject/migrations/0234_remove_spfq_site_remove_spfq_subject_visit_and_more.py +27 -0
  22. meta_subject/models/health_economics/health_economics_simple.py +2 -2
  23. {meta_edc-1.1.18.dist-info → meta_edc-1.2.0.dist-info}/WHEEL +0 -0
  24. {meta_edc-1.1.18.dist-info → meta_edc-1.2.0.dist-info}/licenses/LICENSE +0 -0
@@ -38,7 +38,7 @@ if os.getenv("DJANGO_BASE_DIR"):
38
38
  BASE_DIR = Path(os.getenv("DJANGO_BASE_DIR"))
39
39
  else:
40
40
  # when running from a repo
41
- BASE_DIR = Path(__file__).resolve().parent.parent.parent
41
+ BASE_DIR = Path(__file__).resolve().parent.parent.parent.parent
42
42
 
43
43
  if os.getenv("DJANGO_ENV_DIR"):
44
44
  ENV_DIR = Path(os.getenv("DJANGO_ENV_DIR"))
@@ -54,6 +54,15 @@ else:
54
54
  raise FileExistsError(f"Environment file does not exist. Got `{(ENV_DIR / '.env')}`")
55
55
  env.read_env(ENV_DIR / ".env")
56
56
 
57
+ # django_revision
58
+ GIT_DIR = Path(env.str("EDC_REVISION_GIT_DIR", default=BASE_DIR))
59
+
60
+ # django_crypto_fields
61
+ KEY_PATH = env.str("DJANGO_KEY_FOLDER")
62
+ AUTO_CREATE_KEYS = env("DJANGO_AUTO_CREATE_KEYS")
63
+
64
+ EXPORT_FOLDER = env.str("DJANGO_EXPORT_FOLDER") or Path("~/").expanduser()
65
+
57
66
 
58
67
  LOGGING_ENABLED = env("DJANGO_LOGGING_ENABLED")
59
68
  if LOGGING_ENABLED:
@@ -188,6 +197,7 @@ INSTALLED_APPS = [
188
197
  "meta_pharmacy.apps.AppConfig",
189
198
  "meta_screening.apps.AppConfig",
190
199
  "meta_sites.apps.AppConfig",
200
+ "meta_spfq.apps.AppConfig",
191
201
  "meta_edc.apps.AppConfig",
192
202
  "edc_appconfig.apps.AppConfig",
193
203
  ]
@@ -485,15 +495,6 @@ if TWILIO_ENABLED:
485
495
  TWILIO_AUTH_TOKEN = env.str("TWILIO_AUTH_TOKEN")
486
496
  TWILIO_SENDER = env.str("TWILIO_SENDER")
487
497
 
488
- # django_revision
489
- GIT_DIR = BASE_DIR.parent
490
-
491
- # django_crypto_fields
492
- KEY_PATH = env.str("DJANGO_KEY_FOLDER")
493
- AUTO_CREATE_KEYS = env("DJANGO_AUTO_CREATE_KEYS")
494
-
495
- EXPORT_FOLDER = env.str("DJANGO_EXPORT_FOLDER") or Path("~/").expanduser()
496
-
497
498
  # django_simple_history
498
499
  SIMPLE_HISTORY_ENFORCE_HISTORY_MODEL_PERMISSIONS = True
499
500
 
@@ -592,3 +593,6 @@ if "test" in sys.argv:
592
593
  MIGRATION_MODULES = DisableMigrations()
593
594
  PASSWORD_HASHERS = ("django.contrib.auth.hashers.MD5PasswordHasher",)
594
595
  DEFAULT_FILE_STORAGE = "inmemorystorage.InMemoryStorage"
596
+
597
+
598
+ META_SPFQ_LIST_FILENAME = env.str("META_SPFQ_LIST_FILENAME")
meta_edc/urls.py CHANGED
@@ -69,6 +69,7 @@ urlpatterns = [
69
69
  *paths_for_urlpatterns("meta_screening"),
70
70
  *paths_for_urlpatterns("meta_subject"),
71
71
  *paths_for_urlpatterns("meta_reports"),
72
+ *paths_for_urlpatterns("meta_spfq"),
72
73
  ]
73
74
 
74
75
  if settings.DEFENDER_ENABLED:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: meta-edc
3
- Version: 1.1.18
3
+ Version: 1.2.0
4
4
  Summary: META Trial EDC (https://www.isrctn.com/ISRCTN76157257)
5
5
  Keywords: django,clinicedc,META EDC,EDC,clinical trials,META Trial,ISRCTN76157257
6
6
  Author: Erik van Widenfelt, Jonathan Willitts
@@ -15,12 +15,13 @@ Classifier: Intended Audience :: Science/Research
15
15
  Classifier: Operating System :: OS Independent
16
16
  Classifier: Programming Language :: Python :: 3.12
17
17
  Classifier: Programming Language :: Python :: 3.13
18
- Requires-Dist: clinicedc>=2.0.26
18
+ Requires-Dist: clinicedc>=2.0.30
19
19
  Requires-Dist: edc-he>=1.2.0
20
20
  Requires-Dist: edc-microscopy>=1.2.0
21
21
  Requires-Dist: edc-mnsi>=1.2.0
22
22
  Requires-Dist: edc-phq9>=1.1.0
23
23
  Requires-Dist: edc-qol>=1.2.0
24
+ Requires-Dist: notebook>=7.4.7
24
25
  Requires-Python: >=3.12, <3.14
25
26
  Description-Content-Type: text/x-rst
26
27
 
@@ -88,8 +89,8 @@ Assuming you are logged into the account ``myaccount``:
88
89
  mkdir ~/edc && \
89
90
  cd ~/edc && \
90
91
  uv venv && \
91
- uv pip install -U meta-edc==1.1.17 && \
92
- wget https://raw.githubusercontent.com/meta-trial/meta-edc/1.1.17/manage.py && \
92
+ uv pip install -U meta-edc==1.1.19 && \
93
+ wget https://raw.githubusercontent.com/meta-trial/meta-edc/1.1.19/manage.py && \
93
94
  uv pip freeze | grep meta-edc
94
95
 
95
96
  Copy your ``.env`` file to ``~/.etc``.
@@ -139,7 +140,7 @@ From the above example:
139
140
 
140
141
  cd ~/edc && \
141
142
  uv venv --clear && \
142
- uv pip install -U meta-edc==1.1.17 && \
143
+ uv pip install -U meta-edc==1.1.19 && \
143
144
  wget -O manage.py https://raw.githubusercontent.com/meta-trial/meta-edc/1.1.10/manage.py && \
144
145
  uv pip freeze | grep meta-edc && \
145
146
  python manage.py check
@@ -166,10 +166,12 @@ meta_consent/migrations/0029_alter_historicalsubjectconsentv1ext_agrees_to_exten
166
166
  meta_consent/migrations/0030_auto_20250120_2114.py,sha256=Unk3dddqbNTog5VZOmq-68oi_RshtT21wlNVqcSf5-U,1349
167
167
  meta_consent/migrations/0031_alter_historicalsubjectconsent_guardian_name_and_more.py,sha256=a3-_1ls36Z8UXe3v2U44SqPVeNiCgUjJX6jOWsk1EoQ,5645
168
168
  meta_consent/migrations/0032_alter_historicalsubjectconsent_device_created_and_more.py,sha256=Ty4I6TSHw_rHRKyrYQUMDuZmCSe9_rC4PMD8PM6EdB0,24682
169
+ meta_consent/migrations/0033_historicalsubjectconsentspfq_subjectconsentspfq.py,sha256=6GKEKT1BbPqqq2U2rHMQWl1VITtB3Inzl3aJGiy26ro,25192
170
+ meta_consent/migrations/0034_remove_subjectconsentspfq_site_and_more.py,sha256=RbTC6Oo2pOLYaOMkhPtdM612nyZwnOXdWVZ769WGF4o,546
169
171
  meta_consent/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
170
172
  meta_consent/models/__init__.py,sha256=qDfnpsbAP3hr5oKa80hkr5u9P2PN6KV8P5EMujfgt_8,465
171
173
  meta_consent/models/model_mixins.py,sha256=mEN2gDycLKoZiExM2_H3Dxz8AMAwRSrCq4vu3afr5hA,275
172
- meta_consent/models/signals.py,sha256=grdBFzC46jX_IpoMLhDkYY1MjeK4Xzc8kv-yXdF4mnY,5198
174
+ meta_consent/models/signals.py,sha256=qjzBtnLR5qcOrn39sFrleUm6a9DG2yZnHGLnKQ-tLkc,5030
173
175
  meta_consent/models/subject_consent.py,sha256=Ssr94mZijpseoer-APH0jhh54cLeoUI0TPUah3od91c,3804
174
176
  meta_consent/models/subject_consent_v1.py,sha256=ELkFhv_6eRiuuoJOohdLwq3b2e2YXngK5omkGwMoRQE,457
175
177
  meta_consent/models/subject_consent_v1_ext.py,sha256=MpK5TlUqf2JuYRpmRLzYBClOFstC_6pIGwDRUckIztU,1033
@@ -229,14 +231,14 @@ meta_edc/models.py,sha256=DLA-hDdFszAVNCe1sZqVoLmIXifFW0HeZsipP9D1Ic4,46
229
231
  meta_edc/navbars.py,sha256=Rl2a62elRVTbkGVV9toYwwT388TE1BI7-1j1w2v1m-I,1208
230
232
  meta_edc/settings/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
231
233
  meta_edc/settings/debug.py,sha256=XfYEL34kzpyiXQkTil34-r-NVKhmxs_kVQP2u5XtfVE,1313
232
- meta_edc/settings/defaults.py,sha256=uHcahlXL1lmgIzekQrfR6_wb07jcrBCz6BuJHQ_l7zc,20239
234
+ meta_edc/settings/defaults.py,sha256=lXN6DoEbUudUQSqJ1BJ8dVcAo4q-ZoEMxbnN8xkMSro,20381
233
235
  meta_edc/settings/live.py,sha256=A4gDWiUIgcRDUWaT4oEOHkGmaeLRPNsr7MPrl0r8AuI,289
234
236
  meta_edc/settings/logging.py,sha256=7RQ2guyuMhK3MtoojmnD0CVqiFZZ6ZT6zc7Rwn0nYGk,2115
235
237
  meta_edc/settings/minimal.py,sha256=ZZM7hZ-3AH33nGpLJLbYgs50oa5meKv_aGShidnm9G0,511
236
238
  meta_edc/settings/uat.py,sha256=kA6Aw2qDeh6gXNJgtiR93D0rWmBNHswcrufPk40RYhc,295
237
239
  meta_edc/templates/meta_edc/base.html,sha256=SRsitjNhwDyPueJXm8gAyz9MsqDKFfhs50zl4dGBGsU,154
238
240
  meta_edc/templates/meta_edc/home.html,sha256=EMdNWUw3NURSrC8xlKCkxuV0SxVLcmB8kyy2N6LgFLQ,4579
239
- meta_edc/urls.py,sha256=NAiynaCQyd-9FqKD1QQriqJ9HbK6YX-kIjXMPfPrcqI,3640
241
+ meta_edc/urls.py,sha256=XEqI0_flKCQO7_E8WQ_La_YhMnsx2c7N5mluAohEm1w,3681
240
242
  meta_edc/utils.py,sha256=BX6KQNiygI17TftUx-08-b1K30Kooxg0Kg1E5Auys5s,367
241
243
  meta_edc/views/__init__.py,sha256=8kC2jsMR87Hhtw86MHJD8hS_8k6ZqPSr9E4-dcRQmUM,56
242
244
  meta_edc/views/home_view.py,sha256=BXydy77TcdcM0-R3S_uHI4DtfnLMIzPJMyqjFJZFSsA,916
@@ -252,7 +254,7 @@ meta_labs/aliquot_types.py,sha256=1tiBgZ6Dn8uxqJPukdcYtaTC0mK18n5RB_Swj3WyGH8,87
252
254
  meta_labs/apps.py,sha256=KizTZ5y6jbPc87IrCyzVqi7DAwrKXrp1cKa3TmMwBfk,200
253
255
  meta_labs/lab_profiles.py,sha256=I3s07bzAQaRzNSAqBuprx6uIO048ovffL5gD28ZE2N0,957
254
256
  meta_labs/labs.py,sha256=0mpfORDUsjxBeyJdEC5NiF4kQHSQTfKiQuMKZ9Svaqw,128
255
- meta_labs/list_data.py,sha256=ZWvQ7ZuOgNZ8Cz-y5lzrAYCZC2HarlnlleFXdsI1P9c,477
257
+ meta_labs/list_data.py,sha256=Cbu8yBpogDno1B10MtC8HCXLRbtxqUGjLxuAjUbyLYg,473
256
258
  meta_labs/processing_profiles.py,sha256=fRX72FOl2rsnOJYhgup5QacfGSXKtWqn2gD3Giz2GDA,500
257
259
  meta_labs/reportables.py,sha256=AgONHYWB7QsQ53ZsQOYcpgtV7Tl8yyt28GEkgjZ5lms,2204
258
260
  meta_lists/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -342,7 +344,7 @@ meta_prn/admin/protocol_incident_admin.py,sha256=42XTm6Z9EyKtSXWnIep3DmYwibCtMHx
342
344
  meta_prn/admin/subject_transfer_admin.py,sha256=ixYbel84vXwFuBaczTJBscpau3iMjHEzhpHvGRRXLD0,741
343
345
  meta_prn/admin_site.py,sha256=E4dJ6ofu9Kp-1SIWIuY3PraVPbEJSWBBqhorJPGUNqU,161
344
346
  meta_prn/apps.py,sha256=NEqrwzEW277BAPGeL1H1KdK9e74FqXfYHK6o46BtaJA,280
345
- meta_prn/baker_recipes.py,sha256=DAOuwnJCfRTou4WV4-oLdX_JHuov7KRZy4tcXF3TCBw,667
347
+ meta_prn/baker_recipes.py,sha256=MgTdr_2wawEMSQifsgXpP7LS_8va9HjlXXE2etpq8sM,715
346
348
  meta_prn/choices.py,sha256=QmWGz2zpWIt5Uqa3QP_YC-Ky8eKYDPdA5R8vPsOP22Q,3318
347
349
  meta_prn/constants.py,sha256=Z0atxRnTIj-_bWbfYY0vZIwfmbwaFRpSZqb1-K1B4Jo,1018
348
350
  meta_prn/form_validators/__init__.py,sha256=bHMDsNInx7AEghhcU2_2Bmc5pgP_Y7p4fbklXiugjYQ,194
@@ -428,6 +430,7 @@ meta_prn/migrations/0065_alter_historicaloffstudymedication_subject_identifier_a
428
430
  meta_prn/migrations/0066_alter_historicallosstofollowup_subject_identifier_and_more.py,sha256=hUTNf3oiIxJODNXXwjTeVZS-xEMBsCn3XyR2aPcfO7o,662
429
431
  meta_prn/migrations/0067_alter_offschedule_managers_and_more.py,sha256=FgwTeEgMbvyH3G6C7p3O9jUcUf7aX0dOmTuULlpWHKU,95266
430
432
  meta_prn/migrations/0068_alter_dmreferral_referral_note_and_more.py,sha256=CKbtUdAVA4r74WTHMh_lAh7Fm7YC23A0aPD0mWs59sU,8347
433
+ meta_prn/migrations/0069_alter_historicaloffstudymedication_singleton_field_and_more.py,sha256=oM6nxwAZOkJ0wjuNzVH-KrNEYUjLR97c1BTXY1lxab4,1085
431
434
  meta_prn/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
432
435
  meta_prn/models/__init__.py,sha256=RTi_GFeNhZEnB7_WR5bahlanI7BGR9rTC47TveoRrR4,1224
433
436
  meta_prn/models/dm_referral.py,sha256=_5sVeT9A2mnmbkv2LvbTkS4G-QYPWqR5zMRGDAWCENA,1153
@@ -452,8 +455,11 @@ meta_rando/migrations/0003_auto_20220826_1640.py,sha256=J7x_wOMhSvUj9FvC9ZoT7Nek
452
455
  meta_rando/migrations/0004_alter_randomizationlist_options_and_more.py,sha256=_UZa13k3D_gp6HLBSWqeW-aPnBhd5zaLZF3mQh2Gt6s,3572
453
456
  meta_rando/migrations/0005_alter_randomizationlist_options_and_more.py,sha256=GBaNqwy4SlmQ88lYX2uEqAI0FIUQem-C8qJLI6d6SfI,3248
454
457
  meta_rando/migrations/0006_alter_historicalrandomizationlist_allocated_user_and_more.py,sha256=XS6srUOHPAJWqsTLLPCHmcIKlOkEky95JrH1739gL2w,4584
458
+ meta_rando/migrations/0007_spfqlist.py,sha256=UbzXuvNy3EuapG0ZQktiEVOM3BVjLgeAmTqViAh9cKg,7276
459
+ meta_rando/migrations/0008_delete_spfqlist.py,sha256=hF6G6B5kMirD_W8xOCRe_IA2IIq2xkKEYcF5KTSgnSY,290
455
460
  meta_rando/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
456
- meta_rando/models.py,sha256=GYFxlzBRcihpSe1tpfLGkD1NaMKA6kfGhgv-cz5hqk8,532
461
+ meta_rando/models/__init__.py,sha256=Y723EYwgR2rCsy6GKK8uEh0V1-a3L1mr-n-vk6ZkQVs,50
462
+ meta_rando/models/randomization_list.py,sha256=IBj1kSui1tHNgZdVbHvgmunw9BwBZ4ZZnft98x1B-Gg,510
457
463
  meta_rando/randomizers.py,sha256=GpsV3kkqd-HupfnQw6Y7R172ZpOEpIbmVkXOwsOf-HA,1592
458
464
  meta_reports/__init__.py,sha256=huYR-GaImMWZqv6puEYfY7y_8m1OA_hRVXRYNBvNLkQ,80
459
465
  meta_reports/admin/__init__.py,sha256=V-rlMJJZCgnDaMOwk5PgZNIclOp_FW2y9yc-iCLQFHA,910
@@ -1056,7 +1062,13 @@ meta_subject/migrations/0224_bloodresultsfbc_abnormal_summary_and_more.py,sha256
1056
1062
  meta_subject/migrations/0225_followupvitals_waist_circumference_and_more.py,sha256=50t7cUy6s5phxdpRBV7zSnkb4igqZkjU3Bjl2lFEPEY,1451
1057
1063
  meta_subject/migrations/0226_followupvitals_waist_circumference_comment_and_more.py,sha256=E8EsKrrGBubuGkALTAOErXZ8nozfEcF4N1Ikpx586x4,3751
1058
1064
  meta_subject/migrations/0227_alter_followupvitals_waist_circumference_comment_and_more.py,sha256=FmBinQXVVdQ5lDcXcxHWcpoU17p6cUXypi9lq58CkEg,4051
1059
- meta_subject/migrations/0228_bloodresultshba1c_hba1c_datetime_and_more.py,sha256=MZCdXg0TUCvsxFUD9WFPyzLUi7IY95W-Nipjd_gTClI,353586
1065
+ meta_subject/migrations/0228_bloodresultshba1c_hba1c_datetime_and_more.py,sha256=bJSV5-XmNsoaL4Mgms6xK7Oh95ZLyuZM-IoOWPZj4Vk,94333
1066
+ meta_subject/migrations/0229_alter_glucosefbg_consent_model_and_more.py,sha256=-qy4sAda3F5FQitmotXeYGccLGD8KdBKg7Q0l9P3ycY,73555
1067
+ meta_subject/migrations/0230_alter_historicaldelivery_action_identifier_and_more.py,sha256=_3uAfAPvYQirX9awt5Mcvas6RLaZNP9ojEIQ6twSS2w,66935
1068
+ meta_subject/migrations/0231_alter_historicalmedicationadherence_consent_model_and_more.py,sha256=LMY0vJ4utO36Zpk0uugU_KlXkv9bCG9-nf8oFsUuWII,78654
1069
+ meta_subject/migrations/0232_alter_patienthistory_concomitant_conditions_and_more.py,sha256=vX0wJmbLQSg7JYnvzAt3zA20bfPz1AnxNpodKAxdYhM,43686
1070
+ meta_subject/migrations/0233_historicalspfq_spfq.py,sha256=U8imocD_gtCGTC0zUNt6UZlqZYBUtUNB7cEdFxBbnjA,46072
1071
+ meta_subject/migrations/0234_remove_spfq_site_remove_spfq_subject_visit_and_more.py,sha256=s_1aOSihYNqca-oVYWxiC19joGtOgvB4nz0qtEqmdwQ,584
1060
1072
  meta_subject/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1061
1073
  meta_subject/model_mixins/__init__.py,sha256=fWZpFJ_Ex-TOJFjgSGjcrquKSCenCh_K9Hiy8QUg36o,439
1062
1074
  meta_subject/model_mixins/arv_history_model_mixin.py,sha256=6ILacF2koyYmwZIFHmmQO1uIT1eWzrahXxhAlxpQiX0,2898
@@ -1091,7 +1103,7 @@ meta_subject/models/glucose_fbg.py,sha256=MzTPX1sVlp_ypqLmhsurVUV-Ks8XTIMHJy5MBj
1091
1103
  meta_subject/models/glucose_review.py,sha256=bCnSBe_C3LeBy1XrZpV9rv-hOk8onZ_Tl37t7dqm-sw,450
1092
1104
  meta_subject/models/health_economics/__init__.py,sha256=J557vTjzK1EvUAM4mx9zDVQ7Zr0W25stnWXz_zE2a-c,245
1093
1105
  meta_subject/models/health_economics/health_economics.py,sha256=pjEbz3d6s-Cy2DEPZnGcd8KjFc27pVed9D6vr3eYLVg,9709
1094
- meta_subject/models/health_economics/health_economics_simple.py,sha256=pHMDPUi9ojPBI6koTtciVGUYV8oFr7VXTmf8JP_eU40,741
1106
+ meta_subject/models/health_economics/health_economics_simple.py,sha256=w46TrjNvfk736IjtZ8lrN0H3is_ddGRUq8v6MgSqoBY,711
1095
1107
  meta_subject/models/health_economics/health_economics_update.py,sha256=gzbu2lpVr9txwYUVfYKADgE0Om1YkNfrVPcwLczbNYc,3334
1096
1108
  meta_subject/models/hepatitis_test.py,sha256=_jfDlR_spt7h4KGsMDxmobgAaToKiAZdLGIXCqfH60o,1852
1097
1109
  meta_subject/models/malaria_test.py,sha256=4gQNBnvLDv70rjRcFBOpLPmYL8eeuqs0lRsJ7LrFqHM,343
@@ -1132,7 +1144,7 @@ meta_visit_schedule/visit_schedules/phase_three/schedule.py,sha256=LU1HRaV6o1UeK
1132
1144
  meta_visit_schedule/visit_schedules/phase_three/schedule_dm_referral.py,sha256=q12p5wXc2D7lSiJVBnoSQw8Q3vL6uDx1t3PuDJO-Z-U,1735
1133
1145
  meta_visit_schedule/visit_schedules/phase_three/schedule_pregnancy.py,sha256=bEpbpCX3vfZmnsqudr0z8PU5kiaX4ws1sO5Im98Mo28,1106
1134
1146
  meta_visit_schedule/visit_schedules/phase_three/visit_schedule.py,sha256=ak4qazeKlpIlvpqrK9hDDO0fwWuWyvb4Ec-JU31IJxc,654
1135
- meta_edc-1.1.18.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
1136
- meta_edc-1.1.18.dist-info/WHEEL,sha256=-neZj6nU9KAMg2CnCY6T3w8J53nx1kFGw_9HfoSzM60,79
1137
- meta_edc-1.1.18.dist-info/METADATA,sha256=bLmQSmkEEEPDlxi8c_WHM_b6Gq89C5i_z8-J6SdYf9Y,5136
1138
- meta_edc-1.1.18.dist-info/RECORD,,
1147
+ meta_edc-1.2.0.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
1148
+ meta_edc-1.2.0.dist-info/WHEEL,sha256=-neZj6nU9KAMg2CnCY6T3w8J53nx1kFGw_9HfoSzM60,79
1149
+ meta_edc-1.2.0.dist-info/METADATA,sha256=DiyZTaq7ut9pqEqAuJEpkcWT5wPdZDm5Ug_uyZokP9E,5166
1150
+ meta_edc-1.2.0.dist-info/RECORD,,
meta_labs/list_data.py CHANGED
@@ -6,11 +6,11 @@ model_data = {
6
6
  "address": "NIMR Tanzania",
7
7
  "postal_code": "-",
8
8
  "city": "Dar es Salaam",
9
- "state": None,
9
+ "state": "",
10
10
  "country": "Tanzania",
11
11
  "telephone": "+255763244779",
12
12
  "mobile": "+255763244779",
13
- "fax": None,
13
+ "fax": "",
14
14
  "email": "sokoinele@yahoo.co.uk",
15
15
  }
16
16
  ]
meta_prn/baker_recipes.py CHANGED
@@ -1,6 +1,6 @@
1
1
  from dateutil.relativedelta import relativedelta
2
2
  from django.utils import timezone
3
- from edc_constants.constants import YES
3
+ from edc_constants.constants import NULL_STRING, YES
4
4
  from faker import Faker
5
5
  from model_bakery.recipe import Recipe
6
6
 
@@ -12,17 +12,17 @@ fake = Faker()
12
12
  pregnancynotification = Recipe(
13
13
  PregnancyNotification,
14
14
  # site=None,
15
- action_identifier=None,
16
- subject_identifier=None,
15
+ action_identifier=NULL_STRING,
16
+ subject_identifier=NULL_STRING,
17
17
  report_datetime=timezone.now(),
18
18
  bhcg_confirmed=YES,
19
- unconfirmed_details=None,
19
+ unconfirmed_details=NULL_STRING,
20
20
  edd=timezone.now() + relativedelta(months=6),
21
21
  )
22
22
 
23
23
  dmreferral = Recipe(
24
24
  DmReferral,
25
- action_identifier=None,
26
- subject_identifier=None,
25
+ action_identifier=NULL_STRING,
26
+ subject_identifier=NULL_STRING,
27
27
  report_datetime=timezone.now(),
28
28
  )
@@ -0,0 +1,37 @@
1
+ # Generated by Django 5.2.7 on 2025-10-01 14:33
2
+
3
+ from django.db import migrations, models
4
+
5
+
6
+ class Migration(migrations.Migration):
7
+
8
+ dependencies = [
9
+ ("meta_prn", "0068_alter_dmreferral_referral_note_and_more"),
10
+ ]
11
+
12
+ operations = [
13
+ migrations.AlterField(
14
+ model_name="historicaloffstudymedication",
15
+ name="singleton_field",
16
+ field=models.CharField(
17
+ db_index=True,
18
+ default="",
19
+ editable=False,
20
+ help_text="auto updated for unique constraint",
21
+ max_length=50,
22
+ verbose_name="subject identifier",
23
+ ),
24
+ ),
25
+ migrations.AlterField(
26
+ model_name="offstudymedication",
27
+ name="singleton_field",
28
+ field=models.CharField(
29
+ default="",
30
+ editable=False,
31
+ help_text="auto updated for unique constraint",
32
+ max_length=50,
33
+ unique=True,
34
+ verbose_name="subject identifier",
35
+ ),
36
+ ),
37
+ ]
@@ -0,0 +1,197 @@
1
+ # Generated by Django 5.2.6 on 2025-09-30 05:07
2
+
3
+ import _socket
4
+ import django.db.models.deletion
5
+ import django.db.models.manager
6
+ import django.utils.timezone
7
+ import django_audit_fields.fields.hostname_modification_field
8
+ import django_audit_fields.fields.userfield
9
+ import django_audit_fields.fields.uuid_auto_field
10
+ import django_revision.revision_field
11
+ import edc_sites.managers
12
+ from django.db import migrations, models
13
+
14
+
15
+ class Migration(migrations.Migration):
16
+
17
+ dependencies = [
18
+ (
19
+ "meta_rando",
20
+ "0006_alter_historicalrandomizationlist_allocated_user_and_more",
21
+ ),
22
+ ("sites", "0002_alter_domain_unique"),
23
+ ]
24
+
25
+ operations = [
26
+ migrations.CreateModel(
27
+ name="SpfqList",
28
+ fields=[
29
+ (
30
+ "revision",
31
+ django_revision.revision_field.RevisionField(
32
+ blank=True,
33
+ default="",
34
+ editable=False,
35
+ help_text="System field. From git repository (tag:branch:commit), project metadata, project toml, project VERSION, or settings.",
36
+ max_length=75,
37
+ verbose_name="Revision",
38
+ ),
39
+ ),
40
+ (
41
+ "created",
42
+ models.DateTimeField(blank=True, default=django.utils.timezone.now),
43
+ ),
44
+ (
45
+ "modified",
46
+ models.DateTimeField(blank=True, default=django.utils.timezone.now),
47
+ ),
48
+ (
49
+ "user_created",
50
+ django_audit_fields.fields.userfield.UserField(
51
+ blank=True,
52
+ default="",
53
+ help_text="Updated by admin.save_model",
54
+ max_length=50,
55
+ verbose_name="user created",
56
+ ),
57
+ ),
58
+ (
59
+ "user_modified",
60
+ django_audit_fields.fields.userfield.UserField(
61
+ blank=True,
62
+ default="",
63
+ help_text="Updated by admin.save_model",
64
+ max_length=50,
65
+ verbose_name="user modified",
66
+ ),
67
+ ),
68
+ (
69
+ "hostname_created",
70
+ models.CharField(
71
+ blank=True,
72
+ default=_socket.gethostname,
73
+ help_text="System field. (modified on create only)",
74
+ max_length=60,
75
+ verbose_name="Hostname created",
76
+ ),
77
+ ),
78
+ (
79
+ "hostname_modified",
80
+ django_audit_fields.fields.hostname_modification_field.HostnameModificationField(
81
+ blank=True,
82
+ default="",
83
+ help_text="System field. (modified on every save)",
84
+ max_length=50,
85
+ verbose_name="Hostname modified",
86
+ ),
87
+ ),
88
+ (
89
+ "device_created",
90
+ models.CharField(
91
+ blank=True,
92
+ default="",
93
+ max_length=10,
94
+ verbose_name="Device created",
95
+ ),
96
+ ),
97
+ (
98
+ "device_modified",
99
+ models.CharField(
100
+ blank=True,
101
+ default="",
102
+ max_length=10,
103
+ verbose_name="Device modified",
104
+ ),
105
+ ),
106
+ (
107
+ "locale_created",
108
+ models.CharField(
109
+ blank=True,
110
+ default="",
111
+ help_text="Auto-updated by Modeladmin",
112
+ max_length=10,
113
+ verbose_name="Locale created",
114
+ ),
115
+ ),
116
+ (
117
+ "locale_modified",
118
+ models.CharField(
119
+ blank=True,
120
+ default="",
121
+ help_text="Auto-updated by Modeladmin",
122
+ max_length=10,
123
+ verbose_name="Locale modified",
124
+ ),
125
+ ),
126
+ (
127
+ "id",
128
+ django_audit_fields.fields.uuid_auto_field.UUIDAutoField(
129
+ blank=True,
130
+ editable=False,
131
+ help_text="System auto field. UUID primary key.",
132
+ primary_key=True,
133
+ serialize=False,
134
+ ),
135
+ ),
136
+ ("subject_identifier", models.CharField(max_length=50, unique=True)),
137
+ ("sid", models.IntegerField(unique=True)),
138
+ ("last_visit_code", models.CharField(max_length=25)),
139
+ ("last_appt_datetime", models.DateTimeField()),
140
+ (
141
+ "gender",
142
+ models.CharField(
143
+ choices=[("M", "Male"), ("F", "Female")], max_length=10
144
+ ),
145
+ ),
146
+ (
147
+ "weight_bin",
148
+ models.CharField(
149
+ choices=[
150
+ ("lt_35", "<35"),
151
+ ("gte_35__lte_49", "35-49"),
152
+ ("gte_50", ">=50"),
153
+ ],
154
+ max_length=25,
155
+ ),
156
+ ),
157
+ ("date_generated", models.DateTimeField()),
158
+ (
159
+ "site",
160
+ models.ForeignKey(
161
+ null=True,
162
+ on_delete=django.db.models.deletion.PROTECT,
163
+ related_name="+",
164
+ to="sites.site",
165
+ ),
166
+ ),
167
+ ],
168
+ options={
169
+ "verbose_name": "SPFQ List",
170
+ "verbose_name_plural": "SPFQ List",
171
+ "abstract": False,
172
+ "default_permissions": (
173
+ "add",
174
+ "change",
175
+ "delete",
176
+ "view",
177
+ "export",
178
+ "import",
179
+ ),
180
+ "default_manager_name": "objects",
181
+ "indexes": [
182
+ models.Index(
183
+ fields=["modified", "created"],
184
+ name="meta_rando__modifie_f4fcd8_idx",
185
+ ),
186
+ models.Index(
187
+ fields=["user_modified", "user_created"],
188
+ name="meta_rando__user_mo_79b855_idx",
189
+ ),
190
+ ],
191
+ },
192
+ managers=[
193
+ ("on_site", edc_sites.managers.CurrentSiteManager()),
194
+ ("objects", django.db.models.manager.Manager()),
195
+ ],
196
+ ),
197
+ ]
@@ -0,0 +1,16 @@
1
+ # Generated by Django 5.2.6 on 2025-09-30 22:50
2
+
3
+ from django.db import migrations
4
+
5
+
6
+ class Migration(migrations.Migration):
7
+
8
+ dependencies = [
9
+ ("meta_rando", "0007_spfqlist"),
10
+ ]
11
+
12
+ operations = [
13
+ migrations.DeleteModel(
14
+ name="SpfqList",
15
+ ),
16
+ ]
@@ -0,0 +1 @@
1
+ from .randomization_list import RandomizationList
@@ -1,12 +1,12 @@
1
1
  from django.db import models
2
2
  from edc_constants.choices import GENDER
3
- from edc_model import models as edc_models
3
+ from edc_model.models import BaseUuidModel
4
4
  from edc_randomization.model_mixins import RandomizationListModelMixin
5
5
 
6
6
 
7
- class RandomizationList(RandomizationListModelMixin, edc_models.BaseUuidModel):
7
+ class RandomizationList(RandomizationListModelMixin, BaseUuidModel):
8
8
  gender = models.CharField(max_length=25, choices=GENDER)
9
9
 
10
- class Meta(RandomizationListModelMixin.Meta, edc_models.BaseUuidModel.Meta):
10
+ class Meta(RandomizationListModelMixin.Meta, BaseUuidModel.Meta):
11
11
  verbose_name = "Randomization List (Phase Three)"
12
12
  verbose_name_plural = "Randomization List (Phase Three)"