notification: alter form type to add and remove email addresses

This commit is contained in:
2022-04-13 22:11:01 +02:00
parent 4425f2ad49
commit 24d28b0a52
5 changed files with 49 additions and 2 deletions

View File

@@ -18,6 +18,7 @@ use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
use Symfony\Component\Validator\Context\ExecutionContextInterface;
/**
* @ORM\Entity
@@ -36,7 +37,6 @@ class Notification implements TrackUpdateInterface
/**
* @ORM\ManyToMany(targetEntity=User::class)
* @ORM\JoinTable(name="chill_main_notification_addresses_user")
* @Assert\Count(min="1", minMessage="notification.At least one addressee")
*/
private Collection $addressees;
@@ -400,4 +400,19 @@ class Notification implements TrackUpdateInterface
return $this;
}
/**
* @Assert\Callback()
* @param ExecutionContextInterface $context
* @param array $payload
* @return void
*/
public function assertCountAddresses(ExecutionContextInterface $context, $payload): void
{
if (0 === (count($this->getAddressesEmails()) + count($this->getAddressees()))) {
$context->buildViolation('notification.At least one addressee')
->atPath('addressees')
->addViolation();
}
}
}