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
« prev ^ index » next coverage.py v7.13.1, created at 2026-02-03 16:35 +0000
1"""
2Default signal handlers for form_submission app.
4These handlers provide opt-in auto-population of generated models
5from SeparatedSubmission instances.
6"""
8import logging
10from django.conf import settings
11from django.dispatch import receiver
13from .signals import (
14 model_population_failed,
15 model_population_success,
16 separated_submission_created,
17)
19logger = logging.getLogger(__name__)
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.
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
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 )