This commit is contained in:
Marek Lenczewski
2026-03-31 17:13:10 +02:00
parent 576bfed36d
commit b6a4548732
13 changed files with 99 additions and 36 deletions

View File

@@ -34,9 +34,6 @@ class Task
#[ORM\JoinColumn(nullable: true, onDelete: 'SET NULL')]
private ?Category $category = null;
#[ORM\Column]
private bool $categoryOverridden = false;
#[ORM\Column(type: Types::DATE_MUTABLE, nullable: true)]
private ?\DateTimeInterface $date = null;
@@ -82,6 +79,7 @@ class Task
return $this;
}
#[Groups(['task:read'])]
public function getCategory(): ?Category
{
return $this->category;
@@ -93,17 +91,6 @@ class Task
return $this;
}
public function isCategoryOverridden(): bool
{
return $this->categoryOverridden;
}
public function setCategoryOverridden(bool $categoryOverridden): static
{
$this->categoryOverridden = $categoryOverridden;
return $this;
}
#[Groups(['task:read'])]
#[SerializedName('name')]
public function getEffectiveName(): string
@@ -111,13 +98,6 @@ class Task
return $this->name ?? $this->schema->getName();
}
#[Groups(['task:read'])]
#[SerializedName('category')]
public function getEffectiveCategory(): ?Category
{
return $this->categoryOverridden ? $this->category : $this->schema->getCategory();
}
#[Groups(['task:read'])]
public function getDate(): ?\DateTimeInterface
{

View File

@@ -37,7 +37,7 @@ class TaskRepository extends ServiceEntityRepository
{
return $this->createQueryBuilder('task')
->join('task.schema', 'schema')
->leftJoin('schema.category', 'category')
->leftJoin('task.category', 'category')
->addSelect('schema', 'category')
->where('task.date >= :from')
->andWhere('task.date <= :to')
@@ -122,7 +122,7 @@ class TaskRepository extends ServiceEntityRepository
{
return $this->createQueryBuilder('task')
->join('task.schema', 'schema')
->leftJoin('schema.category', 'category')
->leftJoin('task.category', 'category')
->addSelect('schema', 'category')
->where('task.date IS NOT NULL')
->orderBy('task.date', 'DESC')
@@ -137,7 +137,7 @@ class TaskRepository extends ServiceEntityRepository
{
return $this->createQueryBuilder('task')
->join('task.schema', 'schema')
->leftJoin('schema.category', 'category')
->leftJoin('task.category', 'category')
->addSelect('schema', 'category')
->where('task.date IS NULL')
->andWhere('schema.status != :excluded')

View File

@@ -34,6 +34,7 @@ class TaskGenerator
$task = new Task();
$task->setSchema($schema);
$task->setDate(new \DateTime($deadline->format('Y-m-d')));
$task->setCategory($schema->getCategory());
$this->em->persist($task);
$existingKeys[$key] = true;
@@ -63,6 +64,7 @@ class TaskGenerator
$task = new Task();
$task->setSchema($schema);
$task->setDate(null);
$task->setCategory($schema->getCategory());
$this->em->persist($task);
$hasNew = true;
}

View File

@@ -30,7 +30,6 @@ class TaskManager
? $this->categoryRepository->find($request->categoryId)
: null;
$task->setCategory($category);
$task->setCategoryOverridden(true);
$status = TaskStatus::tryFrom($request->status);
if ($status !== null) {

View File

@@ -82,8 +82,7 @@ class TaskSynchronizer
if ($schema->getTaskType() === TaskSchemaType::Single && $schema->getDeadline() === null) {
foreach ($nullDateTasks as $task) {
$task->setName(null);
$task->setCategory(null);
$task->setCategoryOverridden(false);
$task->setCategory($schema->getCategory());
}
} else {
foreach ($nullDateTasks as $task) {
@@ -99,8 +98,7 @@ class TaskSynchronizer
{
foreach ($existingByDate as $task) {
$task->setName(null);
$task->setCategory(null);
$task->setCategoryOverridden(false);
$task->setCategory($task->getSchema()->getCategory());
}
}
@@ -116,6 +114,7 @@ class TaskSynchronizer
$task = new Task();
$task->setSchema($schema);
$task->setDate(new \DateTime($dateKey));
$task->setCategory($schema->getCategory());
$this->em->persist($task);
}