Skip to content
Snippets Groups Projects
Commit 09a6485e authored by nicrausaz's avatar nicrausaz
Browse files

Vue candidature: layout et données

parent 005ea1ba
No related branches found
No related tags found
No related merge requests found
Showing
with 587 additions and 550 deletions
......@@ -177,7 +177,7 @@ class ApplicantsController extends Controller
],
"scolarities" => $scolarities,
"pro_activities" => $pro_activities,
"training" => $trainings,
"trainings" => $trainings,
"files" => $files
];
}
......
No preview for this file type
canapGEST/Site/src/assets/logo_jpg.png

21.2 KiB

canapGEST/Site/src/assets/logo_pdf.png

23.4 KiB

canapGEST/Site/src/assets/logo_png.png

21.9 KiB

<template>
<div id="application-comments"></div>
</template>
<script>
export default {
name: 'application-comments'
}
</script>
<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>
<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>
<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>
<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"
>&#10004;</span>
<span v-else>&#10008;</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"
>&#10004;</span>
<span v-else>&#10008;</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"
>&#10004; ({{$store.state.moduleApplications.currentApplication.application_data.personal_data.applicant_already_applicant_year }})</span>
<span v-else>&#10008;</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>
<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>
<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>
......@@ -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
......@@ -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
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment