Commit 286c3c01 authored by Antony Le Courtes's avatar Antony Le Courtes
Browse files

Acceptation d'une candidature

parent de5ebd48
Loading
Loading
Loading
Loading
+10 −3
Original line number Diff line number Diff line
@@ -152,11 +152,18 @@
                        <span v-if="!candidature.validation" class="badge rounded-pill bg-warning">En attente d'acceptation</span>
                    </th>
                    <td v-if="this.canValiderCandidature">
                        <a :href="'/offre-emploi/validation-candidature/' + candidature.id" v-if="!candidature.intervenant.validation"
                           title="Valider la candidature"
                        <a :href="'/offre-emploi/accepter-candidature/' + candidature.id" v-if="!candidature.validation"
                           title="Accepter la candidature"
                           class="btn btn-success"
                           data-title="Accepter la candidature"
                           data-content="Etes vous sûre de vouloir accepter cette candidature ?"
                           @click.prevent="validerCandidature">Accepter </a>
                           @click.prevent="validerCandidature">Accepter </a>&nbsp;
                        <a :href="'/offre-emploi/refuser-candidature/' + candidature.id"
                           title="Refuser la candidature"
                           class="btn btn-danger"
                           data-title="Refuser la candidature"
                           data-content="Etes vous sûre de vouloir refuser cette candidature ?"
                           @click.prevent="refuserCandidature">Refuser </a>
                    </td>
                </tr>
                </tbody>
+10 −4
Original line number Diff line number Diff line
@@ -69,10 +69,16 @@ return [
                    'action'     => 'postuler',
                    'privileges' => Privileges::MISSION_OFFRE_EMPLOI_POSTULER,
                ],
                'valider-candidature' => [
                    'route'      => '/validation-candidature/:candidature',
                'accepter-candidature' => [
                    'route'      => '/accepter-candidature/:candidature',
                    'controller' => OffreEmploiController::class,
                    'action'     => 'valider-candidature',
                    'action'     => 'accepter-candidature',
                    'privileges' => Privileges::MISSION_CANDIDATURE_VALIDER,
                ],
                'refuser-candidature'  => [
                    'route'      => '/refuser-candidature/:candidature',
                    'controller' => OffreEmploiController::class,
                    'action'     => 'refuser-candidature',
                    'privileges' => Privileges::MISSION_CANDIDATURE_VALIDER,
                ],

@@ -155,7 +161,7 @@ return [
        ],
        [
            'controller' => OffreEmploiController::class,
            'action'     => ['valider-candidature'],
            'action'     => ['accepter-candidature', 'refuser-candidature'],
            'privileges' => [
                Privileges::MISSION_CANDIDATURE_VALIDER,
            ],
+34 −15
Original line number Diff line number Diff line
@@ -134,17 +134,37 @@ class OffreEmploiController extends AbstractController



    public function validerCandidatureAction()
    public function devaliderAction()
    {
        /** @var OffreEmploi $offre */
        $offre      = $this->getEvent()->getParam('offreEmploi');
        $validation = $offre->getValidation();
        if ($validation) {
            $offre->setAutoValidation(false);
            $offre->setValidation(null);
            $this->getServiceOffreEmploi()->save($offre);
            $this->getServiceValidation()->delete($validation);
            $this->flashMessenger()->addSuccessMessage("Offre d'emploi dévalidée");
        } else {
            $this->flashMessenger()->addInfoMessage("L'offre d'emploi n'était pas validée");
        }

        return $this->getAction($offre);
    }



    public function accepterCandidatureAction()
    {
        /** @var Candidature $candidature */
        $candidature = $this->getEvent()->getParam('candidature');

        if ($candidature->isValide()) {
            $this->flashMessenger()->addInfoMessage('La candidature est déjà validé');
            $this->flashMessenger()->addInfoMessage('La candidature est déjà acceptée');
        } else {
            $this->getServiceValidation()->validerCandidature($candidature);
            $this->getServiceCandidature()->save($candidature);
            $this->flashMessenger()->addSuccessMessage("La candidature est bien validée");
            $this->flashMessenger()->addSuccessMessage("La candidature est bien acceptée");
            $this->getServiceMission()->createMissionFromCandidature($candidature);
        }

@@ -154,22 +174,21 @@ class OffreEmploiController extends AbstractController



    public function devaliderAction()
    public function refuserCandidatureAction()
    {
        /** @var OffreEmploi $offre */
        $offre      = $this->getEvent()->getParam('offreEmploi');
        $validation = $offre->getValidation();
        if ($validation) {
            $offre->setAutoValidation(false);
            $offre->setValidation(null);
            $this->getServiceOffreEmploi()->save($offre);
            $this->getServiceValidation()->delete($validation);
            $this->flashMessenger()->addSuccessMessage("Offre d'emploi dévalidée");
        /** @var Candidature $candidature */
        $candidature = $this->getEvent()->getParam('candidature');

        if ($candidature->isValide()) {
            $this->flashMessenger()->addInfoMessage('La candidature est déjà refusée');
        } else {
            $this->flashMessenger()->addInfoMessage("L'offre d'emploi n'était pas validée");
            $this->getServiceValidation()->validerCandidature($candidature);
            $this->getServiceCandidature()->save($candidature);
            $this->flashMessenger()->addSuccessMessage("La candidature est bien refusée");
        }

        return $this->getAction($offre);

        return $this->getAction($candidature->getOffre());
    }