diff --git a/public/sample/template_import_session_formation.csv b/public/sample/template_import_session_formation.csv new file mode 100644 index 0000000..4862095 --- /dev/null +++ b/public/sample/template_import_session_formation.csv @@ -0,0 +1,2 @@ +date_debut;date_fin;nb_participant;adresse;code_postal;ville;session_status;date_debut_inscription;date_fin_inscription +01/01/2023;05/01/2023;12;2 place de la republique;77680;roissy en brie;1;10/12/2022;30/12/2022 diff --git a/public/sample/template_import_stagiaires.csv b/public/sample/template_import_stagiaires.csv new file mode 100644 index 0000000..849463e --- /dev/null +++ b/public/sample/template_import_stagiaires.csv @@ -0,0 +1,2 @@ +prenom;nom;employeur;telephone;email;modefinancement;opco;status;prix +sekou;balde;employeur;telephone;billardman1@yahoo.fr;modefinancement;opco;1;12 diff --git a/src/components/GestionAdministrative.js b/src/components/GestionAdministrative.js index 527a7e9..f4dfbfe 100644 --- a/src/components/GestionAdministrative.js +++ b/src/components/GestionAdministrative.js @@ -653,6 +653,39 @@ function GestionAdministrative(props) { } + + const [GetCurrentClass_trainingsession_api, setGetCurrentClass_trainingsession_api] = useState(); + const [GetCurrentClass_trainingsession_message, setGetCurrentClass_trainingsession_message] = useState(); + const [GetCurrentClass_trainingsession_result, setGetCurrentClass_trainingsession_result] = useState(); + function GetCurrentClass_trainingsession(event) { + + var form = new FormData(); + + form.append("class_internal_url", internal_url); + + var myurl = process.env.REACT_APP_API_URL + "myclass/api/GetAllValideSessionFormation_List/"; + + axios.post(myurl, form).then(res => { + + if (res.data.status != "false") { + console.log(" In GetCurrentClass_trainingsession res.data.status = " + res.data.status); + console.log(" In GetCurrentClass_trainingsession res.data.message r_class = " + res.data.message); + setGetCurrentClass_trainingsession_api("true"); + setGetCurrentClass_trainingsession_result(res.data.message); + } + else { + setGetCurrentClass_trainingsession_api("false"); + setGetCurrentClass_trainingsession_message(res.data.message); + } + + }).catch((error) => { + console.warn('Not good man :( GetCurrentClass_trainingsession = ', error); + setGetCurrentClass_trainingsession_api("false"); + //setmyApimyApiMessage("") + }) + } + + /* Envoi de l'envoi de l'email de confirmation de la validation de l'inscription */ function handleClick_resend_conf_mail(event, cellValues) { var email = cellValues.row.email; @@ -798,6 +831,7 @@ function GestionAdministrative(props) { useEffect(() => { GetCurrentClass(); + GetCurrentClass_trainingsession(); window.scrollTo(0, 0); @@ -1384,6 +1418,8 @@ function GestionAdministrative(props) { const [participant_file_name, setparticipant_file_name] = useState(); function submenu_import_participant() { + setparticipant_file_name(); + setliste_participants_file_change_api(); hiddenFileInput.current.click(); } @@ -1423,7 +1459,7 @@ function GestionAdministrative(props) { ) .then((response) => response.json()) .then((result) => { - if (String(result['message']) === String("true")) { + if (String(result['status']) === String("true")) { //console.log('Success:', result['message']); setliste_participants_file_change_result(result['message']); setliste_participants_file_change_api("true"); @@ -1441,6 +1477,72 @@ function GestionAdministrative(props) { }; + + const [session_file_name, setsession_file_name] = useState(); + function submenu_import_session() { + setsession_file_name(); + setliste_sessions_file_change_api(); + hiddenFileInput_session.current.click(); + } + + const hiddenFileInput_session = React.useRef(null); + + const [liste_sessions_file_change_api, setliste_sessions_file_change_api] = useState(); + const [liste_sessions_file_change_result, setliste_sessions_file_change_result] = useState(); + const [liste_sessions_file_change_message, setliste_sessions_file_change_message] = useState(); + const liste_sessions_file_change = event => { + const fileUploaded = event.target.files[0]; + let file_size = event.target.files[0].size; + let file_type = event.target.files[0].type; + + //console.log("file_size = ",file_size," file_type = ",file_type); + if (file_size > 1000000) { + alert("Le fichier ne doit pas depasser un 1 Méga octets"); + return; + } + + setsession_file_name(event.target.files[0].name); + + const formData = new FormData(); + formData.append('File', fileUploaded); + //formData.append('token', 'K3cw63eKokKSbV4spjQ48SUNnfy80yrXfA'); + const stored_cookie = getCookie('tokenmysypart'); + + formData.append("token", stored_cookie); + formData.append("class_internal_url", internal_url); + //console.log("token = " + stored_cookie); + + fetch( + process.env.REACT_APP_API_URL + "myclass/api/Add_Update_SessionFormation_mass/", + { + method: 'POST', + body: formData, + } + ) + .then((response) => response.json()) + .then((result) => { + + console.log(" ## result['status'] = ", result['status']) + if (String(result['status']) === String("true")) { + //console.log('Success:', result['message']); + setliste_sessions_file_change_result(result['message']); + setliste_sessions_file_change_api("true"); + GetCurrentClass_trainingsession(); + } + else { + setliste_sessions_file_change_message(result['message']); + setliste_sessions_file_change_api("false"); + } + + }) + .catch((error) => { + console.error('Error:', error); + setliste_sessions_file_change_api("false"); + }); + + }; + + return (
@@ -1453,8 +1555,8 @@ function GestionAdministrative(props) {
-

Gestion Administrative de {classtitle} -

+

Gestion Administrative de : {classtitle} +

@@ -1499,178 +1601,71 @@ function GestionAdministrative(props) { />
-
- - - -
- -
- - - -
- -
- - - -
- -
- -
- -
- -
- -
- - -
- -
- -
- -
- -
- -
- -
- -
-
+
 
+
+ Importer des sessions de formation
+ + Télécharger un fichier modèle +
+ +
+
+ + {session_file_name}
+ {String(liste_sessions_file_change_api) === String("true") && } + {String(liste_sessions_file_change_api) === String("false") && } + + + +
+
-
+ +
Choisir une session
- {GetCurrentClass_result && - GetCurrentClass_result.map((formation) => ( - -
- - + + {GetCurrentClass_trainingsession_result && + GetCurrentClass_trainingsession_result.map((session) => ( + ) - } - -
- ))} + + ))} + + + + +
@@ -1702,7 +1697,11 @@ function GestionAdministrative(props) { name="sessiondatedebut" id="sessiondatedebut" selected={SessionstartDate} - onChange={(date) => setSessionstartDate(date)} + onChange={(date) => { + setSessionstartDate(date); + setsessionChanged(true); + } + } showTimeSelect filterTime={filterPassedTime_start} dateFormat="dd/MM/yyyy HH:mm" @@ -1718,7 +1717,11 @@ function GestionAdministrative(props) { name="sessiondatefin" id="sessiondatefin" selected={SessionendDate} - onChange={(date) => setSessionendDate(date)} + onChange={(date) => { + setSessionendDate(date); + setsessionChanged(true); + } + } showTimeSelect filterTime={filterPassedTime_end} dateFormat="dd/MM/yyyy HH:mm" @@ -1793,7 +1796,12 @@ function GestionAdministrative(props) { name="sessiondatedebutinscription" id="sessiondatedebutinscription" selected={SessionstartDateInscription} - onChange={(date) => setSessionstartDateInscription(date)} + onChange={(date) => { + setSessionstartDateInscription(date); + setsessionChanged(true); + } + + } showTimeSelect //filterTime={filterPassedTime_start} dateFormat="dd/MM/yyyy HH:mm" @@ -1810,7 +1818,11 @@ function GestionAdministrative(props) { name="sessiondatefininscription" id="sessiondatefininscription" selected={SessionendDateInscription} - onChange={(date) => setSessionendDateInscription(date)} + onChange={(date) => { + setSessionendDateInscription(date); + setsessionChanged(true); + } + } showTimeSelect //filterTime={filterPassedTime_end} dateFormat="dd/MM/yyyy HH:mm" @@ -2070,15 +2082,17 @@ function GestionAdministrative(props) {
- + Télécharger un fichier modèle +
+ {participant_file_name}
- {String(liste_participants_file_change_api) === String("false") && } - {String(liste_participants_file_change_api) !== String("false") && } - + {String(liste_participants_file_change_api) === String("true") && } + {String(liste_participants_file_change_api) === String("false") && } +