Loading module/Acteur/src/Acteur/Entity/Db/ActeurHDR.php +1 −1 Changes for module/Acteur/src/Acteur/Entity/Db/ActeurHDR.php: 1 added line, 1 removed line. Original line number Diff line number Diff line Loading @@ -32,7 +32,7 @@ class ActeurHDR extends AbstractActeur return $this->membre; } public function setMembre(Membre $membre): static public function setMembre(?Membre $membre): static { $this->membre = $membre; Loading module/Acteur/src/Acteur/Entity/Db/ActeurThese.php +1 −1 Changes for module/Acteur/src/Acteur/Entity/Db/ActeurThese.php: 1 added line, 1 removed line. Original line number Diff line number Diff line Loading @@ -47,7 +47,7 @@ class ActeurThese extends AbstractActeur return $this->membre; } public function setMembre(\Soutenance\Entity\Membre $membre): static public function setMembre(?Membre $membre): static { $this->membre = $membre; Loading module/Soutenance/src/Soutenance/Controller/HDR/Presoutenance/PresoutenanceHDRController.php +0 −39 Changes for module/Soutenance/src/Soutenance/Controller/HDR/Presoutenance/PresoutenanceHDRController.php: 0 added lines, 39 removed lines. Original line number Diff line number Diff line Loading @@ -121,45 +121,6 @@ class PresoutenanceHDRController extends PresoutenanceController return $vm; } public function deassocierJuryAction() : Response { $this->initializeFromType(); $membre = $this->getMembreService()->getRequestedMembre($this); $acteur = $this->acteurService->getRepository()->findActeurForSoutenanceMembre($membre); $acteurs = $this->acteurService->getRepository()->findActeurByHDR($this->entity); $a = null; foreach ($acteurs as $acteur_) { // if ($acteur_ === $membre->getActeur()) $acteur = $acteur_; if ($acteur_ === $acteur) $a = $acteur_; } if (!$a) throw new RuntimeException("Aucun acteur à deassocier !"); // //retrait dans membre de soutenance // $membre->setActeur(null); // $this->getMembreService()->update($membre); $acteur->setMembre($membre); $this->acteurService->save($acteur); $this->getHorodatageService()->addHorodatage($this->proposition, HorodatageService::TYPE_MODIFICATION, "Association jury"); if(!$this->entity->getSource()->getImportable()) $this->acteurService->delete($acteur); $validation = $this->validationHDRService->getRepository()->findValidationByHDRAndCodeAndIndividu($this->entity, TypeValidation::CODE_ENGAGEMENT_IMPARTIALITE, $acteur->getIndividu()); if ($validation !== null) { $this->validationHDRService->unsignEngagementImpartialite($validation); } $utilisateur = $this->getMembreService()->getUtilisateur($membre); if ($utilisateur){ try { $this->utilisateurService->supprimerUtilisateur($utilisateur); }catch (Exception $e) { throw new RuntimeException("Un problème est survenu en base de données", 0 , $e); } } return $this->redirect()->toRoute("soutenance_{$this->type}/presoutenance", ['hdr' => $this->entity->getId()], [], true); } /** * Ici on affecte au membre des individus enregistrés dans SyGAL */ Loading module/Soutenance/src/Soutenance/Controller/PresoutenanceController.php +59 −12 Changes for module/Soutenance/src/Soutenance/Controller/PresoutenanceController.php: 59 added lines, 12 removed lines. Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ use Structure\Service\StructureDocument\StructureDocumentServiceAwareTrait; use These\Entity\Db\These; use UnicaenApp\Exception\RuntimeException; use UnicaenAuthentification\Service\Traits\UserServiceAwareTrait; use Validation\Entity\Db\TypeValidation; /** @method FlashMessenger flashMessenger() */ Loading Loading @@ -103,7 +104,7 @@ abstract class PresoutenanceController extends AbstractSoutenanceController $this->initializeFromType(false, false); /** @var Membre[] $membres */ $membres = $this->proposition->getMembres(); // $membres = $this->proposition->getMembres(); $membre = $this->getMembreService()->getRequestedMembre($this); /** Ici, on prépare la liste des acteurs correspondant aux différents rôles pour le Select du formulaire Loading Loading @@ -142,17 +143,20 @@ abstract class PresoutenanceController extends AbstractSoutenanceController } $acteurs_libres = []; /** @var ActeurThese|ActeurHDR $acteur */ foreach ($acteurs as $acteur) { $libre = true; foreach ($membres as $membre_) { $acteur_ = $this->acteurService->getRepository()->findActeurForSoutenanceMembre($membre_); // if ($membre_->getActeur() && $membre_->getActeur()->getId() === $acteur->getId()) { if ($acteur_ && $acteur_->getId() === $acteur->getId()) { $libre = false; break; } } if ($libre) $acteurs_libres[] = $acteur; // à avoir si ça pose des problèmes if(!$acteur->getMembre()) $acteurs_libres[] = $acteur; // $libre = true; // foreach ($membres as $membre_) { // $acteur_ = $this->acteurService->getRepository()->findActeurForSoutenanceMembre($membre_); //// if ($membre_->getActeur() && $membre_->getActeur()->getId() === $acteur->getId()) { // if ($acteur_ && $acteur_->getId() === $acteur->getId()) { // $libre = false; // break; // } // } // if ($libre) $acteurs_libres[] = $acteur; } $request = $this->getRequest(); Loading Loading @@ -183,12 +187,55 @@ abstract class PresoutenanceController extends AbstractSoutenanceController 'title' => "Association de " . $membre->getDenomination() . " à un acteur " . $this->appInfos()->getNom(), 'acteurs' => $acteurs_libres, 'membre' => $membre, 'id' => $this->entity, 'entity' => $this->entity, 'typeProposition' => $this->type ]); return $vm; } public function deassocierJuryAction() : Response { $this->initializeFromType(); $membre = $this->getMembreService()->getRequestedMembre($this); $acteur = $this->acteurService->getRepository()->findActeurForSoutenanceMembre($membre); // $acteurs = $this->acteurService->getRepository()->findActeurByHDR($this->entity); // $a = null; // foreach ($acteurs as $acteur_) { //// if ($acteur_ === $membre->getActeur()) $acteur = $acteur_; // if ($acteur_ === $acteur) $a = $acteur_; // } if (!$acteur) throw new RuntimeException("Aucun acteur à deassocier !"); // //retrait dans membre de soutenance // $membre->setActeur(null); // $this->getMembreService()->update($membre); // $acteur->setMembre($membre); $acteur->setMembre(null); $this->acteurService->save($acteur); $this->getHorodatageService()->addHorodatage($this->proposition, HorodatageService::TYPE_MODIFICATION, "Association jury"); if(!$this->entity->getSource()->getImportable()) $this->acteurService->historise($acteur); $validation = $this->entity instanceof These ? $this->validationService->getRepository()->findValidationByTheseAndCodeAndIndividu($this->entity, TypeValidation::CODE_ENGAGEMENT_IMPARTIALITE, $acteur->getIndividu()) : $this->validationService->getRepository()->findValidationByHDRAndCodeAndIndividu($this->entity, TypeValidation::CODE_ENGAGEMENT_IMPARTIALITE, $acteur->getIndividu()); if ($validation !== null) { $this->validationService->unsignEngagementImpartialite($validation); } // $utilisateur = $this->getMembreService()->getUtilisateur($membre); // if ($utilisateur){ // try { // $this->utilisateurService->supprimerUtilisateur($utilisateur); // }catch (Exception $e) { // throw new RuntimeException("Un problème est survenu en base de données", 0 , $e); // } // } return $this->redirect()->toRoute("soutenance_{$this->type}/presoutenance", ['id' => $this->entity->getId()], [], true); } protected function createUtilisateurRapporteur(ActeurThese|ActeurHDR $acteur, Membre $membre): void { $individu = $acteur->getIndividu() ?: throw new RuntimeException("Aucun individu associé à l'acteur !"); Loading module/Soutenance/src/Soutenance/Controller/These/Presoutenance/PresoutenanceTheseController.php +0 −39 Changes for module/Soutenance/src/Soutenance/Controller/These/Presoutenance/PresoutenanceTheseController.php: 0 added lines, 39 removed lines. Original line number Diff line number Diff line Loading @@ -128,45 +128,6 @@ class PresoutenanceTheseController extends PresoutenanceController return $vm; } public function deassocierJuryAction() : Response { $this->initializeFromType(); $membre = $this->getMembreService()->getRequestedMembre($this); $acteurm = $this->acteurService->getRepository()->findActeurForSoutenanceMembre($membre); $acteurs = $this->acteurService->getRepository()->findActeurByThese($this->entity); $acteur = null; foreach ($acteurs as $acteur_) { // if ($acteur_ === $membre->getActeur()) $acteur = $acteur_; if ($acteur_ === $acteurm) $acteur = $acteur_; } if (!$acteur) throw new RuntimeException("Aucun acteur à deassocier !"); // //retrait dans membre de soutenance // $membre->setActeur(null); // $this->getMembreService()->update($membre); $acteur->setMembre($membre); $this->acteurService->save($acteur); $this->getHorodatageService()->addHorodatage($this->proposition, HorodatageService::TYPE_MODIFICATION, "Association jury"); if(!$this->entity->getSource()->getImportable()) $this->acteurService->delete($acteur); $validation = $this->validationService->getRepository()->findValidationByTheseAndCodeAndIndividu($this->entity, TypeValidation::CODE_ENGAGEMENT_IMPARTIALITE, $acteur->getIndividu()); if ($validation !== null) { $this->validationService->unsignEngagementImpartialite($validation); } $utilisateur = $this->getMembreService()->getUtilisateur($membre); if ($utilisateur){ try { $this->utilisateurService->supprimerUtilisateur($utilisateur); }catch (Exception $e) { throw new RuntimeException("Un problème est survenu en base de données", 0 , $e); } } return $this->redirect()->toRoute("soutenance_{$this->type}/presoutenance", ['id' => $this->entity->getId()], [], true); } /** * Ici on affecte au membre des individus enregistrés dans SyGAL */ Loading Loading
module/Acteur/src/Acteur/Entity/Db/ActeurHDR.php +1 −1 Changes for module/Acteur/src/Acteur/Entity/Db/ActeurHDR.php: 1 added line, 1 removed line. Original line number Diff line number Diff line Loading @@ -32,7 +32,7 @@ class ActeurHDR extends AbstractActeur return $this->membre; } public function setMembre(Membre $membre): static public function setMembre(?Membre $membre): static { $this->membre = $membre; Loading
module/Acteur/src/Acteur/Entity/Db/ActeurThese.php +1 −1 Changes for module/Acteur/src/Acteur/Entity/Db/ActeurThese.php: 1 added line, 1 removed line. Original line number Diff line number Diff line Loading @@ -47,7 +47,7 @@ class ActeurThese extends AbstractActeur return $this->membre; } public function setMembre(\Soutenance\Entity\Membre $membre): static public function setMembre(?Membre $membre): static { $this->membre = $membre; Loading
module/Soutenance/src/Soutenance/Controller/HDR/Presoutenance/PresoutenanceHDRController.php +0 −39 Changes for module/Soutenance/src/Soutenance/Controller/HDR/Presoutenance/PresoutenanceHDRController.php: 0 added lines, 39 removed lines. Original line number Diff line number Diff line Loading @@ -121,45 +121,6 @@ class PresoutenanceHDRController extends PresoutenanceController return $vm; } public function deassocierJuryAction() : Response { $this->initializeFromType(); $membre = $this->getMembreService()->getRequestedMembre($this); $acteur = $this->acteurService->getRepository()->findActeurForSoutenanceMembre($membre); $acteurs = $this->acteurService->getRepository()->findActeurByHDR($this->entity); $a = null; foreach ($acteurs as $acteur_) { // if ($acteur_ === $membre->getActeur()) $acteur = $acteur_; if ($acteur_ === $acteur) $a = $acteur_; } if (!$a) throw new RuntimeException("Aucun acteur à deassocier !"); // //retrait dans membre de soutenance // $membre->setActeur(null); // $this->getMembreService()->update($membre); $acteur->setMembre($membre); $this->acteurService->save($acteur); $this->getHorodatageService()->addHorodatage($this->proposition, HorodatageService::TYPE_MODIFICATION, "Association jury"); if(!$this->entity->getSource()->getImportable()) $this->acteurService->delete($acteur); $validation = $this->validationHDRService->getRepository()->findValidationByHDRAndCodeAndIndividu($this->entity, TypeValidation::CODE_ENGAGEMENT_IMPARTIALITE, $acteur->getIndividu()); if ($validation !== null) { $this->validationHDRService->unsignEngagementImpartialite($validation); } $utilisateur = $this->getMembreService()->getUtilisateur($membre); if ($utilisateur){ try { $this->utilisateurService->supprimerUtilisateur($utilisateur); }catch (Exception $e) { throw new RuntimeException("Un problème est survenu en base de données", 0 , $e); } } return $this->redirect()->toRoute("soutenance_{$this->type}/presoutenance", ['hdr' => $this->entity->getId()], [], true); } /** * Ici on affecte au membre des individus enregistrés dans SyGAL */ Loading
module/Soutenance/src/Soutenance/Controller/PresoutenanceController.php +59 −12 Changes for module/Soutenance/src/Soutenance/Controller/PresoutenanceController.php: 59 added lines, 12 removed lines. Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ use Structure\Service\StructureDocument\StructureDocumentServiceAwareTrait; use These\Entity\Db\These; use UnicaenApp\Exception\RuntimeException; use UnicaenAuthentification\Service\Traits\UserServiceAwareTrait; use Validation\Entity\Db\TypeValidation; /** @method FlashMessenger flashMessenger() */ Loading Loading @@ -103,7 +104,7 @@ abstract class PresoutenanceController extends AbstractSoutenanceController $this->initializeFromType(false, false); /** @var Membre[] $membres */ $membres = $this->proposition->getMembres(); // $membres = $this->proposition->getMembres(); $membre = $this->getMembreService()->getRequestedMembre($this); /** Ici, on prépare la liste des acteurs correspondant aux différents rôles pour le Select du formulaire Loading Loading @@ -142,17 +143,20 @@ abstract class PresoutenanceController extends AbstractSoutenanceController } $acteurs_libres = []; /** @var ActeurThese|ActeurHDR $acteur */ foreach ($acteurs as $acteur) { $libre = true; foreach ($membres as $membre_) { $acteur_ = $this->acteurService->getRepository()->findActeurForSoutenanceMembre($membre_); // if ($membre_->getActeur() && $membre_->getActeur()->getId() === $acteur->getId()) { if ($acteur_ && $acteur_->getId() === $acteur->getId()) { $libre = false; break; } } if ($libre) $acteurs_libres[] = $acteur; // à avoir si ça pose des problèmes if(!$acteur->getMembre()) $acteurs_libres[] = $acteur; // $libre = true; // foreach ($membres as $membre_) { // $acteur_ = $this->acteurService->getRepository()->findActeurForSoutenanceMembre($membre_); //// if ($membre_->getActeur() && $membre_->getActeur()->getId() === $acteur->getId()) { // if ($acteur_ && $acteur_->getId() === $acteur->getId()) { // $libre = false; // break; // } // } // if ($libre) $acteurs_libres[] = $acteur; } $request = $this->getRequest(); Loading Loading @@ -183,12 +187,55 @@ abstract class PresoutenanceController extends AbstractSoutenanceController 'title' => "Association de " . $membre->getDenomination() . " à un acteur " . $this->appInfos()->getNom(), 'acteurs' => $acteurs_libres, 'membre' => $membre, 'id' => $this->entity, 'entity' => $this->entity, 'typeProposition' => $this->type ]); return $vm; } public function deassocierJuryAction() : Response { $this->initializeFromType(); $membre = $this->getMembreService()->getRequestedMembre($this); $acteur = $this->acteurService->getRepository()->findActeurForSoutenanceMembre($membre); // $acteurs = $this->acteurService->getRepository()->findActeurByHDR($this->entity); // $a = null; // foreach ($acteurs as $acteur_) { //// if ($acteur_ === $membre->getActeur()) $acteur = $acteur_; // if ($acteur_ === $acteur) $a = $acteur_; // } if (!$acteur) throw new RuntimeException("Aucun acteur à deassocier !"); // //retrait dans membre de soutenance // $membre->setActeur(null); // $this->getMembreService()->update($membre); // $acteur->setMembre($membre); $acteur->setMembre(null); $this->acteurService->save($acteur); $this->getHorodatageService()->addHorodatage($this->proposition, HorodatageService::TYPE_MODIFICATION, "Association jury"); if(!$this->entity->getSource()->getImportable()) $this->acteurService->historise($acteur); $validation = $this->entity instanceof These ? $this->validationService->getRepository()->findValidationByTheseAndCodeAndIndividu($this->entity, TypeValidation::CODE_ENGAGEMENT_IMPARTIALITE, $acteur->getIndividu()) : $this->validationService->getRepository()->findValidationByHDRAndCodeAndIndividu($this->entity, TypeValidation::CODE_ENGAGEMENT_IMPARTIALITE, $acteur->getIndividu()); if ($validation !== null) { $this->validationService->unsignEngagementImpartialite($validation); } // $utilisateur = $this->getMembreService()->getUtilisateur($membre); // if ($utilisateur){ // try { // $this->utilisateurService->supprimerUtilisateur($utilisateur); // }catch (Exception $e) { // throw new RuntimeException("Un problème est survenu en base de données", 0 , $e); // } // } return $this->redirect()->toRoute("soutenance_{$this->type}/presoutenance", ['id' => $this->entity->getId()], [], true); } protected function createUtilisateurRapporteur(ActeurThese|ActeurHDR $acteur, Membre $membre): void { $individu = $acteur->getIndividu() ?: throw new RuntimeException("Aucun individu associé à l'acteur !"); Loading
module/Soutenance/src/Soutenance/Controller/These/Presoutenance/PresoutenanceTheseController.php +0 −39 Changes for module/Soutenance/src/Soutenance/Controller/These/Presoutenance/PresoutenanceTheseController.php: 0 added lines, 39 removed lines. Original line number Diff line number Diff line Loading @@ -128,45 +128,6 @@ class PresoutenanceTheseController extends PresoutenanceController return $vm; } public function deassocierJuryAction() : Response { $this->initializeFromType(); $membre = $this->getMembreService()->getRequestedMembre($this); $acteurm = $this->acteurService->getRepository()->findActeurForSoutenanceMembre($membre); $acteurs = $this->acteurService->getRepository()->findActeurByThese($this->entity); $acteur = null; foreach ($acteurs as $acteur_) { // if ($acteur_ === $membre->getActeur()) $acteur = $acteur_; if ($acteur_ === $acteurm) $acteur = $acteur_; } if (!$acteur) throw new RuntimeException("Aucun acteur à deassocier !"); // //retrait dans membre de soutenance // $membre->setActeur(null); // $this->getMembreService()->update($membre); $acteur->setMembre($membre); $this->acteurService->save($acteur); $this->getHorodatageService()->addHorodatage($this->proposition, HorodatageService::TYPE_MODIFICATION, "Association jury"); if(!$this->entity->getSource()->getImportable()) $this->acteurService->delete($acteur); $validation = $this->validationService->getRepository()->findValidationByTheseAndCodeAndIndividu($this->entity, TypeValidation::CODE_ENGAGEMENT_IMPARTIALITE, $acteur->getIndividu()); if ($validation !== null) { $this->validationService->unsignEngagementImpartialite($validation); } $utilisateur = $this->getMembreService()->getUtilisateur($membre); if ($utilisateur){ try { $this->utilisateurService->supprimerUtilisateur($utilisateur); }catch (Exception $e) { throw new RuntimeException("Un problème est survenu en base de données", 0 , $e); } } return $this->redirect()->toRoute("soutenance_{$this->type}/presoutenance", ['id' => $this->entity->getId()], [], true); } /** * Ici on affecte au membre des individus enregistrés dans SyGAL */ Loading