feat: per-disposition feedback waiver

The overdue-feedback lists are a live query without stored state, so a
feedback nobody will provide any more could not be written off. The new
disposition.feedback_waived flag takes a placement out of the admin and
manager dashboards, the house-manager list and the reminder mail.

Statistics still count a waived placement as a missing feedback. The
flag has no UI yet and is set by SQL.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
frommeandClaude Opus 5.5 committed 2026-10-13 13:53:25 +02:00
1 parent c04d9e0faf
commit 7e182e3d51
4 files changed
+74

No files matched your search

+20
View File
@@ -72,6 +72,14 @@ class Disposition implements BlameableEntityInterface, TimestampableEntityInterf
#[ORM\Column(type: Types::BOOLEAN)]
private bool $syncedWithBusProNet = false;
/**
* The office no longer expects a feedback for this placement, so nothing chases one: not the
* dashboards' overdue lists, not the house-manager list, not the reminder mail. It still
* counts as missing in the statistics.
*/
#[ORM\Column(type: Types::BOOLEAN, options: ['default' => false])]
private bool $feedbackWaived = false;
public function __construct(Application $application)
{
$this->uuid = Uuid::v4();
@@ -353,4 +361,16 @@ class Disposition implements BlameableEntityInterface, TimestampableEntityInterf
return $this;
}
public function isFeedbackWaived(): bool
{
return $this->feedbackWaived;
}
public function setFeedbackWaived(bool $feedbackWaived): static
{
$this->feedbackWaived = $feedbackWaived;
return $this;
}
}