Skip to content

Commit

Permalink
exclude CRFs / Requisitions by site_id
Browse files Browse the repository at this point in the history
  • Loading branch information
erikvw committed Jul 6, 2018
1 parent d6095bb commit 59397bf
Show file tree
Hide file tree
Showing 4 changed files with 43 additions and 4 deletions.
36 changes: 35 additions & 1 deletion edc_visit_schedule/tests/test_forms_collection.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
from django.test import TestCase, tag

from ..visit import Crf, FormsCollection, FormsCollectionError
from django.test.utils import override_settings


class TestFormsCollection(TestCase):
Expand All @@ -27,5 +28,38 @@ def test_forms_collection_order(self):
FormsCollection(*crfs)
except FormsCollectionError as e:
self.fail(f'FormsCollectionError unexpectedly raised. Got {e}')
crfs.append(0)
crfs.append(Crf(show_order=0, model='x.x'))
self.assertRaises(FormsCollectionError, FormsCollection, *crfs)

@override_settings(SITE_ID=40)
def test_forms_collection_excludes_by_site_id(self):
crfs = []
for i in range(0, 5):
crfs.append(Crf(show_order=i, model=f'x.{i}'))
for i in range(6, 11):
crfs.append(
Crf(show_order=i, model=f'x.{i}', site_ids=[10]))
forms = FormsCollection(*crfs)
self.assertEqual(len(forms.forms), 5)

@override_settings(SITE_ID=40)
def test_forms_collection_excludes_by_site_id2(self):
crfs = []
for i in range(0, 5):
crfs.append(Crf(show_order=i, model=f'x.{i}'))
for i in range(6, 11):
crfs.append(
Crf(show_order=i, model=f'x.{i}', site_ids=[40]))
forms = FormsCollection(*crfs)
self.assertEqual(len(forms.forms), 10)

@override_settings(SITE_ID=40)
def test_forms_collection_excludes_by_site_id3(self):
crfs = []
for i in range(0, 5):
crfs.append(Crf(show_order=i, model=f'x.{i}'))
for i in range(6, 11):
crfs.append(
Crf(show_order=i, model=f'x.{i}'))
forms = FormsCollection(*crfs)
self.assertEqual(len(forms.forms), 10)
3 changes: 2 additions & 1 deletion edc_visit_schedule/visit/crf.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,12 @@ class CrfLookupError(Exception):
class Crf:

def __init__(self, show_order=None, model=None, required=None,
additional=None):
additional=None, site_ids=None):
self.additional = additional
self.model = model
self.required = True if required is None else required
self.show_order = show_order
self.site_ids = site_ids or []

def __repr__(self):
return (f'{self.__class__.__name__}({self.show_order}, '
Expand Down
6 changes: 6 additions & 0 deletions edc_visit_schedule/visit/forms_collection.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
from django.conf import settings
from pprint import pprint


class FormsCollectionError(Exception):
pass
Expand All @@ -9,6 +12,9 @@ def __init__(self, *forms, name=None, **kwargs):
self._forms = None
self.name = name
forms = [] if not forms or forms == (None,) else list(forms)
pprint(forms)
forms = [
f for f in forms if not f.site_ids or settings.SITE_ID in f.site_ids]

# sort on show order
try:
Expand Down
2 changes: 0 additions & 2 deletions edc_visit_schedule/visit/visit.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

from django.apps import apps as django_apps

from .forms_collection import FormsCollection
from .window_period import WindowPeriod


Expand Down Expand Up @@ -43,7 +42,6 @@ def base(self, dt=None):
class Visit:

code_regex = r'^([A-Z0-9])+$'
forms_collection_cls = FormsCollection
visit_date_cls = VisitDate

def __init__(self, code=None, timepoint=None, rbase=None, rlower=None,
Expand Down

0 comments on commit 59397bf

Please sign in to comment.