41 lines
1.6 KiB
Python
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() |