forked from botswana-harvard/edc-metadata
-
Notifications
You must be signed in to change notification settings - Fork 1
/
metadata_wrappers.py
33 lines (24 loc) · 1.09 KB
/
metadata_wrappers.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
from __future__ import annotations
from django.core.management.color import color_style
from ..metadata import MetadataGetter
from .metadata_wrapper import MetadataWrapper
style = color_style()
class MetadataWrappers:
"""A class that generates a collection of MetadataWrapper objects, e.g. CRF
or REQUISITION, from a queryset of metadata objects.
See also classes Crf, Requisition in edc_visit_schedule.
"""
metadata_getter_cls: MetadataGetter = MetadataGetter
metadata_wrapper_cls: MetadataWrapper = MetadataWrapper
def __init__(self, **kwargs) -> None:
metadata_getter = self.metadata_getter_cls(**kwargs)
self.objects = []
if metadata_getter.related_visit:
for metadata_obj in metadata_getter.metadata_objects:
metadata_wrapper = self.metadata_wrapper_cls(
metadata_obj=metadata_obj,
visit=metadata_getter.related_visit,
)
self.objects.append(metadata_wrapper)
def __repr__(self) -> str:
return f"{self.__class__.__name__}({self.objects})"