onboard/board/signals.py
2021-07-21 20:58:18 -06:00

41 lines
1.6 KiB
Python

from django.utils import timezone
from django.db.models.signals import post_save
from django.dispatch import receiver
from .models import (
Employee,
LogEntry,
Todo,
)
@receiver(post_save, sender=Employee, dispatch_uid="employee_created_signal")
def create_employee(sender, instance, created, **kwargs):
if created:
Todo.objects.bulk_create([
Todo(employee=instance, description="Active Directory"),
Todo(employee=instance, description="Office 365 Account"),
Todo(employee=instance, description="Office 365 Licence"),
Todo(employee=instance, description="Zendesk Account"),
Todo(employee=instance, description="inContact Account"),
Todo(employee=instance, description="IT Glue Entry"),
])
LogEntry.objects.create(
employee=instance,
notes=f"Created {instance.full_name}"
)
@receiver(post_save, sender=Todo, dispatch_uid="todo_completed_signal")
def complete_todo(sender, instance, created, **kwargs):
if instance.completed and not instance.completed_at:
LogEntry.objects.create(
employee=instance.employee,
notes=f'Completed To-do: "{instance.description}"'
)
instance.completed_at = timezone.now()
instance.save()
elif instance.completed_at and not instance.completed:
LogEntry.objects.create(
employee=instance.employee,
notes=f'Re-opened To-do: "{instance.description}"'
)
instance.completed_at = None
instance.save()