|
@@ -9,19 +9,105 @@ use App\Entity\Education\EducationNotationConfig;
|
|
|
use App\Entity\Organization\Organization;
|
|
use App\Entity\Organization\Organization;
|
|
|
use App\Entity\Organization\Parameters;
|
|
use App\Entity\Organization\Parameters;
|
|
|
use App\Enum\Education\AdvancedEducationNotationTypeEnum;
|
|
use App\Enum\Education\AdvancedEducationNotationTypeEnum;
|
|
|
|
|
+use App\Message\Command\Parameters\AverageChange;
|
|
|
|
|
+use App\Message\Command\Typo3\Typo3DeleteCommand;
|
|
|
|
|
+use App\Message\Command\Typo3\Typo3UndeleteCommand;
|
|
|
|
|
+use App\Message\Command\Typo3\Typo3UpdateCommand;
|
|
|
use App\Repository\Booking\CourseRepository;
|
|
use App\Repository\Booking\CourseRepository;
|
|
|
use App\Test\Service\OnChange\Organization\OnParametersChangeTest;
|
|
use App\Test\Service\OnChange\Organization\OnParametersChangeTest;
|
|
|
use App\Service\Organization\Utils as organizationUtils;
|
|
use App\Service\Organization\Utils as organizationUtils;
|
|
|
|
|
+use Symfony\Component\Messenger\MessageBusInterface;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* Classe OnParametersChange qui comporte toutes les opérations automatiquent se produisant lors de l'évolution des paramètres
|
|
* Classe OnParametersChange qui comporte toutes les opérations automatiquent se produisant lors de l'évolution des paramètres
|
|
|
*/
|
|
*/
|
|
|
-class OnParametersChange
|
|
|
|
|
|
|
+class OnParametersChange extends OnChangeDefault
|
|
|
{
|
|
{
|
|
|
public function __construct(
|
|
public function __construct(
|
|
|
- private CourseRepository $courseRepository
|
|
|
|
|
|
|
+ private CourseRepository $courseRepository,
|
|
|
|
|
+ private \App\Service\Network\Utils $networkUtils,
|
|
|
|
|
+ private MessageBusInterface $messageBus
|
|
|
){ }
|
|
){ }
|
|
|
|
|
|
|
|
|
|
+ public function validate($parameters, OnChangeContext $context): void
|
|
|
|
|
+ {
|
|
|
|
|
+ // Une structure CMF n'a pas le droit de désactiver son site typo3
|
|
|
|
|
+ if (
|
|
|
|
|
+ $parameters->getDesactivateOpentalentSiteWeb() === true &&
|
|
|
|
|
+ $this->networkUtils->isCMFAndActiveNow($parameters->getOrganization())
|
|
|
|
|
+ ) {
|
|
|
|
|
+ throw new \RuntimeException('This structure is currently active in the CMF network, the website can not be disabled.');
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * @param Parameters $parameters
|
|
|
|
|
+ */
|
|
|
|
|
+ public function prePersist($parameters, OnChangeContext $context): void{
|
|
|
|
|
+ if(
|
|
|
|
|
+ $context->previousData() &&
|
|
|
|
|
+ $context->previousData()->getAdvancedEducationNotationType() !== $parameters->getAdvancedEducationNotationType()
|
|
|
|
|
+ ){
|
|
|
|
|
+ $this->onAdvancedEducationNotationTypeChange($parameters);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ //La date de début d'activité change
|
|
|
|
|
+ if(
|
|
|
|
|
+ $context->previousData() &&
|
|
|
|
|
+ $context->previousData()->getMusicalDate() !== $parameters->getMusicalDate()
|
|
|
|
|
+ ){
|
|
|
|
|
+ $this->onMusicalDateChange(
|
|
|
|
|
+ $parameters->getOrganization(),
|
|
|
|
|
+ $context->previousData()->getMusicalDate()
|
|
|
|
|
+ );
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * @param Parameters $parameters
|
|
|
|
|
+ */
|
|
|
|
|
+ public function postPersist($parameters, OnChangeContext $context): void{
|
|
|
|
|
+ //La note maximale du suivi pédagogique change
|
|
|
|
|
+ if(
|
|
|
|
|
+ $context->previousData() &&
|
|
|
|
|
+ $context->previousData()->getAverage() !== $parameters->getAverage()
|
|
|
|
|
+ ){
|
|
|
|
|
+ $this->messageBus->dispatch(
|
|
|
|
|
+ new AverageChange($parameters->getId())
|
|
|
|
|
+ );
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // Le customDomain a été modifié, on met à jour le site typo3 (s'il est actif)
|
|
|
|
|
+ if(
|
|
|
|
|
+ $context->previousData() &&
|
|
|
|
|
+ !$parameters->getDesactivateOpentalentSiteWeb() &&
|
|
|
|
|
+ $context->previousData()->getCustomDomain() !== $parameters->getCustomDomain()
|
|
|
|
|
+ ){
|
|
|
|
|
+ $this->messageBus->dispatch(
|
|
|
|
|
+ new Typo3UpdateCommand($parameters->getOrganization()->getId())
|
|
|
|
|
+ );
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // Le site web opentalent a été désactivé / réactivé
|
|
|
|
|
+ if(
|
|
|
|
|
+ $context->previousData() &&
|
|
|
|
|
+ $context->previousData()->getDesactivateOpentalentSiteWeb() !== $parameters->getDesactivateOpentalentSiteWeb()
|
|
|
|
|
+ ){
|
|
|
|
|
+ if ($parameters->getDesactivateOpentalentSiteWeb()) {
|
|
|
|
|
+ $this->messageBus->dispatch(
|
|
|
|
|
+ new Typo3DeleteCommand($parameters->getOrganization()->getId())
|
|
|
|
|
+ );
|
|
|
|
|
+ } else {
|
|
|
|
|
+ $this->messageBus->dispatch(
|
|
|
|
|
+ new Typo3UndeleteCommand($parameters->getOrganization()->getId())
|
|
|
|
|
+ );
|
|
|
|
|
+ $this->messageBus->dispatch(
|
|
|
|
|
+ new Typo3UpdateCommand($parameters->getOrganization()->getId())
|
|
|
|
|
+ );
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* Si le le type de grilles d'évaluation évolue, il faut "nettoyer" les curriculums/teachers associés au type précédent
|
|
* Si le le type de grilles d'évaluation évolue, il faut "nettoyer" les curriculums/teachers associés au type précédent
|
|
|
* @param Parameters $parameters
|
|
* @param Parameters $parameters
|
|
@@ -74,4 +160,4 @@ class OnParametersChange
|
|
|
$course->setEndYear($year + 1);
|
|
$course->setEndYear($year + 1);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-}
|
|
|
|
|
|
|
+}
|