Skip to content

Commit

Permalink
Merge branch 'release/0.3.71' into main
Browse files Browse the repository at this point in the history
  • Loading branch information
erikvw committed Jan 26, 2024
2 parents cff2020 + 24d7a6d commit 8f2b177
Show file tree
Hide file tree
Showing 6 changed files with 33 additions and 22 deletions.
7 changes: 0 additions & 7 deletions edc_adverse_event/apps.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,3 @@ class AppConfig(DjangoAppConfig):
verbose_name = "Adverse Events"
has_exportable_data = True
include_in_administration_section = True

def ready(self):
from .signals import post_delete_ae_susar # noqa; noqa
from .signals import update_ae_initial_for_susar # noqa
from .signals import update_ae_initial_susar_reported # noqa
from .signals import update_ae_notifications_for_tmg_group # noqa
from .signals import update_death_notifications_for_tmg_group # noqa
2 changes: 1 addition & 1 deletion edc_adverse_event/auths.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from edc_auth.auth_objects import (
from edc_auth.constants import (
AUDITOR_ROLE,
CLINICIAN_ROLE,
CLINICIAN_SUPER_ROLE,
Expand Down
7 changes: 7 additions & 0 deletions edc_adverse_event/models/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,10 @@
from .cause_of_death import CauseOfDeath
from .edc_permissions import EdcPermissions
from .sae_reason import SaeReason
from .signals import (
post_delete_ae_susar,
update_ae_initial_for_susar,
update_ae_initial_susar_reported,
update_ae_notifications_for_tmg_group,
update_death_notifications_for_tmg_group,
)
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,8 @@
from edc_notification.models import Notification
from edc_utils import get_utcnow

from .constants import AE_TMG_ACTION, DEATH_REPORT_TMG_ACTION, TMG
from .utils import get_ae_model

AeInitial = get_ae_model("AeInitial")
AeSusar = get_ae_model("AeSusar")
from ..constants import AE_TMG_ACTION, DEATH_REPORT_TMG_ACTION, TMG
from ..utils import get_ae_model


@receiver(m2m_changed, weak=False, dispatch_uid="update_ae_notifications_for_tmg_group")
Expand All @@ -36,10 +33,13 @@ def update_ae_notifications_for_tmg_group(
instance.userprofile.email_notifications.add(tmg_ae_notification)


@receiver(post_save, sender=AeSusar, weak=False, dispatch_uid="update_ae_initial_for_susar")
@receiver(post_save, weak=False, dispatch_uid="update_ae_initial_for_susar")
def update_ae_initial_for_susar(sender, instance, raw, update_fields, **kwargs):
if not raw and not update_fields:
if getattr(instance.ae_initial, "susar", None):
ae_susar_model_cls = get_ae_model("AeSusar")
if isinstance(instance, (ae_susar_model_cls,)) and getattr(
instance.ae_initial, "susar", None
):
if instance.submitted_datetime:
if instance.ae_initial.susar_reported != YES:
instance.ae_initial.susar = YES
Expand All @@ -53,26 +53,32 @@ def update_ae_initial_for_susar(sender, instance, raw, update_fields, **kwargs):

@receiver(
post_save,
sender=AeInitial,
weak=False,
dispatch_uid="update_ae_initial_susar_reported",
)
def update_ae_initial_susar_reported(sender, instance, raw, update_fields, **kwargs):
if not raw and not update_fields:
if getattr(instance, "susar", None):
ae_initial_model_cls = get_ae_model("AeInitial")
if isinstance(instance, (ae_initial_model_cls,)) and getattr(instance, "susar", None):
ae_susar_model_cls = get_ae_model("AeSusar")
if instance.susar == YES and instance.susar_reported == YES:
try:
with transaction.atomic():
AeSusar.objects.get(ae_initial=instance)
ae_susar_model_cls.objects.get(ae_initial=instance)
except ObjectDoesNotExist:
AeSusar.objects.create(
ae_susar_model_cls.objects.create(
ae_initial=instance, submitted_datetime=get_utcnow()
)


@receiver(post_delete, sender=AeSusar, weak=False, dispatch_uid="post_delete_ae_susar")
@receiver(post_delete, weak=False, dispatch_uid="post_delete_ae_susar")
def post_delete_ae_susar(instance, **kwargs):
if instance.ae_initial.susar == YES and instance.ae_initial.susar_reported != NO:
ae_susar_model_cls = get_ae_model("AeSusar")
if (
isinstance(instance, (ae_susar_model_cls,))
and instance.ae_initial.susar == YES
and instance.ae_initial.susar_reported != NO
):
instance.ae_initial.susar_reported = NO
instance.ae_initial.save()

Expand Down
3 changes: 2 additions & 1 deletion edc_adverse_event/notifications.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from edc_notification import GradedEventNotification, ModelNotification, register
from edc_notification.decorators import register
from edc_notification.notification import GradedEventNotification, ModelNotification

from .utils import get_adverse_event_app_label

Expand Down
4 changes: 4 additions & 0 deletions runtests.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,10 +46,13 @@
"edc_appointment.apps.AppConfig",
"edc_consent.apps.AppConfig",
"edc_crf.apps.AppConfig",
"edc_data_manager.apps.AppConfig",
"edc_dashboard.apps.AppConfig",
"edc_device.apps.AppConfig",
"edc_facility.apps.AppConfig",
"edc_form_runners.apps.AppConfig",
"edc_identifier.apps.AppConfig",
"edc_lab.apps.AppConfig",
"edc_list_data.apps.AppConfig",
"edc_locator.apps.AppConfig",
"edc_metadata.apps.AppConfig",
Expand All @@ -65,6 +68,7 @@
"edc_visit_tracking.apps.AppConfig",
"edc_visit_schedule.apps.AppConfig",
"adverse_event_app.apps.AppConfig",
"edc_appconfig.apps.AppConfig",
],
add_dashboard_middleware=True,
).settings
Expand Down

0 comments on commit 8f2b177

Please sign in to comment.