Loading composer.lock +43 −43 Original line number Diff line number Diff line Loading @@ -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": { Loading Loading @@ -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", Loading Loading @@ -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": { Loading Loading @@ -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", Loading Loading @@ -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": { Loading Loading @@ -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", Loading Loading @@ -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": { Loading Loading @@ -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", Loading Loading @@ -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": { Loading Loading @@ -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", Loading Loading @@ -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": { Loading Loading @@ -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": [ { Loading @@ -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", Loading Loading @@ -7298,7 +7298,7 @@ "source": { "type": "git", "url": "https://git.unicaen.fr/lib/unicaen/vue.git", "reference": "6dbdd1a9f23c225eb39a04e5f88c70ffacacf3d7" "reference": "c3de98637d9f5654486e9cbb099f40dd0ccbe6fd" }, "type": "library", "autoload": { Loading @@ -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", Loading Loading @@ -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": { Loading Loading @@ -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", Loading front/Mission/ListeOffreEmploi.vue +7 −6 Original line number Diff line number Diff line Loading @@ -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> Loading @@ -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}, Loading @@ -36,7 +37,7 @@ export default { { return { offres: [], ajoutUrl: Util.url('offre-emploi/saisir'), ajoutUrl: unicaenVue.url('offre-emploi/saisir'), }; }, mounted() Loading Loading @@ -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; Loading front/Mission/OffreEmploi.vue +23 −15 Original line number Diff line number Diff line Loading @@ -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" Loading @@ -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"/> Loading Loading @@ -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}, Loading @@ -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: { Loading @@ -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'; Loading @@ -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); Loading module/Application/src/Entity/Db/Intervenant.php +37 −3 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading Loading @@ -282,6 +284,11 @@ class Intervenant implements HistoriqueAwareInterface, ResourceInterface, Import */ protected $missions; /** * @var Collection */ protected $offresEmplois; /** * Cache * Loading Loading @@ -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 * Loading Loading @@ -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; Loading @@ -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 */ Loading module/Application/src/Entity/Db/Mapping/Application.Entity.Db.Intervenant.dcm.xml +1 −0 Original line number Diff line number Diff line Loading @@ -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
composer.lock +43 −43 Original line number Diff line number Diff line Loading @@ -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": { Loading Loading @@ -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", Loading Loading @@ -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": { Loading Loading @@ -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", Loading Loading @@ -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": { Loading Loading @@ -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", Loading Loading @@ -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": { Loading Loading @@ -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", Loading Loading @@ -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": { Loading Loading @@ -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", Loading Loading @@ -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": { Loading Loading @@ -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": [ { Loading @@ -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", Loading Loading @@ -7298,7 +7298,7 @@ "source": { "type": "git", "url": "https://git.unicaen.fr/lib/unicaen/vue.git", "reference": "6dbdd1a9f23c225eb39a04e5f88c70ffacacf3d7" "reference": "c3de98637d9f5654486e9cbb099f40dd0ccbe6fd" }, "type": "library", "autoload": { Loading @@ -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", Loading Loading @@ -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": { Loading Loading @@ -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", Loading
front/Mission/ListeOffreEmploi.vue +7 −6 Original line number Diff line number Diff line Loading @@ -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> Loading @@ -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}, Loading @@ -36,7 +37,7 @@ export default { { return { offres: [], ajoutUrl: Util.url('offre-emploi/saisir'), ajoutUrl: unicaenVue.url('offre-emploi/saisir'), }; }, mounted() Loading Loading @@ -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; Loading
front/Mission/OffreEmploi.vue +23 −15 Original line number Diff line number Diff line Loading @@ -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" Loading @@ -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"/> Loading Loading @@ -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}, Loading @@ -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: { Loading @@ -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'; Loading @@ -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); Loading
module/Application/src/Entity/Db/Intervenant.php +37 −3 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading Loading @@ -282,6 +284,11 @@ class Intervenant implements HistoriqueAwareInterface, ResourceInterface, Import */ protected $missions; /** * @var Collection */ protected $offresEmplois; /** * Cache * Loading Loading @@ -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 * Loading Loading @@ -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; Loading @@ -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 */ Loading
module/Application/src/Entity/Db/Mapping/Application.Entity.Db.Intervenant.dcm.xml +1 −0 Original line number Diff line number Diff line Loading @@ -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>