28 lines
1.0 KiB
Python
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
|