Coverage for formkit_ninja / form_submission / handlers.py: 0.00%

16 statements  

« prev     ^ index     » next       coverage.py v7.13.1, created at 2026-02-03 16:35 +0000

1""" 

2Default signal handlers for form_submission app. 

3 

4These handlers provide opt-in auto-population of generated models 

5from SeparatedSubmission instances. 

6""" 

7 

8import logging 

9 

10from django.conf import settings 

11from django.dispatch import receiver 

12 

13from .signals import ( 

14 model_population_failed, 

15 model_population_success, 

16 separated_submission_created, 

17) 

18 

19logger = logging.getLogger(__name__) 

20 

21 

22@receiver(separated_submission_created) 

23def auto_populate_model(sender, instance, created, **kwargs): 

24 """ 

25 Automatically populate the corresponding Django model when a 

26 SeparatedSubmission is created. 

27 

28 This behavior can be disabled by setting FORMKIT_AUTO_POPULATE = False 

29 in Django settings. 

30 """ 

31 if not getattr(settings, "FORMKIT_AUTO_POPULATE", True): 

32 return 

33 

34 try: 

35 model_instance, was_created = instance.to_model() 

36 if model_instance: 

37 model_population_success.send( 

38 sender=instance.__class__, 

39 instance=instance, 

40 model_instance=model_instance, 

41 was_created=was_created, 

42 ) 

43 except Exception as e: 

44 logger.warning(f"Model population failed for {instance}: {e}") 

45 model_population_failed.send( 

46 sender=instance.__class__, 

47 instance=instance, 

48 error=e, 

49 )