diff --git a/canapGEST/API/app/Http/Controllers/ApplicantsController.php b/canapGEST/API/app/Http/Controllers/ApplicantsController.php index 136fc232dd7d42ff5c5c9b5785a6e4478dd6f415..9cd0c3e7aa3ae0da293d1e2b4c828b4b777bca34 100644 --- a/canapGEST/API/app/Http/Controllers/ApplicantsController.php +++ b/canapGEST/API/app/Http/Controllers/ApplicantsController.php @@ -177,7 +177,7 @@ class ApplicantsController extends Controller ], "scolarities" => $scolarities, "pro_activities" => $pro_activities, - "training" => $trainings, + "trainings" => $trainings, "files" => $files ]; } diff --git a/canapGEST/Documentation/journal_travail.xlsx b/canapGEST/Documentation/journal_travail.xlsx index 34ea2b333d6a8b8f46a5466bdfc5f948dd5941d6..de82a2d454073c0a5d2ad07a903b1ed00346fb2f 100644 Binary files a/canapGEST/Documentation/journal_travail.xlsx and b/canapGEST/Documentation/journal_travail.xlsx differ diff --git a/canapGEST/Site/src/assets/logo_jpg.png b/canapGEST/Site/src/assets/logo_jpg.png new file mode 100644 index 0000000000000000000000000000000000000000..df8dc3225a214bdb156480e83d349acb9de843e8 Binary files /dev/null and b/canapGEST/Site/src/assets/logo_jpg.png differ diff --git a/canapGEST/Site/src/assets/logo_pdf.png b/canapGEST/Site/src/assets/logo_pdf.png new file mode 100644 index 0000000000000000000000000000000000000000..3e6690ed2af7a8f43ce0bd1aceac64a7ad2a371d Binary files /dev/null and b/canapGEST/Site/src/assets/logo_pdf.png differ diff --git a/canapGEST/Site/src/assets/logo_png.png b/canapGEST/Site/src/assets/logo_png.png new file mode 100644 index 0000000000000000000000000000000000000000..6e8527c98bf29c2ce4ce7c46efee17ac464ca4d3 Binary files /dev/null and b/canapGEST/Site/src/assets/logo_png.png differ diff --git a/canapGEST/Site/src/components/application/applicationComments.vue b/canapGEST/Site/src/components/application/applicationComments.vue new file mode 100644 index 0000000000000000000000000000000000000000..be3ba78b453dffad32148b0dae08aef081834bf9 --- /dev/null +++ b/canapGEST/Site/src/components/application/applicationComments.vue @@ -0,0 +1,9 @@ +<template> + <div id="application-comments"></div> +</template> + +<script> +export default { + name: 'application-comments' +} +</script> diff --git a/canapGEST/Site/src/components/application/applicationTitle.vue b/canapGEST/Site/src/components/application/applicationTitle.vue new file mode 100644 index 0000000000000000000000000000000000000000..efffb84b1fa6a55abf5001034f7227ded14433d8 --- /dev/null +++ b/canapGEST/Site/src/components/application/applicationTitle.vue @@ -0,0 +1,61 @@ +<template> + <div id="application-title" style="margin-bottom: 20px;"> + <v-toolbar> + <v-toolbar-title> + Candidature (#{{$route.params.id}}) + <small>- le {{$store.state.moduleApplications.currentApplication.application_data.personal_data.applicant_application_date}}</small> + </v-toolbar-title> + <v-spacer></v-spacer> + <v-rating + color="warning" + background-color="warning" + :value="ratingValue" + v-if="!$store.getters['moduleUser/userIsResponsible']" + ></v-rating> + <v-divider class="mx-3" inset vertical></v-divider> + <v-toolbar-items> + <v-tooltip bottom> + <template v-slot:activator="{ on }"> + <v-btn fab small v-on="on" @click="print"> + <v-icon>print</v-icon> + </v-btn> + </template> + <span>Imprimer</span> + </v-tooltip> + <v-tooltip bottom> + <template v-slot:activator="{ on }"> + <v-btn fab small v-on="on" @click="contact"> + <v-icon>email</v-icon> + </v-btn> + </template> + <span>Contacter</span> + </v-tooltip> + <v-tooltip bottom> + <template v-slot:activator="{ on }"> + <v-btn fab small v-on="on" @click="exportData"> + <v-icon>get_app</v-icon> + </v-btn> + </template> + <span>Exporter (JSON)</span> + </v-tooltip> + </v-toolbar-items> + </v-toolbar> + </div> +</template> + +<script> +export default { + name: 'application-title', + computed: { + ratingValue() { + return this.$store.state.moduleApplications.currentApplication.marker ? this.$store.state.moduleApplications.currentApplication.marker.marker_value : null + } + }, + methods: { + print() { window.print() }, + contact() { window.location.href = 'mailto:' + this.$store.state.moduleApplications.currentApplication.application_data.personal_data.applicant_mail }, + exportData() { }, + rate() { } + } +} +</script> diff --git a/canapGEST/Site/src/components/application/sheets/activitiesDataSheet.vue b/canapGEST/Site/src/components/application/sheets/activitiesDataSheet.vue new file mode 100644 index 0000000000000000000000000000000000000000..7ddf484f4a56f5a18edc655ab0558be803f66581 --- /dev/null +++ b/canapGEST/Site/src/components/application/sheets/activitiesDataSheet.vue @@ -0,0 +1,51 @@ +<template> + <v-sheet class="d-flex" id="activities-data-sheet"> + <v-card> + <v-card-title> + <h4>Activités professionnelles</h4> + </v-card-title> + <v-divider></v-divider> + <v-list + dense + v-for="(activity, i) in $store.state.moduleApplications.currentApplication.application_data.pro_activities" + :key="activity.professional_activity_id" + > + <v-subheader>Activité {{i + 1}}</v-subheader> + <v-list-tile> + <v-list-tile-content> + <b>Entreprise</b> + </v-list-tile-content> + <v-list-tile-content class="align-end">{{ activity.professional_activity_company }}</v-list-tile-content> + </v-list-tile> + <v-list-tile> + <v-list-tile-content> + <b>Lieu</b> + </v-list-tile-content> + <v-list-tile-content class="align-end">{{ activity.professional_activity_location }}</v-list-tile-content> + </v-list-tile> + <v-list-tile> + <v-list-tile-content> + <b>Activité</b> + </v-list-tile-content> + <v-list-tile-content class="align-end">{{ activity.professional_activity_activity }}</v-list-tile-content> + </v-list-tile> + <v-list-tile> + <v-list-tile-content> + <b>Années</b> + </v-list-tile-content> + <v-list-tile-content class="align-end">{{ activity.professional_activity_years }}</v-list-tile-content> + </v-list-tile> + <v-divider></v-divider> + </v-list> + </v-card> + </v-sheet> +</template> + +<script> +export default { + name: 'activities-data-sheet' +} +</script> + +<style> +</style> diff --git a/canapGEST/Site/src/components/application/sheets/filesDataSheet.vue b/canapGEST/Site/src/components/application/sheets/filesDataSheet.vue new file mode 100644 index 0000000000000000000000000000000000000000..7c23a5a032e6c7696de28ec1b6679bd067d7c36e --- /dev/null +++ b/canapGEST/Site/src/components/application/sheets/filesDataSheet.vue @@ -0,0 +1,44 @@ +<template> + <v-sheet class="d-flex" id="files-data-sheet"> + <v-card> + <v-card-title> + <h4>Annexes</h4> + </v-card-title> + <v-divider></v-divider> + + <v-list dense> + <!-- <v-list-tile-content>Fichier</v-list-tile-content> --> + <!-- <v-list-tile-content class="align-end"> + <a @click="getFile(file.file_id)"> + <u>{{ file.file_name }}</u> + </a> + </v-list-tile-content>--> + <v-container fluid> + <v-layout row wrap> + <v-flex + v-for="file in $store.state.moduleApplications.currentApplication.application_data.files" + :key="file.file_id" + xs4 + > + <a @click="getFile(file.file_id)"> + <img src="@/assets/logo_pdf.png" height="75px"> + <u>{{ file.file_name }}</u> + </a> + </v-flex> + </v-layout> + </v-container> + </v-list> + </v-card> + </v-sheet> +</template> + +<script> +export default { + name: 'files-data-sheet', + methods: { + getFile(id) { + this.$store.dispatch('moduleApplications/getFile', { id: id }) + } + } +} +</script> diff --git a/canapGEST/Site/src/components/application/sheets/personalDataSheet.vue b/canapGEST/Site/src/components/application/sheets/personalDataSheet.vue new file mode 100644 index 0000000000000000000000000000000000000000..0d26bd478b88ccef8326275c86c3889379e52767 --- /dev/null +++ b/canapGEST/Site/src/components/application/sheets/personalDataSheet.vue @@ -0,0 +1,171 @@ +<template> + <v-sheet class="d-flex" id="personal-data-sheet"> + <v-card> + <v-card-title> + <h4>Données personnelles</h4> + </v-card-title> + <v-divider></v-divider> + <v-list dense> + <v-list-tile> + <v-list-tile-content> + <b>Nom, prénom</b> + </v-list-tile-content> + <v-list-tile-content class="align-end"> + {{ $store.state.moduleApplications.currentApplication.application_data.personal_data.applicant_name }} + {{ $store.state.moduleApplications.currentApplication.application_data.personal_data.applicant_fsname }} + </v-list-tile-content> + </v-list-tile> + <v-list-tile> + <v-list-tile-content> + <b>Formation, lieu</b> + </v-list-tile-content> + <v-list-tile-content class="align-end"> + {{ $store.state.moduleApplications.currentApplication.application_data.personal_data.job_full_value }}, + {{ $store.state.moduleApplications.currentApplication.application_data.personal_data.location_site }} + </v-list-tile-content> + </v-list-tile> + <v-list-tile> + <v-list-tile-content> + <b>Maturité</b> + </v-list-tile-content> + <v-list-tile-content class="align-end"> + <span + v-if="$store.state.moduleApplications.currentApplication.application_data.personal_data.applicant_maturity" + >✔</span> + <span v-else>✘</span> + </v-list-tile-content> + </v-list-tile> + <v-list-tile> + <v-list-tile-content> + <b>Adresse</b> + </v-list-tile-content> + <v-list-tile-content class="align-end"> + {{ $store.state.moduleApplications.currentApplication.application_data.personal_data.applicant_address_street }}, + {{ $store.state.moduleApplications.currentApplication.application_data.personal_data.applicant_address_npa }} + </v-list-tile-content> + </v-list-tile> + <v-list-tile> + <v-list-tile-content> + <b>Email</b> + </v-list-tile-content> + <v-list-tile-content + class="align-end" + >{{ $store.state.moduleApplications.currentApplication.application_data.personal_data.applicant_mail }}</v-list-tile-content> + </v-list-tile> + <v-list-tile> + <v-list-tile-content> + <b>Téléphones (privé, domicile)</b> + </v-list-tile-content> + <v-list-tile-content class="align-end"> + {{ $store.state.moduleApplications.currentApplication.application_data.personal_data.applicant_personal_phone }}, + {{ $store.state.moduleApplications.currentApplication.application_data.personal_data.applicant_home_phone }} + </v-list-tile-content> + </v-list-tile> + <v-list-tile> + <v-list-tile-content> + <b>Date naissance, majeur</b> + </v-list-tile-content> + <v-list-tile-content + class="align-end" + >{{ $store.state.moduleApplications.currentApplication.application_data.personal_data.applicant_birthdate }}</v-list-tile-content> + </v-list-tile> + <v-list-tile> + <v-list-tile-content> + <b>Majeur</b> + </v-list-tile-content> + <v-list-tile-content class="align-end"> + <span + v-if="$store.state.moduleApplications.currentApplication.application_data.personal_data.applicant_has_majority" + >✔</span> + <span v-else>✘</span> + </v-list-tile-content> + </v-list-tile> + <v-list-tile> + <v-list-tile-content> + <b>Numéro AVS</b> + </v-list-tile-content> + <v-list-tile-content + class="align-end" + >{{ $store.state.moduleApplications.currentApplication.application_data.personal_data.applicant_avs }}</v-list-tile-content> + </v-list-tile> + <v-list-tile> + <v-list-tile-content> + <b>Nationalité</b> + </v-list-tile-content> + <v-list-tile-content + class="align-end" + >{{ $store.state.moduleApplications.currentApplication.application_data.personal_data.applicant_nationality }}</v-list-tile-content> + </v-list-tile> + <v-list-tile> + <v-list-tile-content> + <b>Origine</b> + </v-list-tile-content> + <v-list-tile-content + class="align-end" + >{{ $store.state.moduleApplications.currentApplication.application_data.personal_data.applicant_origin }}</v-list-tile-content> + </v-list-tile> + <v-list-tile> + <v-list-tile-content> + <b>Langues</b> + </v-list-tile-content> + <v-list-tile-content class="align-end"> + <div> + <img + src="@/assets/french_logo.png" + alt="logo_french" + width="20" + v-if="$store.state.moduleApplications.currentApplication.application_data.personal_data.applicant_speaks_french" + > + <img + src="@/assets/german_logo.png" + alt="logo_german" + width="20" + v-if="$store.state.moduleApplications.currentApplication.application_data.personal_data.applicant_speaks_german" + > + <img + src="@/assets/english_logo.png" + alt="logo_english" + width="20" + v-if="$store.state.moduleApplications.currentApplication.application_data.personal_data.applicant_speaks_english" + > + <img + src="@/assets/others_logo.png" + alt="logo_others" + width="20" + v-if="$store.state.moduleApplications.currentApplication.application_data.personal_data.applicant_speaks_other" + > + </div> + </v-list-tile-content> + </v-list-tile> + <v-list-tile> + <v-list-tile-content> + <b>Fin de scolarité</b> + </v-list-tile-content> + <v-list-tile-content + class="align-end" + >{{ $store.state.moduleApplications.currentApplication.application_data.personal_data.applicant_scolarity_end }}</v-list-tile-content> + </v-list-tile> + <v-list-tile> + <v-list-tile-content> + <b>Déjà candidat ? (Année)</b> + </v-list-tile-content> + <v-list-tile-content class="align-end"> + <span + v-if="$store.state.moduleApplications.currentApplication.application_data.personal_data.applicant_already_applicant" + >✔ ({{$store.state.moduleApplications.currentApplication.application_data.personal_data.applicant_already_applicant_year }})</span> + <span v-else>✘</span> + </v-list-tile-content> + </v-list-tile> + </v-list> + </v-card> + </v-sheet> +</template> + +<script> +export default { + name: 'personal-data-sheet' +} +</script> + +<style> +</style> diff --git a/canapGEST/Site/src/components/application/sheets/scolaritiesDataSheet.vue b/canapGEST/Site/src/components/application/sheets/scolaritiesDataSheet.vue new file mode 100644 index 0000000000000000000000000000000000000000..9aea483ffe9f183633e4d4b2d0635f3345a76c16 --- /dev/null +++ b/canapGEST/Site/src/components/application/sheets/scolaritiesDataSheet.vue @@ -0,0 +1,51 @@ +<template> + <v-sheet class="d-flex" id="scolarities-data-sheet"> + <v-card> + <v-card-title> + <h4>Scolarités</h4> + </v-card-title> + <v-divider></v-divider> + <v-list + dense + v-for="(scolarity, i) in $store.state.moduleApplications.currentApplication.application_data.scolarities" + :key="scolarity.scolarity_id" + > + <v-subheader>Scolarité {{i + 1}}</v-subheader> + <v-list-tile> + <v-list-tile-content> + <b>École</b> + </v-list-tile-content> + <v-list-tile-content class="align-end">{{ scolarity.scolarity_school }}</v-list-tile-content> + </v-list-tile> + <v-list-tile> + <v-list-tile-content> + <b>Lieu</b> + </v-list-tile-content> + <v-list-tile-content class="align-end">{{ scolarity.scolarity_location }}</v-list-tile-content> + </v-list-tile> + <v-list-tile> + <v-list-tile-content> + <b>Niveau</b> + </v-list-tile-content> + <v-list-tile-content class="align-end">{{ scolarity.scolarity_level }}</v-list-tile-content> + </v-list-tile> + <v-list-tile> + <v-list-tile-content> + <b>Années</b> + </v-list-tile-content> + <v-list-tile-content class="align-end">{{ scolarity.scolarity_years }}</v-list-tile-content> + </v-list-tile> + <v-divider></v-divider> + </v-list> + </v-card> + </v-sheet> +</template> + +<script> +export default { + name: 'scolarities-data-sheet' +} +</script> + +<style> +</style> diff --git a/canapGEST/Site/src/components/application/sheets/trainingsDataSheet.vue b/canapGEST/Site/src/components/application/sheets/trainingsDataSheet.vue new file mode 100644 index 0000000000000000000000000000000000000000..2ace1aa5735f8c8207a41f6e5bae853a40275caa --- /dev/null +++ b/canapGEST/Site/src/components/application/sheets/trainingsDataSheet.vue @@ -0,0 +1,39 @@ +<template> + <v-sheet class="d-flex" id="trainings-data-sheet"> + <v-card> + <v-card-title> + <h4>Stages</h4> + </v-card-title> + <v-divider></v-divider> + <v-list + dense + v-for="(training, i) in $store.state.moduleApplications.currentApplication.application_data.trainings" + :key="training.training_id" + > + <v-subheader>Stage {{i + 1}}</v-subheader> + <v-list-tile> + <v-list-tile-content> + <b>Métier</b> + </v-list-tile-content> + <v-list-tile-content class="align-end">{{ training.training_job }}</v-list-tile-content> + </v-list-tile> + <v-list-tile> + <v-list-tile-content> + <b>Entreprise</b> + </v-list-tile-content> + <v-list-tile-content class="align-end">{{ training.training_company }}</v-list-tile-content> + </v-list-tile> + <v-divider></v-divider> + </v-list> + </v-card> + </v-sheet> +</template> + +<script> +export default { + name: 'trainings-data-sheet' +} +</script> + +<style> +</style> diff --git a/canapGEST/Site/src/store/modules/applications/actions.js b/canapGEST/Site/src/store/modules/applications/actions.js index 0de92c7db3bbb7786e36489002fcbaea40c1059f..0dd8f901934ad9f080b2c68acbbd2547b9997d6f 100644 --- a/canapGEST/Site/src/store/modules/applications/actions.js +++ b/canapGEST/Site/src/store/modules/applications/actions.js @@ -73,4 +73,14 @@ export function deleteApplication(context, data) { .then(response => { context.commit('moduleSnackbar/toggle', { open: true, message: response.data.message, type: 'success' }, { root: true }) }) +} + +export function getFile(context, data) { + axios({ + method: 'get', + url: '/file/' + data.id, + }) + .then(response => { + console.log(response) + }) } \ No newline at end of file diff --git a/canapGEST/Site/src/store/modules/applications/getters.js b/canapGEST/Site/src/store/modules/applications/getters.js index cd4477ff9575150714caa07465902cd3ff82cafd..242dd6fd2ea2cd85c5d514f95158ea1e96fe156d 100644 --- a/canapGEST/Site/src/store/modules/applications/getters.js +++ b/canapGEST/Site/src/store/modules/applications/getters.js @@ -8,4 +8,8 @@ export function getFilteredApplications (state) { } else { return state.applications.filter(x => x.job_short_value === state.filters.selectedJob && x.fk_status == state.filters.selectedStatus) } +} + +export function getFormatedData (state) { + } \ No newline at end of file diff --git a/canapGEST/Site/src/views/ApplicationView.vue b/canapGEST/Site/src/views/ApplicationView.vue index 7038b847600745ba80e0eb213822fc66a9c1f563..72ff8792327e47136fcf8dd0464cec2d6f87510f 100644 --- a/canapGEST/Site/src/views/ApplicationView.vue +++ b/canapGEST/Site/src/views/ApplicationView.vue @@ -1,559 +1,157 @@ <template> <div id="application-view"> <v-container fluid grid-list-sm v-if="loaded"> + <v-flex d-flex> + <ApplicationTitle></ApplicationTitle> + </v-flex> <v-layout row wrap> - <v-flex d-flex xs12> - <v-toolbar> - <v-toolbar-title> - Candidature (#{{$route.params.id}}) - <small>- le {{$store.state.moduleApplications.currentApplication.application_data.personal_data.applicant_application_date}}</small> - </v-toolbar-title> - <v-spacer></v-spacer> - <v-rating - color="warning" - background-color="warning" - :value="ratingValue" - v-if="!$store.getters['moduleUser/userIsResponsible']" - ></v-rating> - <v-divider class="mx-3" inset vertical></v-divider> - <v-toolbar-items> - <v-tooltip bottom> - <template v-slot:activator="{ on }"> - <v-btn fab small v-on="on" @click="print"> - <v-icon>print</v-icon> - </v-btn> - </template> - <span>Imprimer</span> - </v-tooltip> - <v-tooltip bottom> - <template v-slot:activator="{ on }"> - <v-btn fab small v-on="on" @click="contact"> - <v-icon>email</v-icon> - </v-btn> - </template> - <span>Contacter</span> - </v-tooltip> - <v-tooltip bottom> - <template v-slot:activator="{ on }"> - <v-btn fab small v-on="on" @click="exportData"> - <v-icon>get_app</v-icon> - </v-btn> - </template> - <span>Exporter (JSON)</span> - </v-tooltip> - </v-toolbar-items> - </v-toolbar> - </v-flex> - <v-flex d-flex xs12 sm9> - <v-container grid-list-xl> - <v-alert - outline - :value="true" - type="info" - v-if="$store.state.moduleApplications.currentApplication.application_data.personal_data.applicant_application_updated_date" - >Cette candidature à été modifiée par son propriétaire le {{$store.state.moduleApplications.currentApplication.application_data.personal_data.applicant_application_updated_date}}</v-alert> - <v-layout flex-child wrap> - <v-flex xs12 md5 d-flex> - <v-sheet class="d-flex"> - <v-card> - <v-card-title> - <h4>Données personnelles</h4> - </v-card-title> - <v-divider></v-divider> - <v-list dense> - <v-list-tile> - <v-list-tile-content> - <b>Nom, prénom</b> - </v-list-tile-content> - <v-list-tile-content class="align-end"> - {{ $store.state.moduleApplications.currentApplication.application_data.personal_data.applicant_name }} - {{ $store.state.moduleApplications.currentApplication.application_data.personal_data.applicant_fsname }} - </v-list-tile-content> - </v-list-tile> - <v-list-tile> - <v-list-tile-content> - <b>Formation, lieu</b> - </v-list-tile-content> - <v-list-tile-content class="align-end"> - {{ $store.state.moduleApplications.currentApplication.application_data.personal_data.job_full_value }}, - {{ $store.state.moduleApplications.currentApplication.application_data.personal_data.location_site }} - </v-list-tile-content> - </v-list-tile> - <v-list-tile> - <v-list-tile-content> - <b>Maturité</b> - </v-list-tile-content> - <v-list-tile-content class="align-end"> - <span - v-if="$store.state.moduleApplications.currentApplication.application_data.personal_data.applicant_maturity" - >✔</span> - <span v-else>✘</span> - </v-list-tile-content> - </v-list-tile> - <v-list-tile> - <v-list-tile-content> - <b>Adresse</b> - </v-list-tile-content> - <v-list-tile-content class="align-end"> - {{ $store.state.moduleApplications.currentApplication.application_data.personal_data.applicant_address_street }}, - {{ $store.state.moduleApplications.currentApplication.application_data.personal_data.applicant_address_npa }} - </v-list-tile-content> - </v-list-tile> - <v-list-tile> - <v-list-tile-content> - <b>Email</b> - </v-list-tile-content> - <v-list-tile-content - class="align-end" - >{{ $store.state.moduleApplications.currentApplication.application_data.personal_data.applicant_mail }}</v-list-tile-content> - </v-list-tile> - <v-list-tile> - <v-list-tile-content> - <b>Téléphones (privé, domicile)</b> - </v-list-tile-content> - <v-list-tile-content class="align-end"> - {{ $store.state.moduleApplications.currentApplication.application_data.personal_data.applicant_personal_phone }}, - {{ $store.state.moduleApplications.currentApplication.application_data.personal_data.applicant_home_phone }} - </v-list-tile-content> - </v-list-tile> - <v-list-tile> - <v-list-tile-content> - <b>Date naissance, majeur</b> - </v-list-tile-content> - <v-list-tile-content - class="align-end" - >{{ $store.state.moduleApplications.currentApplication.application_data.personal_data.applicant_birthdate }}</v-list-tile-content> - </v-list-tile> - <v-list-tile> - <v-list-tile-content> - <b>Majeur</b> - </v-list-tile-content> - <v-list-tile-content class="align-end"> - <span - v-if="$store.state.moduleApplications.currentApplication.application_data.personal_data.applicant_has_majority" - >✔</span> - <span v-else>✘</span> - </v-list-tile-content> - </v-list-tile> - <v-list-tile> - <v-list-tile-content> - <b>Numéro AVS</b> - </v-list-tile-content> - <v-list-tile-content - class="align-end" - >{{ $store.state.moduleApplications.currentApplication.application_data.personal_data.applicant_avs }}</v-list-tile-content> - </v-list-tile> - <v-list-tile> - <v-list-tile-content> - <b>Nationalité</b> - </v-list-tile-content> - <v-list-tile-content - class="align-end" - >{{ $store.state.moduleApplications.currentApplication.application_data.personal_data.applicant_nationality }}</v-list-tile-content> - </v-list-tile> - <v-list-tile> - <v-list-tile-content> - <b>Origine</b> - </v-list-tile-content> - <v-list-tile-content - class="align-end" - >{{ $store.state.moduleApplications.currentApplication.application_data.personal_data.applicant_origin }}</v-list-tile-content> - </v-list-tile> - <v-list-tile> - <v-list-tile-content> - <b>Langues</b> - </v-list-tile-content> - <v-list-tile-content class="align-end"> - <div> - <img - src="@/assets/french_logo.png" - alt="logo_french" - width="20" - v-if="$store.state.moduleApplications.currentApplication.application_data.personal_data.applicant_speaks_french" - > - <img - src="@/assets/german_logo.png" - alt="logo_german" - width="20" - v-if="$store.state.moduleApplications.currentApplication.application_data.personal_data.applicant_speaks_german" - > - <img - src="@/assets/english_logo.png" - alt="logo_english" - width="20" - v-if="$store.state.moduleApplications.currentApplication.application_data.personal_data.applicant_speaks_english" - > - <img - src="@/assets/others_logo.png" - alt="logo_others" - width="20" - v-if="$store.state.moduleApplications.currentApplication.application_data.personal_data.applicant_speaks_other" - > - </div> - </v-list-tile-content> - </v-list-tile> - <v-list-tile> - <v-list-tile-content> - <b>Fin de scolarité</b> - </v-list-tile-content> - <v-list-tile-content - class="align-end" - >{{ $store.state.moduleApplications.currentApplication.application_data.personal_data.applicant_scolarity_end }}</v-list-tile-content> - </v-list-tile> - <v-list-tile> - <v-list-tile-content> - <b>Déjà candidat ? (Année)</b> - </v-list-tile-content> - <v-list-tile-content class="align-end"> - <span - v-if="$store.state.moduleApplications.currentApplication.application_data.personal_data.applicant_already_applicant" - >✔ ({{$store.state.moduleApplications.currentApplication.application_data.personal_data.applicant_already_applicant_year }})</span> - <span v-else>✘</span> - </v-list-tile-content> - </v-list-tile> - </v-list> - </v-card> - </v-sheet> - </v-flex> - <v-flex xs12 md4 d-flex> - <v-sheet class="d-flex" color="grey lighten-3" height="500"> - <v-card> - <v-card-title> - <h4>Responsables</h4> - </v-card-title> - <v-divider></v-divider> - <v-list dense> - <v-subheader>Principal</v-subheader> - <v-list-tile> - <v-list-tile-content>Genre</v-list-tile-content> - <v-list-tile-content - class="align-end" - >{{ $store.state.moduleApplications.currentApplication.application_data.responsibles.main.responsible_gender }}</v-list-tile-content> - </v-list-tile> - <v-list-tile> - <v-list-tile-content>Nom, prénom</v-list-tile-content> - <v-list-tile-content class="align-end"> - {{ $store.state.moduleApplications.currentApplication.application_data.responsibles.main.responsible_name }}, - {{ $store.state.moduleApplications.currentApplication.application_data.responsibles.main.responsible_fsname }} - </v-list-tile-content> - </v-list-tile> - <v-list-tile> - <v-list-tile-content>Adresse</v-list-tile-content> - <v-list-tile-content class="align-end"> - {{ $store.state.moduleApplications.currentApplication.application_data.responsibles.main.responsible_street }}, - {{ $store.state.moduleApplications.currentApplication.application_data.responsibles.main.responsible_npa }} - </v-list-tile-content> - </v-list-tile> - <v-list-tile> - <v-list-tile-content>Téléphone</v-list-tile-content> - <v-list-tile-content - class="align-end" - >{{ $store.state.moduleApplications.currentApplication.application_data.responsibles.main.responsible_phone }}</v-list-tile-content> - </v-list-tile> - <v-divider></v-divider> - <v-subheader>Secondaire</v-subheader> - <v-list-tile> - <v-list-tile-content>Genre</v-list-tile-content> - <v-list-tile-content - class="align-end" - >{{ $store.state.moduleApplications.currentApplication.application_data.responsibles.secondary.responsible_gender }}</v-list-tile-content> - </v-list-tile> - <v-list-tile> - <v-list-tile-content>Nom, prénom</v-list-tile-content> - <v-list-tile-content class="align-end"> - {{ $store.state.moduleApplications.currentApplication.application_data.responsibles.secondary.responsible_name }}, - {{ $store.state.moduleApplications.currentApplication.application_data.responsibles.secondary.responsible_fsname }} - </v-list-tile-content> - </v-list-tile> - <v-list-tile> - <v-list-tile-content>Adresse</v-list-tile-content> - <v-list-tile-content class="align-end"> - {{ $store.state.moduleApplications.currentApplication.application_data.responsibles.secondary.responsible_street }}, - {{ $store.state.moduleApplications.currentApplication.application_data.responsibles.secondary.responsible_npa }} - </v-list-tile-content> - </v-list-tile> - <v-list-tile> - <v-list-tile-content>Téléphone</v-list-tile-content> - <v-list-tile-content - class="align-end" - >{{ $store.state.moduleApplications.currentApplication.application_data.responsibles.secondary.responsible_phone }}</v-list-tile-content> - </v-list-tile> - </v-list> - </v-card> - </v-sheet> - </v-flex> - <v-flex xs12 md4 d-flex> - <v-sheet class="d-flex" color="grey lighten-3" height="424"> - <v-card> - <v-card-title> - <h4>Scolarité</h4> - </v-card-title> - <v-divider></v-divider> - <v-list dense v-for="scolarity in $store.state.moduleApplications.currentApplication.application_data.scolarities" :key="scolarity.scolarity_id"> - <v-list-tile> - <v-list-tile-content>Calories:</v-list-tile-content> - <v-list-tile-content class="align-end">{{ }}</v-list-tile-content> - </v-list-tile> - <v-list-tile> - <v-list-tile-content>Fat:</v-list-tile-content> - <v-list-tile-content class="align-end">{{ }}</v-list-tile-content> - </v-list-tile> - <v-list-tile> - <v-list-tile-content>Carbs:</v-list-tile-content> - <v-list-tile-content class="align-end">{{ }}</v-list-tile-content> - </v-list-tile> - <v-list-tile> - <v-list-tile-content>Protein:</v-list-tile-content> - <v-list-tile-content class="align-end">{{ }}</v-list-tile-content> - </v-list-tile> - <v-list-tile> - <v-list-tile-content>Sodium:</v-list-tile-content> - <v-list-tile-content class="align-end">{{ }}</v-list-tile-content> - </v-list-tile> - <v-list-tile> - <v-list-tile-content>Calcium:</v-list-tile-content> - <v-list-tile-content class="align-end">{{ }}</v-list-tile-content> - </v-list-tile> - <v-list-tile> - <v-list-tile-content>Iron:</v-list-tile-content> - <v-list-tile-content class="align-end">{{ }}</v-list-tile-content> - </v-list-tile> - </v-list> - <v-divider></v-divider> - </v-card> - </v-sheet> - </v-flex> - <v-flex xs12 md4 d-flex> - <v-sheet class="d-flex" color="grey lighten-3" height="200"> - <v-card> - <v-card-title> - <h4>Stages</h4> - </v-card-title> - <v-divider></v-divider> - <v-list dense> - <v-list-tile> - <v-list-tile-content>Calories:</v-list-tile-content> - <v-list-tile-content class="align-end">{{ }}</v-list-tile-content> - </v-list-tile> - <v-list-tile> - <v-list-tile-content>Fat:</v-list-tile-content> - <v-list-tile-content class="align-end">{{ }}</v-list-tile-content> - </v-list-tile> - <v-list-tile> - <v-list-tile-content>Carbs:</v-list-tile-content> - <v-list-tile-content class="align-end">{{ }}</v-list-tile-content> - </v-list-tile> - <v-list-tile> - <v-list-tile-content>Protein:</v-list-tile-content> - <v-list-tile-content class="align-end">{{ }}</v-list-tile-content> - </v-list-tile> - <v-list-tile> - <v-list-tile-content>Sodium:</v-list-tile-content> - <v-list-tile-content class="align-end">{{ }}</v-list-tile-content> - </v-list-tile> - <v-list-tile> - <v-list-tile-content>Calcium:</v-list-tile-content> - <v-list-tile-content class="align-end">{{ }}</v-list-tile-content> - </v-list-tile> - <v-list-tile> - <v-list-tile-content>Iron:</v-list-tile-content> - <v-list-tile-content class="align-end">{{ }}</v-list-tile-content> - </v-list-tile> - </v-list> - </v-card> - </v-sheet> - </v-flex> - <v-flex xs12 md4 d-flex> - <v-sheet class="d-flex" color="grey lighten-3" height="424"> - <v-card> - <v-card-title> - <h4>Activités professionnelles</h4> - </v-card-title> - <v-divider></v-divider> - <v-list dense> - <v-list-tile> - <v-list-tile-content>Calories:</v-list-tile-content> - <v-list-tile-content class="align-end">{{ }}</v-list-tile-content> - </v-list-tile> - <v-list-tile> - <v-list-tile-content>Fat:</v-list-tile-content> - <v-list-tile-content class="align-end">{{ }}</v-list-tile-content> - </v-list-tile> - <v-list-tile> - <v-list-tile-content>Carbs:</v-list-tile-content> - <v-list-tile-content class="align-end">{{ }}</v-list-tile-content> - </v-list-tile> - <v-list-tile> - <v-list-tile-content>Protein:</v-list-tile-content> - <v-list-tile-content class="align-end">{{ }}</v-list-tile-content> - </v-list-tile> - <v-list-tile> - <v-list-tile-content>Sodium:</v-list-tile-content> - <v-list-tile-content class="align-end">{{ }}</v-list-tile-content> - </v-list-tile> - <v-list-tile> - <v-list-tile-content>Calcium:</v-list-tile-content> - <v-list-tile-content class="align-end">{{ }}</v-list-tile-content> - </v-list-tile> - <v-list-tile> - <v-list-tile-content>Iron:</v-list-tile-content> - <v-list-tile-content class="align-end">{{ }}</v-list-tile-content> - </v-list-tile> - </v-list> - </v-card> - </v-sheet> - </v-flex> - <v-flex xs12 md4 d-flex> - <v-sheet class="d-flex" color="grey lighten-3" height="424"> - <v-card> - <v-card-title> - <h4>Annexes</h4> - </v-card-title> - <v-divider></v-divider> - <v-list dense> - <v-list-tile> - <v-list-tile-content>Calories:</v-list-tile-content> - <v-list-tile-content class="align-end">{{ }}</v-list-tile-content> - </v-list-tile> - <v-list-tile> - <v-list-tile-content>Fat:</v-list-tile-content> - <v-list-tile-content class="align-end">{{ }}</v-list-tile-content> - </v-list-tile> - <v-list-tile> - <v-list-tile-content>Carbs:</v-list-tile-content> - <v-list-tile-content class="align-end">{{ }}</v-list-tile-content> - </v-list-tile> - <v-list-tile> - <v-list-tile-content>Protein:</v-list-tile-content> - <v-list-tile-content class="align-end">{{ }}</v-list-tile-content> - </v-list-tile> - <v-list-tile> - <v-list-tile-content>Sodium:</v-list-tile-content> - <v-list-tile-content class="align-end">{{ }}</v-list-tile-content> - </v-list-tile> - <v-list-tile> - <v-list-tile-content>Calcium:</v-list-tile-content> - <v-list-tile-content class="align-end">{{ }}</v-list-tile-content> - </v-list-tile> - <v-list-tile> - <v-list-tile-content>Iron:</v-list-tile-content> - <v-list-tile-content class="align-end">{{ }}</v-list-tile-content> - </v-list-tile> - </v-list> - </v-card> - </v-sheet> - </v-flex> - </v-layout> - </v-container> - </v-flex> - <pre> - {{$store.state.moduleApplications.currentApplication.application_data}} - </pre> - - <v-flex d-flex xs12 sm3>{{$store.state.moduleApplications.currentApplication.comments}}</v-flex> - </v-layout> - </v-container> - <!-- <v-card class="mx-auto" max-width="400"> - <v-card dark flat> - <v-btn absolute bottom color="pink" right fab> - <v-icon>mdi-plus</v-icon> - </v-btn> - <v-card-title class="pa-2 purple lighten-3"> - <v-btn icon> - <v-icon>mdi-menu</v-icon> - </v-btn> - <h3 class="title font-weight-light text-xs-center grow">Timeline</h3> - <v-avatar> - <v-img - src="https://avataaars.io/?avatarStyle=Circle&topType=LongHairStraight&accessoriesType=Blank&hairColor=BrownDark&facialHairType=Blank&clotheType=BlazerShirt&eyeType=Default&eyebrowType=Default&mouthType=Default&skinColor=Light" - ></v-img> - </v-avatar> - </v-card-title> - <v-img - src="https://cdn.vuetifyjs.com/images/cards/forest.jpg" - gradient="to top, rgba(0,0,0,.44), rgba(0,0,0,.44)" - > - <v-container fill-height> - <v-layout align-center> - <strong class="display-4 font-weight-regular mr-4">8</strong> - <v-layout column justify-end> - <div class="headline font-weight-light">Monday</div> - <div class="text-uppercase font-weight-light">February 2015</div> - </v-layout> - </v-layout> - </v-container> - </v-img> - </v-card> - <v-card-text class="py-0"> - <v-timeline align-top dense> - <v-timeline-item color="pink" small> - <v-layout pt-3> - <v-flex xs3> - <strong>5pm</strong> + <v-flex d-flex xs12 sm8> + <v-layout row wrap> + <v-flex d-flex> + <v-layout row wrap> + <v-flex d-flex xs6> + <v-layout row wrap> + <v-flex d-flex> + <PersonalDataSheet/> + </v-flex> + </v-layout> </v-flex> - <v-flex> - <strong>New Icon</strong> - <div class="caption">Mobile App</div> + <v-flex d-flex xs12 sm5> + <FilesDataSheet/> </v-flex> - </v-layout> - </v-timeline-item> - - <v-timeline-item color="teal lighten-3" small> - <v-layout wrap pt-3> - <v-flex xs3> - <strong>3-4pm</strong> + <v-flex d-flex xs12 sm5> + <ScolaritiesDataSheet/> </v-flex> - <v-flex> - <strong>Design Stand Up</strong> - <div class="caption mb-2">Hangouts</div> - <v-avatar> - <v-img - src="https://avataaars.io/?avatarStyle=Circle&topType=LongHairFrida&accessoriesType=Kurt&hairColor=Red&facialHairType=BeardLight&facialHairColor=BrownDark&clotheType=GraphicShirt&clotheColor=Gray01&graphicType=Skull&eyeType=Wink&eyebrowType=RaisedExcitedNatural&mouthType=Disbelief&skinColor=Brown" - ></v-img> - </v-avatar> - <v-avatar> - <v-img - src="https://avataaars.io/?avatarStyle=Circle&topType=ShortHairFrizzle&accessoriesType=Prescription02&hairColor=Black&facialHairType=MoustacheMagnum&facialHairColor=BrownDark&clotheType=BlazerSweater&clotheColor=Black&eyeType=Default&eyebrowType=FlatNatural&mouthType=Default&skinColor=Tanned" - ></v-img> - </v-avatar> + <v-flex d-flex xs12 sm5> + <TrainingsDataSheet/> + </v-flex> + <v-flex d-flex xs12 sm5> + <ActivitiesDataSheet/> + </v-flex> + </v-layout> + </v-flex> + </v-layout> + </v-flex> + <v-flex d-flex xs12 sm4> + <v-sheet class="d-flex"> + <v-card> + <v-card-title> + <h4>Commentaires</h4> + <ApplicationComments/> + {{$store.state.moduleApplications.currentApplication.comments}} + </v-card-title> + <v-card dark flat> + <v-btn absolute bottom color="pink" right fab> + <v-icon>mdi-plus</v-icon> + </v-btn> + <v-card-title class="pa-2 purple lighten-3"> + <v-btn icon> + <v-icon>mdi-menu</v-icon> + </v-btn> + <h3 class="title font-weight-light text-xs-center grow">Timeline</h3> <v-avatar> <v-img - src="https://avataaars.io/?avatarStyle=Circle&topType=LongHairMiaWallace&accessoriesType=Sunglasses&hairColor=BlondeGolden&facialHairType=Blank&clotheType=BlazerSweater&eyeType=Surprised&eyebrowType=RaisedExcited&mouthType=Smile&skinColor=Pale" + src="https://avataaars.io/?avatarStyle=Circle&topType=LongHairStraight&accessoriesType=Blank&hairColor=BrownDark&facialHairType=Blank&clotheType=BlazerShirt&eyeType=Default&eyebrowType=Default&mouthType=Default&skinColor=Light" ></v-img> </v-avatar> - </v-flex> - </v-layout> - </v-timeline-item> + </v-card-title> + <v-img + src="https://cdn.vuetifyjs.com/images/cards/forest.jpg" + gradient="to top, rgba(0,0,0,.44), rgba(0,0,0,.44)" + > + <v-container fill-height> + <v-layout align-center> + <strong class="display-4 font-weight-regular mr-4">8</strong> + <v-layout column justify-end> + <div class="headline font-weight-light">Monday</div> + <div class="text-uppercase font-weight-light">February 2015</div> + </v-layout> + </v-layout> + </v-container> + </v-img> + </v-card> + <v-card-text class="py-0"> + <v-timeline align-top dense> + <v-timeline-item color="pink" small> + <v-layout pt-3> + <v-flex xs3> + <strong>5pm</strong> + </v-flex> + <v-flex> + <strong>New Icon</strong> + <div class="caption">Mobile App</div> + </v-flex> + </v-layout> + </v-timeline-item> - <v-timeline-item color="pink" small> - <v-layout pt-3> - <v-flex xs3> - <strong>12pm</strong> - </v-flex> - <v-flex> - <strong>Lunch break</strong> - </v-flex> - </v-layout> - </v-timeline-item> + <v-timeline-item color="teal lighten-3" small> + <v-layout wrap pt-3> + <v-flex xs3> + <strong>3-4pm</strong> + </v-flex> + <v-flex> + <strong>Design Stand Up</strong> + <div class="caption mb-2">Hangouts</div> + <v-avatar> + <v-img + src="https://avataaars.io/?avatarStyle=Circle&topType=LongHairFrida&accessoriesType=Kurt&hairColor=Red&facialHairType=BeardLight&facialHairColor=BrownDark&clotheType=GraphicShirt&clotheColor=Gray01&graphicType=Skull&eyeType=Wink&eyebrowType=RaisedExcitedNatural&mouthType=Disbelief&skinColor=Brown" + ></v-img> + </v-avatar> + <v-avatar> + <v-img + src="https://avataaars.io/?avatarStyle=Circle&topType=ShortHairFrizzle&accessoriesType=Prescription02&hairColor=Black&facialHairType=MoustacheMagnum&facialHairColor=BrownDark&clotheType=BlazerSweater&clotheColor=Black&eyeType=Default&eyebrowType=FlatNatural&mouthType=Default&skinColor=Tanned" + ></v-img> + </v-avatar> + <v-avatar> + <v-img + src="https://avataaars.io/?avatarStyle=Circle&topType=LongHairMiaWallace&accessoriesType=Sunglasses&hairColor=BlondeGolden&facialHairType=Blank&clotheType=BlazerSweater&eyeType=Surprised&eyebrowType=RaisedExcited&mouthType=Smile&skinColor=Pale" + ></v-img> + </v-avatar> + </v-flex> + </v-layout> + </v-timeline-item> - <v-timeline-item color="teal lighten-3" small> - <v-layout pt-3> - <v-flex xs3> - <strong>9-11am</strong> - </v-flex> - <v-flex> - <strong>Finish Home Screen</strong> - <div class="caption">Web App</div> - </v-flex> - </v-layout> - </v-timeline-item> - </v-timeline> - </v-card-text> - </v-card>--> + <v-timeline-item color="pink" small> + <v-layout pt-3> + <v-flex xs3> + <strong>12pm</strong> + </v-flex> + <v-flex> + <strong>Lunch break</strong> + </v-flex> + </v-layout> + </v-timeline-item> + + <v-timeline-item color="teal lighten-3" small> + <v-layout pt-3> + <v-flex xs3> + <strong>9-11am</strong> + </v-flex> + <v-flex> + <strong>Finish Home Screen</strong> + <div class="caption">Web App</div> + </v-flex> + </v-layout> + </v-timeline-item> + </v-timeline> + </v-card-text> + </v-card> + </v-sheet> + </v-flex> + </v-layout> + </v-container> </div> </template> <script> +import ApplicationTitle from '@/components/application/applicationTitle.vue' +import ApplicationComments from '@/components/application/applicationComments.vue' +import PersonalDataSheet from '@/components/application/sheets/personalDataSheet.vue' +import FilesDataSheet from '@/components/application/sheets/filesDataSheet.vue' +import ScolaritiesDataSheet from '@/components/application/sheets/scolaritiesDataSheet.vue' +import TrainingsDataSheet from '@/components/application/sheets/trainingsDataSheet.vue' +import ActivitiesDataSheet from '@/components/application/sheets/activitiesDataSheet.vue' + export default { name: 'application-view', data() { @@ -566,20 +164,19 @@ export default { this.$store.dispatch('moduleApplications/getCurrentApplicationComments', { id: this.$route.params.id }) this.$store.dispatch('moduleApplications/getCurrentApplicationMarker', { id: this.$route.params.id }) }, - computed: { - ratingValue() { - return this.$store.state.moduleApplications.currentApplication.marker ? this.$store.state.moduleApplications.currentApplication.marker.marker_value : null - } - }, methods: { - print() { window.print() }, - contact() { window.location.href = 'mailto:' + this.$store.state.moduleApplications.currentApplication.application_data.personal_data.applicant_mail }, - exportData() { }, formatDate() { - }, - rate() { } + }, + components: { + ApplicationTitle, + ApplicationComments, + PersonalDataSheet, + FilesDataSheet, + ScolaritiesDataSheet, + TrainingsDataSheet, + ActivitiesDataSheet } } </script>