Coverage for apis_core/apis_relations/signals.py: 44%

18 statements  

« prev     ^ index     » next       coverage.py v7.6.1, created at 2024-09-16 07:42 +0000

1import logging 

2 

3from django.dispatch import receiver 

4 

5from apis_core.apis_metainfo.models import RootObject 

6from apis_core.apis_metainfo.signals import post_duplicate 

7from apis_core.apis_relations.models import TempTriple 

8 

9logger = logging.getLogger(__name__) 

10 

11 

12@receiver(post_duplicate) 

13def copy_relations(sender, instance, duplicate, **kwargs): 

14 logger.info(f"Copying relations from {instance} to {duplicate}") 

15 if isinstance(instance, RootObject): 

16 for rel in TempTriple.objects.filter(subj=instance): 

17 newrel = rel.duplicate() 

18 newrel.subj = duplicate 

19 newrel.save() 

20 for rel in TempTriple.objects.filter(obj=instance): 

21 newrel = rel.duplicate() 

22 newrel.obj = duplicate 

23 newrel.save()