Commit e8ab2e72 authored by Antony Le Courtes's avatar Antony Le Courtes
Browse files

Intégration de unicaen/vue, finalisation pour candidater à une offre.

parent 882d60cc
Loading
Loading
Loading
Loading
+43 −43
Original line number Diff line number Diff line
@@ -1663,16 +1663,16 @@
        },
        {
            "name": "laminas/laminas-cache",
            "version": "3.10.0",
            "version": "3.10.1",
            "source": {
                "type": "git",
                "url": "https://github.com/laminas/laminas-cache.git",
                "reference": "5807c51b92fd256bbf58eda6df4c1d27148bbfb8"
                "reference": "7bda6c5b500b916cbb03d0504069865d31b3efa5"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/laminas/laminas-cache/zipball/5807c51b92fd256bbf58eda6df4c1d27148bbfb8",
                "reference": "5807c51b92fd256bbf58eda6df4c1d27148bbfb8",
                "url": "https://api.github.com/repos/laminas/laminas-cache/zipball/7bda6c5b500b916cbb03d0504069865d31b3efa5",
                "reference": "7bda6c5b500b916cbb03d0504069865d31b3efa5",
                "shasum": ""
            },
            "require": {
@@ -1759,7 +1759,7 @@
                    "type": "community_bridge"
                }
            ],
            "time": "2023-01-10T14:17:43+00:00"
            "time": "2023-03-31T18:59:17+00:00"
        },
        {
            "name": "laminas/laminas-cache-storage-adapter-memory",
@@ -2808,16 +2808,16 @@
        },
        {
            "name": "laminas/laminas-i18n",
            "version": "2.22.0",
            "version": "2.22.1",
            "source": {
                "type": "git",
                "url": "https://github.com/laminas/laminas-i18n.git",
                "reference": "fc13d1314941bd9acda3861883cd9139d747f98f"
                "reference": "075bec49f777698c6fc229eecefbe7a2364cd18e"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/laminas/laminas-i18n/zipball/fc13d1314941bd9acda3861883cd9139d747f98f",
                "reference": "fc13d1314941bd9acda3861883cd9139d747f98f",
                "url": "https://api.github.com/repos/laminas/laminas-i18n/zipball/075bec49f777698c6fc229eecefbe7a2364cd18e",
                "reference": "075bec49f777698c6fc229eecefbe7a2364cd18e",
                "shasum": ""
            },
            "require": {
@@ -2890,7 +2890,7 @@
                    "type": "community_bridge"
                }
            ],
            "time": "2023-03-12T01:03:50+00:00"
            "time": "2023-03-31T12:31:38+00:00"
        },
        {
            "name": "laminas/laminas-i18n-resources",
@@ -2953,16 +2953,16 @@
        },
        {
            "name": "laminas/laminas-inputfilter",
            "version": "2.24.0",
            "version": "2.24.1",
            "source": {
                "type": "git",
                "url": "https://github.com/laminas/laminas-inputfilter.git",
                "reference": "01c56c11904565b0f594c9cb745b5457a0e390eb"
                "reference": "c5a53b1e72a2270b441391728291f7136e9461d1"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/laminas/laminas-inputfilter/zipball/01c56c11904565b0f594c9cb745b5457a0e390eb",
                "reference": "01c56c11904565b0f594c9cb745b5457a0e390eb",
                "url": "https://api.github.com/repos/laminas/laminas-inputfilter/zipball/c5a53b1e72a2270b441391728291f7136e9461d1",
                "reference": "c5a53b1e72a2270b441391728291f7136e9461d1",
                "shasum": ""
            },
            "require": {
@@ -3023,7 +3023,7 @@
                    "type": "community_bridge"
                }
            ],
            "time": "2023-02-01T17:22:43+00:00"
            "time": "2023-04-05T08:44:05+00:00"
        },
        {
            "name": "laminas/laminas-json",
@@ -4906,16 +4906,16 @@
        },
        {
            "name": "mpdf/mpdf",
            "version": "v8.1.4",
            "version": "v8.1.5",
            "source": {
                "type": "git",
                "url": "https://github.com/mpdf/mpdf.git",
                "reference": "add590e93b7502efafd9839a68cff99f3497b318"
                "reference": "c264ce27af0d794ecd04e201b7e37a06b8a9d720"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/mpdf/mpdf/zipball/add590e93b7502efafd9839a68cff99f3497b318",
                "reference": "add590e93b7502efafd9839a68cff99f3497b318",
                "url": "https://api.github.com/repos/mpdf/mpdf/zipball/c264ce27af0d794ecd04e201b7e37a06b8a9d720",
                "reference": "c264ce27af0d794ecd04e201b7e37a06b8a9d720",
                "shasum": ""
            },
            "require": {
@@ -4979,7 +4979,7 @@
                    "type": "custom"
                }
            ],
            "time": "2022-12-15T11:24:39+00:00"
            "time": "2023-04-04T15:06:48+00:00"
        },
        {
            "name": "myclabs/deep-copy",
@@ -5428,25 +5428,25 @@
        },
        {
            "name": "psr/http-message",
            "version": "1.0.1",
            "version": "1.1",
            "source": {
                "type": "git",
                "url": "https://github.com/php-fig/http-message.git",
                "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363"
                "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363",
                "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363",
                "url": "https://api.github.com/repos/php-fig/http-message/zipball/cb6ce4845ce34a8ad9e68117c10ee90a29919eba",
                "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba",
                "shasum": ""
            },
            "require": {
                "php": ">=5.3.0"
                "php": "^7.2 || ^8.0"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "1.0.x-dev"
                    "dev-master": "1.1.x-dev"
                }
            },
            "autoload": {
@@ -5475,9 +5475,9 @@
                "response"
            ],
            "support": {
                "source": "https://github.com/php-fig/http-message/tree/master"
                "source": "https://github.com/php-fig/http-message/tree/1.1"
            },
            "time": "2016-08-06T14:39:51+00:00"
            "time": "2023-04-04T09:50:52+00:00"
        },
        {
            "name": "psr/log",
@@ -5801,16 +5801,16 @@
        },
        {
            "name": "symfony/console",
            "version": "v5.4.21",
            "version": "v5.4.22",
            "source": {
                "type": "git",
                "url": "https://github.com/symfony/console.git",
                "reference": "c77433ddc6cdc689caf48065d9ea22ca0853fbd9"
                "reference": "3cd51fd2e6c461ca678f84d419461281bd87a0a8"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/symfony/console/zipball/c77433ddc6cdc689caf48065d9ea22ca0853fbd9",
                "reference": "c77433ddc6cdc689caf48065d9ea22ca0853fbd9",
                "url": "https://api.github.com/repos/symfony/console/zipball/3cd51fd2e6c461ca678f84d419461281bd87a0a8",
                "reference": "3cd51fd2e6c461ca678f84d419461281bd87a0a8",
                "shasum": ""
            },
            "require": {
@@ -5875,12 +5875,12 @@
            "homepage": "https://symfony.com",
            "keywords": [
                "cli",
                "command line",
                "command-line",
                "console",
                "terminal"
            ],
            "support": {
                "source": "https://github.com/symfony/console/tree/v5.4.21"
                "source": "https://github.com/symfony/console/tree/v5.4.22"
            },
            "funding": [
                {
@@ -5896,7 +5896,7 @@
                    "type": "tidelift"
                }
            ],
            "time": "2023-02-25T16:59:41+00:00"
            "time": "2023-03-25T09:27:28+00:00"
        },
        {
            "name": "symfony/deprecation-contracts",
@@ -7298,7 +7298,7 @@
            "source": {
                "type": "git",
                "url": "https://git.unicaen.fr/lib/unicaen/vue.git",
                "reference": "6dbdd1a9f23c225eb39a04e5f88c70ffacacf3d7"
                "reference": "c3de98637d9f5654486e9cbb099f40dd0ccbe6fd"
            },
            "type": "library",
            "autoload": {
@@ -7310,7 +7310,7 @@
                ]
            },
            "description": "Module pour utiliser Vue.js",
            "time": "2023-03-30T07:44:01+00:00"
            "time": "2023-04-05T13:52:02+00:00"
        },
        {
            "name": "unicaen/zfc-user",
@@ -8292,16 +8292,16 @@
        },
        {
            "name": "phpstan/phpdoc-parser",
            "version": "1.16.1",
            "version": "1.18.0",
            "source": {
                "type": "git",
                "url": "https://github.com/phpstan/phpdoc-parser.git",
                "reference": "e27e92d939e2e3636f0a1f0afaba59692c0bf571"
                "reference": "882eabc9b6a12e25c27091a261397f9c8792e722"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/e27e92d939e2e3636f0a1f0afaba59692c0bf571",
                "reference": "e27e92d939e2e3636f0a1f0afaba59692c0bf571",
                "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/882eabc9b6a12e25c27091a261397f9c8792e722",
                "reference": "882eabc9b6a12e25c27091a261397f9c8792e722",
                "shasum": ""
            },
            "require": {
@@ -8331,9 +8331,9 @@
            "description": "PHPDoc parser with support for nullable, intersection and generic types",
            "support": {
                "issues": "https://github.com/phpstan/phpdoc-parser/issues",
                "source": "https://github.com/phpstan/phpdoc-parser/tree/1.16.1"
                "source": "https://github.com/phpstan/phpdoc-parser/tree/1.18.0"
            },
            "time": "2023-02-07T18:11:17+00:00"
            "time": "2023-04-06T07:26:43+00:00"
        },
        {
            "name": "sabre/event",
+7 −6
Original line number Diff line number Diff line
@@ -8,7 +8,7 @@
    <a v-if="!this.public && this.canModifier" class=" btn btn-primary" :href="ajoutUrl" @click.prevent="ajout">Ajouter une nouvelle offre</a>
    <div v-if="extended">
        <offreEmploi v-for="offre in offres" :key="offre.id" :offre="offre" :canPostuler="this.canPostuler" :extended="extended"
                     :public="this.public" :utilisateur="this.utilisateur"></offreEmploi>
                     :public="this.public" :utilisateur="this.utilisateur" :intervenant="this.intervenant"></offreEmploi>
    </div>
    <br/>
</template>
@@ -25,6 +25,7 @@ export default {
        public: {type: Boolean, required: true},
        id: {type: Number, required: false},
        utilisateur: {required: false},
        intervenant: {required: false},
        canModifier: {type: Boolean, required: false},
        canPostuler: {type: Boolean, required: false},
        canValider: {type: Boolean, required: false},
@@ -36,7 +37,7 @@ export default {
    {
        return {
            offres: [],
            ajoutUrl: Util.url('offre-emploi/saisir'),
            ajoutUrl: unicaenVue.url('offre-emploi/saisir'),
        };
    },
    mounted()
@@ -77,16 +78,16 @@ export default {
        reload()
        {
            if (this.id) {
                axios.get(
                    Util.url("offre-emploi/get/:offreEmploi", {offreEmploi: this.id})
                unicaenVue.axios.get(
                    unicaenVue.url("offre-emploi/get/:offreEmploi", {offreEmploi: this.id})
                ).then(response => {
                    this.offres = [response.data];

                });

            } else {
                axios.get(
                    Util.url("offre-emploi/liste")
                unicaenVue.axios.get(
                    unicaenVue.url("offre-emploi/liste")
                ).then(response => {
                    this.offres = response.data;

+23 −15
Original line number Diff line number Diff line
@@ -30,19 +30,19 @@
            </div>
            <div class="card-footer">
                <div class="d-grid gap-2 d-md-flex justify-content-md-end">
                    <a v-if="offre.validation && this.canValider"
                    <a v-if="offre.validation && this.canValider && !this.public"
                       :href="devaliderUrl"
                       class="btn btn-danger"
                       @click.prevent="devalider">Devalider</a>
                    <a v-if="!offre.validation && this.canValider"
                    <a v-if="!offre.validation && this.canValider  && !this.public"
                       :href="validerUrl"
                       class="btn btn-success"
                       @click.prevent="valider">Valider</a>
                    <a v-if="this.canModifier"
                    <a v-if="this.canModifier && !this.public"
                       :href="saisirUrl"
                       class="btn btn-primary"
                       @click.prevent="saisir">Modifier</a>
                    <a v-if="this.canSupprimer"
                    <a v-if="this.canSupprimer && !this.public"
                       :href="supprimerUrl"
                       class="btn btn-danger"
                       data-title="Suppression de l'offre"
@@ -64,12 +64,19 @@
                postuler.
            </div>
        </div>
        <div v-if="!this.canPostuler && this.utilisateur" class="alert alert-primary d-flex align-items-center" role="alert">
        <div v-if="!this.canPostuler && this.intervenant" class="alert alert-primary d-flex align-items-center" role="alert">
            <i class="fa-solid fa-circle-xmark"></i>
            <div class="ms-2">
                Vous n'avez pas les droits pour postuler à cette offre, merci de contacter votre administration de rattachement.
            </div>
        </div>
        <div v-if="!this.intervenant" class="alert alert-primary d-flex align-items-center" role="alert">
            <i class="fa-solid fa-circle-xmark"></i>
            <div class="ms-2">
                Vous ne pouvez pas postuler avec ce profil à cette offre, merci de contacter votre administration de rattachement ou de vous connecter en tant
                qu'étudiant.
            </div>
        </div>
        <p class="bg-light" style="padding:10px;">
            <b>Crée le : </b>
            <u-date :value="offre.histoCreation"/>
@@ -113,6 +120,7 @@ export default {
        offre: {required: true},
        public: {type: Boolean, required: false},
        utilisateur: {required: false},
        intervenant: {required: false},
        extended: {type: Boolean, required: false},
        canModifier: {type: Boolean, required: false},
        canPostuler: {type: Boolean, required: false},
@@ -122,14 +130,14 @@ export default {
    data()
    {

        console.log(this.canPostuler);
        console.log(this.intervenant);
        return {
            saisirUrl: Util.url('offre-emploi/saisir/:offre', {offre: this.offre.id}),
            supprimerUrl: Util.url("offre-emploi/supprimer/:offre", {offre: this.offre.id}),
            validerUrl: Util.url('offre-emploi/valider/:offre', {offre: this.offre.id}),
            devaliderUrl: Util.url('offre-emploi/devalider/:offre', {offre: this.offre.id}),
            consulterUrl: Util.url('offre-emploi/public/:offre', {offre: this.offre.id}),
            postulerUrl: Util.url('offre-emploi/postuler/:offre', {offre: this.offre.id})
            saisirUrl: unicaenVue.url('offre-emploi/saisir/:offre', {offre: this.offre.id}),
            supprimerUrl: unicaenVue.url("offre-emploi/supprimer/:offre", {offre: this.offre.id}),
            validerUrl: unicaenVue.url('offre-emploi/valider/:offre', {offre: this.offre.id}),
            devaliderUrl: unicaenVue.url('offre-emploi/devalider/:offre', {offre: this.offre.id}),
            consulterUrl: unicaenVue.url('offre-emploi/public/:offre', {offre: this.offre.id}),
            postulerUrl: unicaenVue.url('offre-emploi/postuler/:offre', {offre: this.offre.id})
        };
    },
    computed: {
@@ -143,7 +151,7 @@ export default {
            }
        },
        isDisabled: function () {
            if (!this.canPostuler) {
            if (!this.canPostuler || !this.intervenant) {
                return 'btn btn-primary disabled';
            }
            return 'btn btn-primary';
@@ -169,8 +177,8 @@ export default {
        },
        refresh()
        {
            axios.get(
                Util.url("offre-emploi/get/:offreEmploi", {offreEmploi: this.offre.id})
            unicaenVue.axios.get(
                unicaenVue.url("offre-emploi/get/:offreEmploi", {offreEmploi: this.offre.id})
            ).then(response => {
                console.log(response.data);
                this.$emit('refresh', response.data);
+37 −3
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ use Intervenant\Entity\Db\Statut;
use Laminas\Hydrator\ClassMethodsHydrator;
use Laminas\Permissions\Acl\Resource\ResourceInterface;
use Mission\Entity\Db\Mission;
use Mission\Entity\Db\OffreEmploi;
use OffreFormation\Entity\Db\Traits\DisciplineAwareTrait;
use Service\Entity\Db\EtatVolumeHoraire;
use Service\Entity\Db\HistoIntervenantService;
@@ -29,12 +30,13 @@ use UnicaenApp\Service\EntityManagerAwareInterface;
use UnicaenApp\Service\EntityManagerAwareTrait;
use UnicaenImport\Entity\Db\Interfaces\ImportAwareInterface;
use UnicaenImport\Entity\Db\Traits\ImportAwareTrait;
use UnicaenVue\Axios\AxiosExtractorInterface;

/**
 * Intervenant
 *
 */
class Intervenant implements HistoriqueAwareInterface, ResourceInterface, ImportAwareInterface, EntityManagerAwareInterface, AdresseInterface
class Intervenant implements HistoriqueAwareInterface, ResourceInterface, ImportAwareInterface, EntityManagerAwareInterface, AdresseInterface, AxiosExtractorInterface
{
    use AnneeAwareTrait;
    use StructureAwareTrait;
@@ -282,6 +284,11 @@ class Intervenant implements HistoriqueAwareInterface, ResourceInterface, Import
     */
    protected $missions;

    /**
     * @var Collection
     */
    protected $offresEmplois;

    /**
     * Cache
     *
@@ -348,6 +355,13 @@ class Intervenant implements HistoriqueAwareInterface, ResourceInterface, Import



    public function axiosDefinition(): array
    {
        return ['nomUsuel', 'prenom', 'emailPro', 'statut', 'code'];
    }



    /**
     * Returns the string identifier of the Resource
     *
@@ -1583,11 +1597,11 @@ class Intervenant implements HistoriqueAwareInterface, ResourceInterface, Import


    /**
     * Get IndicModifDossier
     * Get missions
     *
     * @return Collection|Mission[]
     */
    public function getMissions(): Collection
    public function getMissions(): ?Collection
    {
        if (null === $this->missions) {
            return null;
@@ -1602,6 +1616,26 @@ class Intervenant implements HistoriqueAwareInterface, ResourceInterface, Import



    /**
     * Get missions
     *
     * @return Collection|OffreEmploi[]
     */
    public function getOffresEmplois(): ?Collection
    {
        if (null === $this->offresEmplois) {
            return null;
        }

        $filter = function (OffreEmploi $offre) {
            return ($offre->estHistorise()) ? false : true;
        };

        return $this->offresEmplois->filter($filter);
    }



    /**
     * @return bool
     */
+1 −0
Original line number Diff line number Diff line
@@ -137,5 +137,6 @@
        <one-to-many field="indicModifDossier" target-entity="Indicateur\Entity\Db\IndicModifDossier"
                     mapped-by="intervenant"/>
        <one-to-many field="missions" target-entity="Mission\Entity\Db\Mission" mapped-by="intervenant"/>
        <many-to-many field="offresEmplois" target-entity="Mission\Entity\Db\OffreEmploi" mapped-by="etudiants"/>
    </entity>
</doctrine-mapping>
Loading