Loading front/Mission/ListeCandidatures.vue 0 → 100644 +74 −0 Original line number Diff line number Diff line <template> <div> <table class="table table-bordered "> <thead> <tr> <th>Offre d'emploi</th> <th>Composante</th> <th>Etat</th> <th v-if="canValiderCandidature">Action</th> </tr> </thead> <tbody> <tr v-if="candidatures.length == 0"> <td v-if="canValiderCandidature" colspan="4" style="text-align:center;">Aucune candidature</td> <td v-if="!canValiderCandidature" colspan="3" style="text-align:center;">Aucune candidature</td> </tr> <tr v-for="candidature in candidatures" :key="candidature.id"> <td style="text-align:center;">{{ candidature.offre.titre }}</td> <td style="text-align:center;">{{ candidature.offre.structure.libelleLong }}</td> <td style="text-align:center;">Computed à faire</td> <td style="text-align:center;">Action à définir</td> </tr> </tbody> </table> </div> </template> <script> import offreEmploi from "@/Mission/OffreEmploi.vue"; export default { name: "ListeCandidatures.vue", components: {offreEmploi}, props: { intervenant: {required: true}, }, data() { return { candidatures: [] } }, mounted() { this.reload(); console.log(this.candidatures); }, methods: { reload() { unicaenVue.axios.get( unicaenVue.url("intervenant/:intervenant/get-candidatures", {intervenant: this.intervenant}) ).then(response => { this.candidatures = response.data; }); } } } </script> <style scoped> </style> No newline at end of file module/Application/config/intervenant.config.php +40 −0 Original line number Diff line number Diff line Loading @@ -2,9 +2,13 @@ namespace Application; use Application\Assertion\IntervenantAssertion; use Application\Controller\IntervenantController; use Application\Entity\Db\WfEtape; use Application\Provider\Privilege\Privileges; use Contrat\Controller\ContratController; use Dossier\Assertion\IntervenantDossierAssertion; use Dossier\Controller\IntervenantDossierController; use Paiement\Controller\PaiementController; use UnicaenPrivilege\Guard\PrivilegeController; use UnicaenPrivilege\Provider\Rule\PrivilegeRuleProvider; Loading Loading @@ -59,6 +63,24 @@ return [ ], ], ], 'candidature' => [ 'type' => 'Segment', 'options' => [ 'route' => '/:intervenant/candidature', 'defaults' => [ 'action' => 'candidature', ], ], ], 'get-candidatures' => [ 'type' => 'Segment', 'options' => [ 'route' => '/:intervenant/get-candidatures', 'defaults' => [ 'action' => 'get-candidatures', ], ], ], 'voir' => [ 'type' => 'Segment', 'options' => [ Loading Loading @@ -256,6 +278,17 @@ return [ 'resource' => PrivilegeController::getResourceId('Application\Controller\Intervenant', 'index'), 'order' => 1, 'pages' => [ 'candidature' => [ 'label' => "Candidatures", 'title' => "Liste de vos candidatures en cours", 'route' => 'intervenant/candidature', 'paramsInject' => [ 'intervenant', ], 'withtarget' => true, 'resource' => PrivilegeController::getResourceId('Application\Controller\Intervenant', 'candidature'), 'order' => 5, ], 'rechercher' => [ 'label' => " Rechercher", 'title' => "Rechercher un intervenant", Loading Loading @@ -314,6 +347,12 @@ return [ Privileges::INTERVENANT_FICHE, ], ], [ 'controller' => 'Application\Controller\Intervenant', 'action' => ['candidature', 'get-candidatures'], 'privileges' => [Privileges::MISSION_OFFRE_EMPLOI_POSTULER], 'assertion' => IntervenantAssertion::class, ], [ 'controller' => 'Application\Controller\Intervenant', 'action' => ['saisir', 'definir-par-defaut', 'synchronisation', 'synchroniser'], Loading Loading @@ -363,6 +402,7 @@ return [ 'privileges' => [ Privileges::INTERVENANT_EDITION, Privileges::INTERVENANT_EDITION_AVANCEE, Privileges::MISSION_OFFRE_EMPLOI_POSTULER, ], 'resources' => ['Intervenant'], 'assertion' => Assertion\IntervenantAssertion::class, Loading module/Application/src/Controller/IntervenantController.php +34 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,8 @@ use Intervenant\Service\NoteServiceAwareTrait; use Intervenant\Service\StatutServiceAwareTrait; use Laminas\View\Model\ViewModel; use LogicException; use Mission\Entity\Db\Candidature; use Mission\Service\CandidatureServiceAwareTrait; use Plafond\Processus\PlafondProcessusAwareTrait; use Referentiel\Processus\ServiceReferentielProcessusAwareTrait; use Service\Entity\Db\TypeVolumeHoraire; Loading Loading @@ -60,6 +62,7 @@ class IntervenantController extends AbstractController use DifferentielServiceAwareTrait; use NoteServiceAwareTrait; use DossierServiceAwareTrait; use CandidatureServiceAwareTrait; public function indexAction() Loading Loading @@ -134,6 +137,37 @@ class IntervenantController extends AbstractController public function candidatureAction() { $intervenant = $this->getEvent()->getParam('intervenant'); if (!$intervenant) { throw new \LogicException('Intervenant introuvable'); } return compact('intervenant'); } public function getCandidaturesAction() { $intervenant = $this->getEvent()->getParam('intervenant'); if (!$intervenant) { throw new \LogicException('Intervenant introuvable'); } /** * @var Intervenant $intervenant */ $candidatures = $this->getServiceCandidature()->data(['intervenant' => $intervenant]); return $candidatures; } public function definirParDefautAction() { $intervenant = $this->getEvent()->getParam('intervenant'); Loading module/Application/src/Entity/Db/Mapping/Application.Entity.Db.Intervenant.dcm.xml +1 −1 Original line number Diff line number Diff line Loading @@ -109,7 +109,7 @@ <many-to-one field="histoDestructeur" target-entity="Application\Entity\Db\Utilisateur"> <join-column name="HISTO_DESTRUCTEUR_ID" referenced-column-name="ID"/> </many-to-one> <one-to-many field="candidatures" target-entity="Mission\Entity\Db\Candidature" mapped-by="offre" fetch="EXTRA_LAZY"/> <one-to-many field="candidatures" target-entity="Mission\Entity\Db\Candidature" mapped-by="offre" fetch="LAZY"/> <one-to-many field="affectation" target-entity="Application\Entity\Db\AffectationRecherche" mapped-by="intervenant"/> <one-to-many field="agrement" target-entity="Agrement\Entity\Db\Agrement" mapped-by="intervenant"/> <one-to-many field="contrat" target-entity="Contrat\Entity\Db\Contrat" mapped-by="intervenant"/> Loading module/Application/view/application/intervenant/candidature.phtml 0 → 100755 +8 −0 Original line number Diff line number Diff line <?= $this->intervenant($intervenant)->renderTitle('Candidature'); ?> <?= $this->vue('mission/liste-candidatures', [ 'intervenant' => $intervenant->getId(), ]); ?> Loading
front/Mission/ListeCandidatures.vue 0 → 100644 +74 −0 Original line number Diff line number Diff line <template> <div> <table class="table table-bordered "> <thead> <tr> <th>Offre d'emploi</th> <th>Composante</th> <th>Etat</th> <th v-if="canValiderCandidature">Action</th> </tr> </thead> <tbody> <tr v-if="candidatures.length == 0"> <td v-if="canValiderCandidature" colspan="4" style="text-align:center;">Aucune candidature</td> <td v-if="!canValiderCandidature" colspan="3" style="text-align:center;">Aucune candidature</td> </tr> <tr v-for="candidature in candidatures" :key="candidature.id"> <td style="text-align:center;">{{ candidature.offre.titre }}</td> <td style="text-align:center;">{{ candidature.offre.structure.libelleLong }}</td> <td style="text-align:center;">Computed à faire</td> <td style="text-align:center;">Action à définir</td> </tr> </tbody> </table> </div> </template> <script> import offreEmploi from "@/Mission/OffreEmploi.vue"; export default { name: "ListeCandidatures.vue", components: {offreEmploi}, props: { intervenant: {required: true}, }, data() { return { candidatures: [] } }, mounted() { this.reload(); console.log(this.candidatures); }, methods: { reload() { unicaenVue.axios.get( unicaenVue.url("intervenant/:intervenant/get-candidatures", {intervenant: this.intervenant}) ).then(response => { this.candidatures = response.data; }); } } } </script> <style scoped> </style> No newline at end of file
module/Application/config/intervenant.config.php +40 −0 Original line number Diff line number Diff line Loading @@ -2,9 +2,13 @@ namespace Application; use Application\Assertion\IntervenantAssertion; use Application\Controller\IntervenantController; use Application\Entity\Db\WfEtape; use Application\Provider\Privilege\Privileges; use Contrat\Controller\ContratController; use Dossier\Assertion\IntervenantDossierAssertion; use Dossier\Controller\IntervenantDossierController; use Paiement\Controller\PaiementController; use UnicaenPrivilege\Guard\PrivilegeController; use UnicaenPrivilege\Provider\Rule\PrivilegeRuleProvider; Loading Loading @@ -59,6 +63,24 @@ return [ ], ], ], 'candidature' => [ 'type' => 'Segment', 'options' => [ 'route' => '/:intervenant/candidature', 'defaults' => [ 'action' => 'candidature', ], ], ], 'get-candidatures' => [ 'type' => 'Segment', 'options' => [ 'route' => '/:intervenant/get-candidatures', 'defaults' => [ 'action' => 'get-candidatures', ], ], ], 'voir' => [ 'type' => 'Segment', 'options' => [ Loading Loading @@ -256,6 +278,17 @@ return [ 'resource' => PrivilegeController::getResourceId('Application\Controller\Intervenant', 'index'), 'order' => 1, 'pages' => [ 'candidature' => [ 'label' => "Candidatures", 'title' => "Liste de vos candidatures en cours", 'route' => 'intervenant/candidature', 'paramsInject' => [ 'intervenant', ], 'withtarget' => true, 'resource' => PrivilegeController::getResourceId('Application\Controller\Intervenant', 'candidature'), 'order' => 5, ], 'rechercher' => [ 'label' => " Rechercher", 'title' => "Rechercher un intervenant", Loading Loading @@ -314,6 +347,12 @@ return [ Privileges::INTERVENANT_FICHE, ], ], [ 'controller' => 'Application\Controller\Intervenant', 'action' => ['candidature', 'get-candidatures'], 'privileges' => [Privileges::MISSION_OFFRE_EMPLOI_POSTULER], 'assertion' => IntervenantAssertion::class, ], [ 'controller' => 'Application\Controller\Intervenant', 'action' => ['saisir', 'definir-par-defaut', 'synchronisation', 'synchroniser'], Loading Loading @@ -363,6 +402,7 @@ return [ 'privileges' => [ Privileges::INTERVENANT_EDITION, Privileges::INTERVENANT_EDITION_AVANCEE, Privileges::MISSION_OFFRE_EMPLOI_POSTULER, ], 'resources' => ['Intervenant'], 'assertion' => Assertion\IntervenantAssertion::class, Loading
module/Application/src/Controller/IntervenantController.php +34 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,8 @@ use Intervenant\Service\NoteServiceAwareTrait; use Intervenant\Service\StatutServiceAwareTrait; use Laminas\View\Model\ViewModel; use LogicException; use Mission\Entity\Db\Candidature; use Mission\Service\CandidatureServiceAwareTrait; use Plafond\Processus\PlafondProcessusAwareTrait; use Referentiel\Processus\ServiceReferentielProcessusAwareTrait; use Service\Entity\Db\TypeVolumeHoraire; Loading Loading @@ -60,6 +62,7 @@ class IntervenantController extends AbstractController use DifferentielServiceAwareTrait; use NoteServiceAwareTrait; use DossierServiceAwareTrait; use CandidatureServiceAwareTrait; public function indexAction() Loading Loading @@ -134,6 +137,37 @@ class IntervenantController extends AbstractController public function candidatureAction() { $intervenant = $this->getEvent()->getParam('intervenant'); if (!$intervenant) { throw new \LogicException('Intervenant introuvable'); } return compact('intervenant'); } public function getCandidaturesAction() { $intervenant = $this->getEvent()->getParam('intervenant'); if (!$intervenant) { throw new \LogicException('Intervenant introuvable'); } /** * @var Intervenant $intervenant */ $candidatures = $this->getServiceCandidature()->data(['intervenant' => $intervenant]); return $candidatures; } public function definirParDefautAction() { $intervenant = $this->getEvent()->getParam('intervenant'); Loading
module/Application/src/Entity/Db/Mapping/Application.Entity.Db.Intervenant.dcm.xml +1 −1 Original line number Diff line number Diff line Loading @@ -109,7 +109,7 @@ <many-to-one field="histoDestructeur" target-entity="Application\Entity\Db\Utilisateur"> <join-column name="HISTO_DESTRUCTEUR_ID" referenced-column-name="ID"/> </many-to-one> <one-to-many field="candidatures" target-entity="Mission\Entity\Db\Candidature" mapped-by="offre" fetch="EXTRA_LAZY"/> <one-to-many field="candidatures" target-entity="Mission\Entity\Db\Candidature" mapped-by="offre" fetch="LAZY"/> <one-to-many field="affectation" target-entity="Application\Entity\Db\AffectationRecherche" mapped-by="intervenant"/> <one-to-many field="agrement" target-entity="Agrement\Entity\Db\Agrement" mapped-by="intervenant"/> <one-to-many field="contrat" target-entity="Contrat\Entity\Db\Contrat" mapped-by="intervenant"/> Loading
module/Application/view/application/intervenant/candidature.phtml 0 → 100755 +8 −0 Original line number Diff line number Diff line <?= $this->intervenant($intervenant)->renderTitle('Candidature'); ?> <?= $this->vue('mission/liste-candidatures', [ 'intervenant' => $intervenant->getId(), ]); ?>