meta-edc 0.3.39__py3-none-any.whl → 0.3.40__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.
@@ -9,7 +9,7 @@ from edc_dashboard.url_names import url_names
9
9
  from edc_dashboard.utils import get_bootstrap_version
10
10
 
11
11
  from meta_consent.models import SubjectConsent
12
- from meta_dashboard.view_utils.subject_screening_button import (
12
+ from meta_dashboard.view_utils import (
13
13
  SubjectScreeningPartOneButton,
14
14
  SubjectScreeningPartThreeButton,
15
15
  SubjectScreeningPartTwoButton,
@@ -0,0 +1,6 @@
1
+ from .subject_screening_button import (
2
+ SubjectScreeningButton,
3
+ SubjectScreeningPartOneButton,
4
+ SubjectScreeningPartThreeButton,
5
+ SubjectScreeningPartTwoButton,
6
+ )
@@ -36,3 +36,7 @@ if os.path.exists(BASE_DIR) and not os.path.exists(KEY_PATH): # noqa
36
36
  # if debugging, run `export DJANGO_DEBUG=True` before running runserver
37
37
  # CELERY_TASK_ALWAYS_EAGER = os.getenv("DJANGO_DEBUG", "False") == "True"
38
38
  # CELERY_TASK_EAGER_PROPAGATES = CELERY_TASK_ALWAYS_EAGER
39
+
40
+ EDC_PDF_REPORTS_WATERMARK_WORD = "SAMPLE"
41
+ EDC_PDF_REPORTS_WATERMARK_FONT = ("Helvetica", 100)
42
+ EDC_PHARMACY_LABEL_WATERMARK_WORD = "DO NOT USE"
@@ -59,7 +59,7 @@ a { cursor: pointer; }
59
59
  {% if perms.meta_reports %}
60
60
  <a href="{% url 'meta_reports:home_url' %}" class="list-group-item"><i class="fa-solid fa-stroopwafel fa-lg fa-fw"></i></i>&nbsp;&nbsp;&nbsp;QA Reports</a>
61
61
  {% endif %}
62
- {% if perms.edc_navbar.nav_pharmacy_section %}
62
+ {% if perms.edc_pharmacy.nav_pharmacy_section %}
63
63
  <a href="{% url 'edc_pharmacy:home_url' %}" class="list-group-item"><i class="fas fa-prescription fa-lg fa-fw"></i>&nbsp;&nbsp;&nbsp;Pharmacy</a>
64
64
  {% endif %}
65
65
  {% if perms.edc_export %}
@@ -85,6 +85,7 @@ class AdminSiteTest(MetaTestCaseMixin, WebTest):
85
85
  import_module("edc_adverse_event.auths")
86
86
  import_module("edc_appointment.auths")
87
87
  import_module("edc_consent.auths")
88
+ import_module("edc_pylabels.auths")
88
89
  import_module("edc_dashboard.auths")
89
90
  import_module("edc_data_manager.auths")
90
91
  import_module("edc_qareports.auths")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: meta-edc
3
- Version: 0.3.39
3
+ Version: 0.3.40
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
@@ -693,7 +693,7 @@ Requires-Python: >=3.12
693
693
  Description-Content-Type: text/x-rst
694
694
  License-File: LICENSE
695
695
  License-File: AUTHORS
696
- Requires-Dist: edc==0.6.14
696
+ Requires-Dist: edc==0.6.15
697
697
  Requires-Dist: edc-microscopy
698
698
  Requires-Dist: beautifulsoup4
699
699
  Requires-Dist: celery[redis]
@@ -191,13 +191,13 @@ meta_dashboard/templates/meta_dashboard/bootstrap3/subject/dashboard.html,sha256
191
191
  meta_dashboard/templates/meta_dashboard/bootstrap3/subject/listboard.html,sha256=AyVcossXTf7grSrbWaz7Wek12YRixEdddxEQWatSXgs,1398
192
192
  meta_dashboard/templates/meta_dashboard/bootstrap3/subject/dashboard/top_bar.html,sha256=5u2ySYTBEwsKKLmQaEmPoObvtx1vduwIcy9DvkS4AO0,230
193
193
  meta_dashboard/templatetags/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
194
- meta_dashboard/templatetags/meta_dashboard_extras.py,sha256=d_jtyuxSbIhSpKkA5uI5ffCPei4dABo6kOMpb2G73C4,3947
194
+ meta_dashboard/templatetags/meta_dashboard_extras.py,sha256=aVUypkmzt4ih7zFcqTak26jmFyxZUeO6yxIN_OUycBw,3922
195
195
  meta_dashboard/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
196
196
  meta_dashboard/tests/admin.py,sha256=4k_kM3YURLIInujRNpPRql3rLxODOZQhCXueoUdU064,716
197
197
  meta_dashboard/tests/holidays.csv,sha256=LIEIm79wHRzbfXcFW_2ogFOYEZaWEGF1hwgOzZy2y34,538
198
198
  meta_dashboard/tests/urls.py,sha256=FJlQvMLAMbR7UBW2Kl6VQXW9XmYOvqXnZJ4SeQh535E,2674
199
199
  meta_dashboard/tests/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
200
- meta_dashboard/view_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
200
+ meta_dashboard/view_utils/__init__.py,sha256=qkoHOxLcwAr53q1e_aR5mx0ZSEX6kAC8bShg82UOJ40,177
201
201
  meta_dashboard/view_utils/subject_screening_button.py,sha256=NEDMydqrz7FoYMXViOpnvGpFzcRer_I_cfBkt3Mx-84,3327
202
202
  meta_dashboard/views/__init__.py,sha256=TWsNFphAI57Bw2d-X-fy7yayR8AlbtWJ5Wx3YjZPntQ,222
203
203
  meta_dashboard/views/ae/__init__.py,sha256=YjsScDD8GqpXOwZGMgAWZfo64JSc117no6pCt3uGDBo,113
@@ -233,17 +233,17 @@ meta_edc/management/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NM
233
233
  meta_edc/management/commands/update_forms_reference.py,sha256=_DiCqhHUk8lGhDGlsjOA069EE-g7UBDlZQCH6L1xiHo,1003
234
234
  meta_edc/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
235
235
  meta_edc/settings/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
236
- meta_edc/settings/debug.py,sha256=BAM92tixl3zuBypdK2aiBrAnQJTXH_X1HbxLj1m-jZI,1152
236
+ meta_edc/settings/debug.py,sha256=ys60bSDcEMbWewoTdE4HRIp2woOwy3RPjIgXMUCEJpQ,1296
237
237
  meta_edc/settings/defaults.py,sha256=pUyhSJdaYlvpoEPuU0mAWB3XFUL8xjblhald4DjZ3gs,19165
238
238
  meta_edc/settings/live.py,sha256=uLTlsIc3H6gdE_7pkL6vyOVa6V_74hnXFkiojqGFAYY,264
239
239
  meta_edc/settings/logging.py,sha256=6qVUE37OMkf5rzwTmMq4krFsZ2jcyCpWdFtGih_Cs4U,1938
240
240
  meta_edc/settings/minimal.py,sha256=3z-7GBluflnUkuSotKZlYvpL34NZ6tfFNuQNJLCyflo,592
241
241
  meta_edc/settings/uat.py,sha256=P1hovGPgCnuyiVZ-RuZfoEskAEz39hkMAVGjEeP7RDM,270
242
242
  meta_edc/templates/meta_edc/bootstrap3/base.html,sha256=8Agovk1eTpW-2oAgVGsYwL_DAD6zB3DNwGGpPJ2bx-g,165
243
- meta_edc/templates/meta_edc/bootstrap3/home.html,sha256=7dZi4nPEslUm6WwAmE_ow-BT9sOyxRefMmk1PU_4Ez0,4588
243
+ meta_edc/templates/meta_edc/bootstrap3/home.html,sha256=JjNhNaLXUUCMwTmUm7F5fdNOj6GdXJspfsXx3-0OV6U,4590
244
244
  meta_edc/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
245
245
  meta_edc/tests/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
246
- meta_edc/tests/tests/test_endpoints.py,sha256=Vo7rOuBUqCwVWBLSPgwRBqiyU6o4Wc-7Em84PBwFJw0,23497
246
+ meta_edc/tests/tests/test_endpoints.py,sha256=5FdIHTd1xhUIgQLBzMV-Ml3VoFrlBrLLUbNarme5raw,23541
247
247
  meta_edc/views/__init__.py,sha256=TBXTih4Mpsg5Oh2jbyXqL9kH7bu3vWNRgVe93hvLCl8,32
248
248
  meta_edc/views/home_view.py,sha256=a3A0DMoqCWQuLkb2MSIR-I0Su-mVU5D82FwAIC21low,1006
249
249
  meta_export/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -299,13 +299,12 @@ meta_pharmacy/list_data.py,sha256=HB_TuRUEq01tG-KB1gGzT1V84m4JGYiMT9IoqJInEVc,21
299
299
  meta_pharmacy/prepare_meta_pharmacy.py,sha256=5gNiPkmOzWwCW-_q6hgIzj_0tnPuN4Tl1lVI6FygNgs,2945
300
300
  meta_pharmacy/urls.py,sha256=jncXssL_SeRhb_OJVXLdGFvPT3BqtrkSPdq-eyJnGfY,207
301
301
  meta_pharmacy/admin/__init__.py,sha256=ZnYHFOt9xatSSEhPoGtWC6zCvsaygIJX3qJy7iZ9qWk,82
302
- meta_pharmacy/admin/actions.py,sha256=wRVN7mmZDT0w8FpBLPPZhkTc72WFFd-xGxzsFpcm5Fs,1314
303
302
  meta_pharmacy/admin/rx_admin.py,sha256=SQGsugSnhbU3YUk_ssSTMmCH6no8ZkHoqLLkbZbBbk0,1851
304
303
  meta_pharmacy/admin/substitutions_admin.py,sha256=N2WcuC4REAEX0zrNqQHsPbZI82I4T5UM7EP-ohDOSSI,1934
305
304
  meta_pharmacy/forms/__init__.py,sha256=5d28GOPegzZ9ptI-tVx_E19yPTrJ_wQh16xr9ivmS6M,78
306
305
  meta_pharmacy/forms/rx_form.py,sha256=zqt45XGAv2Zj4p7k-CDGUHF0LKoeYnncHJBZ3MmN4qI,319
307
306
  meta_pharmacy/forms/substitutions_form.py,sha256=f37xagh6D00w3iu6zvh45UWX_L9oD0FsW_0fTsB7540,1894
308
- meta_pharmacy/labels/__init__.py,sha256=2HgWs6k0cwsAEbwazzorAW-T00238zNBJ111TxM5Gso,223
307
+ meta_pharmacy/labels/__init__.py,sha256=k1LKzruteQ1jUmPkh0vzzzmi4kjOANJhborPRLc8Mcw,228
309
308
  meta_pharmacy/labels/draw_label_for_subject_with_barcode.py,sha256=RWJDIoiHZQp8e5N2LEW2Mu8qwI6qAkxfOPALf52TlZI,2155
310
309
  meta_pharmacy/labels/draw_label_for_subject_with_code128.py,sha256=dK1F_N91Fhw8rtKi3GWRjbYw5V-XfOjzpF2UDBsE65M,459
311
310
  meta_pharmacy/labels/draw_label_with_test_data.py,sha256=KQeQZEka3-2FL1hLIr7Sn9XQX6eXLOOJUlbS612AORA,1188
@@ -1127,11 +1126,11 @@ meta_subject/tests/tests/test_fixes.py,sha256=2jOB0lcEonJft5rWEbrDEtGCuGLaaUN8zA
1127
1126
  meta_subject/tests/tests/test_followup.py,sha256=rembohm-ecEp9rGFdjc2CkvXGfYZ8A8BOX0MdBBZSF0,1871
1128
1127
  meta_subject/tests/tests/test_manager_order.py,sha256=wmVxMd85mJ6HGAL_3Z_mSp_mqeNQvK7MW_6mvQPDeO8,454
1129
1128
  meta_subject/tests/tests/test_medication_adherence.py,sha256=o-4vTFx4GdYBS_lWiKpycA8IOce9nTB1_7vAl4HAKhI,2517
1130
- meta_subject/tests/tests/test_metadata_rules.py,sha256=LUBYByb9t9dClj_LKzHA-WpHQba56KwRqpr7BaCVbNI,5717
1129
+ meta_subject/tests/tests/test_metadata_rules.py,sha256=4mSQVXf4EteDUUjrRkpKhOzDukEBC1M9IXkyg0MEAOA,5712
1131
1130
  meta_subject/tests/tests/test_mnsi.py,sha256=wAXHGupWJh-7vSNyeYyT1F4n6JNZFCIfDKs-M_XuPzQ,13585
1132
1131
  meta_subject/tests/tests/test_patient_history_form.py,sha256=JzqCx_-g2jeknngGl94FhZNVCl0CfnWIAZ9R11y7-wY,2827
1133
1132
  meta_subject/tests/tests/test_physical_exam.py,sha256=U3TKOPWTVu8iXxsS8LGgJJEY8e2sKJ5iTBcIWIHKCAo,2947
1134
- meta_subject/tests/tests/test_sf12.py,sha256=8FMdZGG-boyu3zs37kLR8M2Wf7Xf0MevHYlQLX5Odgs,7330
1133
+ meta_subject/tests/tests/test_sf12.py,sha256=5Daf-R4EeLjfDpsC5PZELfPIqY--joGzrj8nPVUiatI,6837
1135
1134
  meta_subject/tests/tests/test_study_medication.py,sha256=EFvAvjxJ1c0Bk-vi6S8ejf9Q5UsQ8c0PSTw9l-1iHvo,10161
1136
1135
  meta_visit_schedule/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1137
1136
  meta_visit_schedule/apps.py,sha256=Uy3glJJ3-yCcXZ_MvhDEzxVxQbBuCTsZxLNmd5p1DHw,164
@@ -1164,9 +1163,9 @@ tests/etc/user-rsa-restricted-private.pem,sha256=CUcHW9bznWdmmASN00hCzvxFPAFl4N2
1164
1163
  tests/etc/user-rsa-restricted-public.pem,sha256=mt84djoL-uHw6Wc5SJh0zml6VzXulnf8eQSFg7-fheg,450
1165
1164
  tests/etc/user-salt-local.key,sha256=x5anBw9fvbHurczouT3CjrkWb_xs7Ypm1htIJsgiuiw,256
1166
1165
  tests/etc/user-salt-restricted.key,sha256=pxmpcfBRNB-4C6wTvHXz-9fOfJgKIFOjaAF8ZFfa4q4,256
1167
- meta_edc-0.3.39.dist-info/AUTHORS,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1168
- meta_edc-0.3.39.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
1169
- meta_edc-0.3.39.dist-info/METADATA,sha256=j3D64wRKMMzgZj04aExF7BIiYqchhoPycYjV0xhPaJI,43529
1170
- meta_edc-0.3.39.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
1171
- meta_edc-0.3.39.dist-info/top_level.txt,sha256=RkzjNXwRq2kg_uZ_1bDwPUntijSXoY2YBqtByDwvvrc,244
1172
- meta_edc-0.3.39.dist-info/RECORD,,
1166
+ meta_edc-0.3.40.dist-info/AUTHORS,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1167
+ meta_edc-0.3.40.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
1168
+ meta_edc-0.3.40.dist-info/METADATA,sha256=VQe8G_-Y-Iy0xli87MoKXUZxDcROe4qyFGljtnm0Ooo,43529
1169
+ meta_edc-0.3.40.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
1170
+ meta_edc-0.3.40.dist-info/top_level.txt,sha256=RkzjNXwRq2kg_uZ_1bDwPUntijSXoY2YBqtByDwvvrc,244
1171
+ meta_edc-0.3.40.dist-info/RECORD,,
@@ -1,4 +1,5 @@
1
1
  from .draw_label_for_subject_with_code128 import draw_label_for_subject_with_code128
2
2
  from .draw_label_with_test_data import draw_label_with_test_data
3
- from .label_data import LabelData
4
- from .print_sheets import print_sheets
3
+
4
+ # from .label_data import LabelData
5
+ # from .print_sheets import print_sheets
@@ -99,8 +99,8 @@ class TestMetadataRules(MetaTestCaseMixin, TestCase):
99
99
  subject_screening=subject_screening,
100
100
  subject_consent=subject_consent,
101
101
  )
102
- self.assertEqual(
103
- ["meta_subject.delivery"],
102
+ self.assertIn(
103
+ "meta_subject.delivery",
104
104
  [obj.model for obj in self.get_crf_metadata(subject_visit)],
105
105
  )
106
106
 
@@ -9,7 +9,6 @@ from django.test import TestCase
9
9
  from edc_constants.constants import COMPLETE, YES
10
10
  from edc_metadata import KEYED, NOT_REQUIRED, REQUIRED
11
11
  from edc_metadata.metadata import CrfMetadataGetter
12
- from edc_metadata.metadata_handler import MetadataHandlerError
13
12
  from edc_qol.constants import ALL_OF_THE_TIME, NONE_OF_THE_TIME, SOME_OF_THE_TIME
14
13
  from edc_visit_schedule.constants import MONTH1, MONTH3, WEEK2
15
14
 
@@ -42,17 +41,6 @@ class TestSf12(MetaTestCaseMixin, TestCase):
42
41
  site=Site.objects.get(id=settings.SITE_ID),
43
42
  )
44
43
 
45
- def test_baseline_not_required(self):
46
- form = Sf12Form(data=self.data)
47
- form.is_valid()
48
- self.assertEqual({}, form._errors)
49
- self.assertRaises(MetadataHandlerError, form.save)
50
-
51
- crf_metadata_getter = CrfMetadataGetter(appointment=self.subject_visit.appointment)
52
- self.assertFalse(
53
- crf_metadata_getter.metadata_objects.filter(model="meta_subject.sf12").exists()
54
- )
55
-
56
44
  def test_1005_required(self):
57
45
  subject_visit = self.get_next_subject_visit(self.subject_visit)
58
46
  self.assertEqual(subject_visit.visit_code, WEEK2)
@@ -1,38 +0,0 @@
1
- import random
2
-
3
- from django.contrib import messages
4
- from django.http import FileResponse
5
- from django.utils.translation import gettext as _
6
- from django_pylabels.models import LabelSpecification
7
- from edc_utils import get_utcnow
8
- from pylabels import Sheet, Specification
9
-
10
- from ..labels import draw_label_with_code39
11
- from ..models import LabelData
12
-
13
- random.seed(7825541)
14
-
15
-
16
- def print_label_sheet(modeladmin, request, queryset):
17
- label_data = [obj for obj in queryset]
18
- obj = LabelSpecification.objects.get(name="meta3")
19
- specs = Specification(**obj.as_dict)
20
- sheet = Sheet(specs, draw_label_with_code39, border=obj.border)
21
- sheet.add_labels(label_data)
22
- buffer = sheet.save_to_buffer()
23
- now = get_utcnow()
24
- queryset.update(printed=True, printed_datetime=now)
25
- return FileResponse(
26
- buffer, as_attachment=True, filename=f"{obj.name}_{now.strftime("%Y-%m-%d %H:%M")}.pdf"
27
- )
28
-
29
-
30
- def print_label_sheet_from_batch(modeladmin, request, queryset):
31
- if queryset.count() > 1 or queryset.count() == 0:
32
- messages.add_message(
33
- request,
34
- messages.ERROR,
35
- _("Select one and only one existing label specification"),
36
- )
37
- queryset = LabelData.objects.filter(label_batch=queryset.first())
38
- return print_label_sheet(modeladmin, request, queryset)