Files
backend-v1/core/apps/evaluation/signals/request.py
2026-03-10 14:02:48 +05:00

28 lines
1.0 KiB
Python

from django.db.models.signals import pre_save
from django.dispatch import receiver
from core.apps.evaluation.choices.request import RequestStatus
from core.apps.evaluation.models import EvaluationrequestModel
@receiver(pre_save, sender=EvaluationrequestModel)
def create_evaluation_on_approve(sender, instance, **kwargs):
if not instance.pk:
return
try:
old = EvaluationrequestModel.objects.get(pk=instance.pk)
except EvaluationrequestModel.DoesNotExist:
return
if old.status != RequestStatus.COMPLETED and instance.status == RequestStatus.COMPLETED:
from core.apps.evaluation.models import AutoEvaluationModel
if instance.rate_type == "auto" and not hasattr(instance, "_evaluation_created"):
AutoEvaluationModel.objects.create(
object_type=instance.object_type or "",
tex_passport_serie_num=instance.tex_passport or "",
rating_goal=instance.rate_goal or "",
)
instance._evaluation_created = True