factory/apps/hrm/signals.py

28 lines
1.2 KiB
Python
Executable File

from django.db.models.signals import post_save
from apps.system.models import User
from django.dispatch import receiver
from apps.hrm.models import Employee
@receiver(post_save, sender=User)
def updateEmployee(sender, instance, created, **kwargs):
ep = None
ep_created = False
if created:
ep, ep_created = Employee.objects.get_or_create(user=instance,
defaults={
"user": instance,
"name": instance.name,
"phone": instance.phone,
"belong_dept": instance.belong_dept,
"post": instance.post,
"type": instance.type
})
if ep and not ep_created:
ep.belong_dept = instance.belong_dept
ep.post = instance.post
ep.type = instance.type
if instance.phone != ep.phone:
ep.phone = instance.phone
ep.save()
ep.save()