mirror of
https://github.com/TurTaskProject/TurTaskWeb.git
synced 2025-12-19 22:14:07 +01:00
Move user creation related signal to user.signals
This commit is contained in:
parent
bd946bce94
commit
5c9319c5f1
@ -1,17 +0,0 @@
|
|||||||
from django.db.models.signals import post_save
|
|
||||||
from django.dispatch import receiver
|
|
||||||
|
|
||||||
from boards.models import Board, ListBoard
|
|
||||||
from users.models import CustomUser
|
|
||||||
|
|
||||||
@receiver(post_save, sender=CustomUser)
|
|
||||||
def create_default_board(sender, instance, created, **kwargs):
|
|
||||||
"""Signal handler to automatically create a default Board for a user upon creation."""
|
|
||||||
if created:
|
|
||||||
# Create unique board by user id
|
|
||||||
user_id = instance.id
|
|
||||||
board = Board.objects.create(user=instance, name=f"Board of #{user_id}")
|
|
||||||
ListBoard.objects.create(board=board, name="Backlog", position=1)
|
|
||||||
ListBoard.objects.create(board=board, name="Doing", position=2)
|
|
||||||
ListBoard.objects.create(board=board, name="Review", position=3)
|
|
||||||
ListBoard.objects.create(board=board, name="Done", position=4)
|
|
||||||
@ -1,8 +1,7 @@
|
|||||||
from django.db.models.signals import pre_save, post_save
|
from django.db.models.signals import pre_save
|
||||||
from django.dispatch import receiver
|
from django.dispatch import receiver
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
|
|
||||||
from boards.models import ListBoard, Board
|
|
||||||
from tasks.models import Todo
|
from tasks.models import Todo
|
||||||
|
|
||||||
|
|
||||||
@ -24,66 +23,4 @@ def update_priority(sender, instance, **kwargs):
|
|||||||
elif time_until_due <= urgency_threshold and instance.importance < importance_threshold:
|
elif time_until_due <= urgency_threshold and instance.importance < importance_threshold:
|
||||||
instance.priority = Todo.EisenhowerMatrix.NOT_IMPORTANT_URGENT
|
instance.priority = Todo.EisenhowerMatrix.NOT_IMPORTANT_URGENT
|
||||||
else:
|
else:
|
||||||
instance.priority = Todo.EisenhowerMatrix.NOT_IMPORTANT_NOT_URGENT
|
instance.priority = Todo.EisenhowerMatrix.NOT_IMPORTANT_NOT_URGENT
|
||||||
|
|
||||||
|
|
||||||
# @receiver(post_save, sender=Todo)
|
|
||||||
# def assign_todo_to_listboard(sender, instance, created, **kwargs):
|
|
||||||
# """Signal handler to automatically assign a Todo to the first ListBoard in the user's Board upon creation."""
|
|
||||||
# if created:
|
|
||||||
# user_board = instance.user.board_set.first()
|
|
||||||
|
|
||||||
# if user_board:
|
|
||||||
# first_list_board = user_board.listboard_set.order_by('position').first()
|
|
||||||
|
|
||||||
# if first_list_board:
|
|
||||||
# instance.list_board = first_list_board
|
|
||||||
# instance.save()
|
|
||||||
|
|
||||||
|
|
||||||
@receiver(post_save, sender=ListBoard)
|
|
||||||
def create_placeholder_tasks(sender, instance, created, **kwargs):
|
|
||||||
"""
|
|
||||||
Signal handler to create placeholder tasks for each ListBoard.
|
|
||||||
"""
|
|
||||||
if created:
|
|
||||||
list_board_position = instance.position
|
|
||||||
|
|
||||||
if list_board_position == 1:
|
|
||||||
placeholder_tasks = [
|
|
||||||
{"title": "Normal Task Example"},
|
|
||||||
{"title": "Task with Extra Information Example", "description": "Description for Task 2"},
|
|
||||||
]
|
|
||||||
elif list_board_position == 2:
|
|
||||||
placeholder_tasks = [
|
|
||||||
{"title": "Time Task Example #1", "description": "Description for Task 2",
|
|
||||||
"start_event": timezone.now(), "end_event": timezone.now() + timezone.timedelta(days=5)},
|
|
||||||
]
|
|
||||||
elif list_board_position == 3:
|
|
||||||
placeholder_tasks = [
|
|
||||||
{"title": "Time Task Example #2", "description": "Description for Task 2",
|
|
||||||
"start_event": timezone.now(), "end_event": timezone.now() + timezone.timedelta(days=30)},
|
|
||||||
]
|
|
||||||
elif list_board_position == 4:
|
|
||||||
placeholder_tasks = [
|
|
||||||
{"title": "Completed Task Example", "description": "Description for Task 2",
|
|
||||||
"start_event": timezone.now(), "completed": True},
|
|
||||||
]
|
|
||||||
else:
|
|
||||||
placeholder_tasks = [
|
|
||||||
{"title": "Default Task Example"},
|
|
||||||
]
|
|
||||||
|
|
||||||
for task_data in placeholder_tasks:
|
|
||||||
Todo.objects.create(
|
|
||||||
list_board=instance,
|
|
||||||
user=instance.board.user,
|
|
||||||
title=task_data["title"],
|
|
||||||
notes=task_data.get("description", ""),
|
|
||||||
is_active=True,
|
|
||||||
start_event=task_data.get("start_event"),
|
|
||||||
end_event=task_data.get("end_event"),
|
|
||||||
completed=task_data.get("completed", False),
|
|
||||||
creation_date=timezone.now(),
|
|
||||||
last_update=timezone.now(),
|
|
||||||
)
|
|
||||||
@ -1,9 +1,74 @@
|
|||||||
|
from django.utils import timezone
|
||||||
from django.db.models.signals import post_save
|
from django.db.models.signals import post_save
|
||||||
from django.dispatch import receiver
|
from django.dispatch import receiver
|
||||||
|
|
||||||
|
from tasks.models import Todo
|
||||||
from users.models import CustomUser, UserStats
|
from users.models import CustomUser, UserStats
|
||||||
|
from boards.models import ListBoard, Board
|
||||||
|
|
||||||
|
|
||||||
@receiver(post_save, sender=CustomUser)
|
@receiver(post_save, sender=CustomUser)
|
||||||
def create_user_stats(sender, instance, created, **kwargs):
|
def create_user_stats(sender, instance, created, **kwargs):
|
||||||
if created:
|
if created:
|
||||||
UserStats.objects.create(user=instance)
|
UserStats.objects.create(user=instance)
|
||||||
|
|
||||||
|
|
||||||
|
@receiver(post_save, sender=CustomUser)
|
||||||
|
def create_default_board(sender, instance, created, **kwargs):
|
||||||
|
"""Signal handler to automatically create a default Board for a user upon creation."""
|
||||||
|
if created:
|
||||||
|
# Create unique board by user id
|
||||||
|
user_id = instance.id
|
||||||
|
board = Board.objects.create(user=instance, name=f"Board of #{user_id}")
|
||||||
|
ListBoard.objects.create(board=board, name="Backlog", position=1)
|
||||||
|
ListBoard.objects.create(board=board, name="Doing", position=2)
|
||||||
|
ListBoard.objects.create(board=board, name="Review", position=3)
|
||||||
|
ListBoard.objects.create(board=board, name="Done", position=4)
|
||||||
|
|
||||||
|
|
||||||
|
@receiver(post_save, sender=ListBoard)
|
||||||
|
def create_placeholder_tasks(sender, instance, created, **kwargs):
|
||||||
|
"""
|
||||||
|
Signal handler to create placeholder tasks for each ListBoard.
|
||||||
|
"""
|
||||||
|
if created:
|
||||||
|
list_board_position = instance.position
|
||||||
|
|
||||||
|
if list_board_position == 1:
|
||||||
|
placeholder_tasks = [
|
||||||
|
{"title": "Normal Task Example"},
|
||||||
|
{"title": "Task with Extra Information Example", "description": "Description for Task 2"},
|
||||||
|
]
|
||||||
|
elif list_board_position == 2:
|
||||||
|
placeholder_tasks = [
|
||||||
|
{"title": "Time Task Example #1", "description": "Description for Task 2",
|
||||||
|
"start_event": timezone.now(), "end_event": timezone.now() + timezone.timedelta(days=5)},
|
||||||
|
]
|
||||||
|
elif list_board_position == 3:
|
||||||
|
placeholder_tasks = [
|
||||||
|
{"title": "Time Task Example #2", "description": "Description for Task 2",
|
||||||
|
"start_event": timezone.now(), "end_event": timezone.now() + timezone.timedelta(days=30)},
|
||||||
|
]
|
||||||
|
elif list_board_position == 4:
|
||||||
|
placeholder_tasks = [
|
||||||
|
{"title": "Completed Task Example", "description": "Description for Task 2",
|
||||||
|
"start_event": timezone.now(), "completed": True},
|
||||||
|
]
|
||||||
|
else:
|
||||||
|
placeholder_tasks = [
|
||||||
|
{"title": "Default Task Example"},
|
||||||
|
]
|
||||||
|
|
||||||
|
for task_data in placeholder_tasks:
|
||||||
|
Todo.objects.create(
|
||||||
|
list_board=instance,
|
||||||
|
user=instance.board.user,
|
||||||
|
title=task_data["title"],
|
||||||
|
notes=task_data.get("description", ""),
|
||||||
|
is_active=True,
|
||||||
|
start_event=task_data.get("start_event"),
|
||||||
|
end_event=task_data.get("end_event"),
|
||||||
|
completed=task_data.get("completed", False),
|
||||||
|
creation_date=timezone.now(),
|
||||||
|
last_update=timezone.now(),
|
||||||
|
)
|
||||||
Loading…
Reference in New Issue
Block a user