27/11/2023 20h

recette2
cherif 2023-11-27 20:08:43 +01:00
parent 75b4677d4b
commit c1b9e22595
3 changed files with 615 additions and 16 deletions

View File

@ -6061,7 +6061,7 @@ Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenair
const value = event.target.value;
if (String(value) === "supprimer" || String(value) === "depublier" || String(value) === "desactiver") {
if (String(value) === "supprimer" || String(value) === "dupliquer" || String(value) === "desactiver") {
setactionmass_ftion_val(value);
}
else {
@ -6079,11 +6079,15 @@ Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenair
if (String(actionmass_ftion_val) === String("supprimer")) {
console.log(" ### liste session : ", liste_session)
//console.log(" ### liste session : ", liste_session)
Delete_LIST_Session_Formation(liste_session);
}
else if (String(actionmass_ftion_val) === String("dupliquer")) {
Dupliquer_LIST_Session_Formation(liste_session);
}
else if (String(actionmass_ftion_val) === String("publier")) {
}
@ -6119,7 +6123,7 @@ Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenair
var form = new FormData();
//form.append("token","K3cw63eKokKSbV4spjQ48SUNnfy80yrXfA");
console.log(" #### local_liste_session = ", local_liste_session)
//console.log(" #### local_liste_session = ", local_liste_session)
const stored_cookie = getCookie('tokenmysypart');
form.append("token", stored_cookie);
@ -6128,11 +6132,13 @@ Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenair
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Delete_List_SessionFormation/";
setLoading(true);
axios.post(myurl, form).then(res => {
//console.log(" In Delete_LIST_Session_Formation res.data.status = " + res.data.status);
//console.log(" In Delete_LIST_Session_Formation res.data.message r_class = " + res.data.message);
setLoading(false);
if (String(res.data.status) === String("true")) {
setDelete_LIST_Session_Formation_api("true");
setDelete_LIST_Session_Formation_result(res.data.message);
@ -6153,13 +6159,64 @@ Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenair
}
}).catch((error) => {
setLoading(false);
console.warn('Delete_LIST_Session_Formation : Not good man :( mysearchtext = ' + error);
setDelete_LIST_Session_Formation_api("false");
alert(" Impossible de supprimer la liste des sessions de formation");
})
}
const [Dupliquer_LIST_Session_Formation_api, setDupliquer_LIST_Session_Formation_api] = useState();
const [Dupliquer_LIST_Session_Formation_message, setDupliquer_LIST_Session_Formation_message] = useState();
const [Dupliquer_LIST_Session_Formation_result, setDupliquer_LIST_Session_Formation_result] = useState();
function Dupliquer_LIST_Session_Formation(local_liste_session) {
setSendInscriptionCancell_api();
var form = new FormData();
//form.append("token","K3cw63eKokKSbV4spjQ48SUNnfy80yrXfA");
//console.log(" #### local_liste_session = ", local_liste_session)
const stored_cookie = getCookie('tokenmysypart');
form.append("token", stored_cookie);
form.append("tab_session_id", local_liste_session);
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Duplicate_List_Session_Formation/";
setLoading(true);
axios.post(myurl, form).then(res => {
//console.log(" In Dupliquer_LIST_Session_Formation res.data.status = " + res.data.status);
//console.log(" In Dupliquer_LIST_Session_Formation res.data.message r_class = " + res.data.message);
setLoading(false);
if (String(res.data.status) === String("true")) {
setDupliquer_LIST_Session_Formation_api("true");
setDupliquer_LIST_Session_Formation_result(res.data.message);
setSelectionModel([]);
setaddOneParticipant();
setdisplay_detail_insc();
setselected_code_session();
setsubmenu();
Getall_TrainingSession();
alert(res.data.message);
}
else {
setDupliquer_LIST_Session_Formation_api("false");
setDupliquer_LIST_Session_Formation_message(res.data.message);
alert(res.data.message);
}
}).catch((error) => {
setLoading(false);
console.warn('Dupliquer_LIST_Session_Formation : Not good man :( mysearchtext = ' + error);
setDupliquer_LIST_Session_Formation_api("false");
alert(" Impossible de dupliquer la liste des sessions de formation");
})
}
// -- end action en mass
// Gestion champs specifiques
@ -7402,12 +7459,9 @@ Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenair
}
const [Dialog_tuteur_1_message, setDialog_tuteur_1_message] = React.useState(false);
const [Dialog_tuteur_1_open, setDialog_tuteur_1_open] = React.useState(false);
function Dialog_1_handle_change_tuteur(message) {
setDialog_tuteur_1_message(message);
setDialog_tuteur_1_open(true);
@ -8295,7 +8349,7 @@ Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenair
<div className="div_row">
{selectionModel && selectionModel.length > 1 && <div className="block_en_mass">
{selectionModel && selectionModel.length >= 1 && <div className="block_en_mass">
<nav >Traitement en masse </nav>
&nbsp;
<TextField
@ -8313,7 +8367,7 @@ Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenair
>
<MenuItem value="n/a" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }}>Action &nbsp;&nbsp;</MenuItem>
<MenuItem value="supprimer" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }}>Supprimer &nbsp;</MenuItem>
<MenuItem value="dupliquer" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }}>Dupliquer &nbsp;</MenuItem>
</TextField>
@ -11724,6 +11778,7 @@ Update du 22/10/2023 - Gestion des champs spécifiques ajoutés par le partenair
</div>
<div>
<div className="div_row" style={{ "border": "None" }}>
<hr className="hr_break" />

View File

@ -46,7 +46,8 @@ import { Fab } from "@material-ui/core";
import { IoMdAddCircle, IoIosRemoveCircleOutline } from "react-icons/io";
import { AiTwotoneEdit, AiTwotoneSave } from "react-icons/ai";
import Module_Absence from "./Module_Absence";
import { RiMoreFill } from "react-icons/ri";
import Switch from '@mui/material/Switch';
const DisplayPartnerStagiaires = (props) => {
const history = useHistory();
@ -1596,7 +1597,7 @@ const DisplayPartnerStagiaires = (props) => {
function submenu_absence() {
setsubmenu("absence");
setdisplay_detail_stagiaire();
setdisplay_detail_absence("1");
desableSessionFields();
}
@ -2001,6 +2002,17 @@ const DisplayPartnerStagiaires = (props) => {
const [p_detail_client_rattachement_nom, setp_detail_client_rattachement_nom] = useState();
const [p_detail_client_rattachement_id, setp_detail_client_rattachement_id] = useState();
const [p_detail_tuteur1_nom, setp_detail_tuteur1_nom] = useState("");
const [p_detail_tuteur1_prenom, setp_detail_tuteur1_prenom] = useState("");
const [p_detail_tuteur1_email, setp_detail_tuteur1_email] = useState("");
const [p_detail_tuteur1_telephone, setp_detail_tuteur1_telephone] = useState("");
const [p_detail_tuteur1_adresse, setp_detail_tuteur1_adresse] = useState("");
const [p_detail_tuteur1_cp, setp_detail_tuteur1_cp] = useState("");
const [p_detail_tuteur1_ville, setp_detail_tuteur1_ville] = useState("");
const [p_detail_tuteur1_pays, setp_detail_tuteur1_pays] = useState("");
const [p_detail_tuteur1_include_com, setp_detail_tuteur1_include_com] = useState("");
//---
const [p_one_formation, setp_one_formation] = useState();
@ -2209,6 +2221,44 @@ const DisplayPartnerStagiaires = (props) => {
setattendee_lms_pwd("xxxxxx");
}
// Recuperation des tuteurs
if (mylocalattendee.tuteur1_nom) {
setp_detail_tuteur1_nom(mylocalattendee.tuteur1_nom);
}
if (mylocalattendee.tuteur1_prenom) {
setp_detail_tuteur1_prenom(mylocalattendee.tuteur1_prenom);
}
if (mylocalattendee.tuteur1_email) {
setp_detail_tuteur1_email(mylocalattendee.tuteur1_email);
}
if (mylocalattendee.tuteur1_telephone) {
setp_detail_tuteur1_telephone(mylocalattendee.tuteur1_telephone);
}
if (mylocalattendee.tuteur1_adresse) {
setp_detail_tuteur1_adresse(mylocalattendee.tuteur1_adresse);
}
if (mylocalattendee.tuteur1_cp) {
setp_detail_tuteur1_cp(mylocalattendee.tuteur1_cp);
}
if (mylocalattendee.tuteur1_ville) {
setp_detail_tuteur1_ville(mylocalattendee.tuteur1_ville);
}
if (mylocalattendee.tuteur1_pays) {
setp_detail_tuteur1_pays(mylocalattendee.tuteur1_pays);
}
if (mylocalattendee.tuteur1_include_com) {
setp_detail_tuteur1_include_com(mylocalattendee.tuteur1_include_com);
}
/*
* Update 22/10/2023 :
Gestion des champs spécifiques. ils commencent tous par 'my_'
@ -3831,6 +3881,132 @@ const DisplayPartnerStagiaires = (props) => {
// -- end champs specifiques
function submenu_add_one_tuteur() {
setDialog_tuteur_1_open(true);
}
const [Dialog_tuteur_1_message, setDialog_tuteur_1_message] = React.useState(false);
const [Dialog_tuteur_1_open, setDialog_tuteur_1_open] = React.useState(false);
function Dialog_1_handle_change_tuteur(message) {
setDialog_tuteur_1_message(message);
setDialog_tuteur_1_open(true);
}
const Dialog_tuteur_1_handleClose = () => {
//alert(" Utiliser le bouton 'fermer' ");
//setOpen(false);
};
const Dialog_tuteur_1_handleClose_buton = () => {
setDialog_tuteur_1_open(false);
};
const [Add_Update_Stagiaire_Tuteur_api, setAdd_Update_Stagiaire_Tuteur_api] = useState();
const [Add_Update_Stagiaire_Tuteur_message, setAdd_Update_Stagiaire_Tuteur_message] = useState();
const [Add_Update_Stagiaire_Tuteur_result, setAdd_Update_Stagiaire_Tuteur_result] = useState();
function Add_Update_Stagiaire_Tuteur() {
var form = new FormData();
//form.append("token","K3cw63eKokKSbV4spjQ48SUNnfy80yrXfA");
if (p_detail_session_class.length <= 0) {
alert(" Vous devez choisir une session");
return;
}
const stored_cookie = getCookie('tokenmysypart');
form.append("token", stored_cookie);
form.append("_id", selected_id);
if (p_detail_tuteur1_nom)
form.append("tuteur1_nom", p_detail_tuteur1_nom);
else
form.append("tuteur1_nom", "");
if (p_detail_tuteur1_prenom)
form.append("tuteur1_prenom", p_detail_tuteur1_prenom);
else
form.append("tuteur1_prenom", "");
if (p_detail_tuteur1_email)
form.append("tuteur1_email", p_detail_tuteur1_email);
else
form.append("tuteur1_email", "");
if (p_detail_tuteur1_telephone)
form.append("tuteur1_telephone", p_detail_tuteur1_telephone);
else
form.append("tuteur1_telephone", "");
if (p_detail_tuteur1_adresse)
form.append("tuteur1_adresse", p_detail_tuteur1_adresse);
else
form.append("tuteur1_adresse", "");
if (p_detail_tuteur1_cp)
form.append("tuteur1_cp", p_detail_tuteur1_cp);
else
form.append("tuteur1_cp", "");
if (p_detail_tuteur1_ville)
form.append("tuteur1_ville", p_detail_tuteur1_ville);
else
form.append("tuteur1_ville", "");
if (p_detail_tuteur1_pays)
form.append("tuteur1_pays", p_detail_tuteur1_pays);
else
form.append("tuteur1_pays", "");
if (p_detail_tuteur1_include_com)
form.append("tuteur1_include_com", p_detail_tuteur1_include_com);
else
form.append("tuteur1_include_com", "");
var myurl = process.env.REACT_APP_API_URL + "myclass/api/UpdateStagiairetoClass_Tuteurs/";
setLoading(true);
axios.post(myurl, form).then(res => {
//console.log(" In UpdateStagiaireData res.data.status = " + res.data.status);
//console.log(" In UpdateStagiaireData res.data.message r_class = " + res.data.message);
setLoading(false);
if (String(res.data.status) === String("true")) {
setAdd_Update_Stagiaire_Tuteur_api("true");
setAdd_Update_Stagiaire_Tuteur_result(res.data.message);
Dialog_tuteur_1_handleClose_buton();
alert(res.data.message);
}
else {
setAdd_Update_Stagiaire_Tuteur_api("false");
setAdd_Update_Stagiaire_Tuteur_message(res.data.message);
alert(res.data.message);
}
}).catch((error) => {
setLoading(false);
console.warn('UpdateStagiaireData : Not good man :( mysearchtext = ' + error);
setAdd_Update_Stagiaire_Tuteur_api("false");
alert(" Impossible de mettre à jour le tuteur");
})
}
return (
<div className="displaypartnerstagiaire">
{isLoading && <div className="loader-container">
@ -3856,7 +4032,164 @@ const DisplayPartnerStagiaires = (props) => {
</DialogActions>
</Dialog>
<Dialog
open={Dialog_tuteur_1_open}
onClose={Dialog_tuteur_1_handleClose}
className="displaypartnersession"
>
<DialogTitle>Tuteur</DialogTitle>
<DialogContent className="DialogContent_width">
<DialogContentText>
{Dialog_tuteur_1_message}
</DialogContentText>
<div className="session_caract_Dialog" > Nom
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
name="event_dialog_title"
id="event_dialog_title"
fullWidth
value={p_detail_tuteur1_nom}
onChange={(e) => {
setp_detail_tuteur1_nom(e.target.value);
}
}
/>
</div>
<div className="session_caract_Dialog" > Prenom
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
name="event_dialog_title"
id="event_dialog_title"
fullWidth
value={p_detail_tuteur1_prenom}
onChange={(e) => {
setp_detail_tuteur1_prenom(e.target.value);
}}
/>
</div>
<div className="session_caract_Dialog" > Email
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
name="event_dialog_title"
id="event_dialog_title"
fullWidth
value={p_detail_tuteur1_email}
onChange={(e) => {
setp_detail_tuteur1_email(e.target.value);
}}
/>
</div>
<div className="session_caract_Dialog" > Téléphone
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
name="event_dialog_title"
id="event_dialog_title"
fullWidth
value={p_detail_tuteur1_telephone}
onChange={(e) => {
setp_detail_tuteur1_telephone(e.target.value);
}}
/>
</div>
<div className="session_caract_Dialog" > Adresse
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
name="event_dialog_title"
id="event_dialog_title"
fullWidth
value={p_detail_tuteur1_adresse}
onChange={(e) => {
setp_detail_tuteur1_adresse(e.target.value);
}}
/>
</div>
<div className="session_caract_Dialog" > Code postal
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
name="event_dialog_title"
id="event_dialog_title"
fullWidth
value={p_detail_tuteur1_cp}
onChange={(e) => {
setp_detail_tuteur1_cp(e.target.value);
}}
/>
</div>
<div className="session_caract_Dialog" > Ville
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
name="event_dialog_title"
id="event_dialog_title"
fullWidth
value={p_detail_tuteur1_ville}
onChange={(e) => {
setp_detail_tuteur1_ville(e.target.value);
}}
/>
</div>
<div className="session_caract_Dialog" > Pays
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
name="event_dialog_title"
id="event_dialog_title"
fullWidth
value={p_detail_tuteur1_pays}
onChange={(e) => {
setp_detail_tuteur1_pays(e.target.value);
}}
/>
</div>
<div className="session_caract_Dialog" > Inclure Communication
<Switch defaultChecked />
</div>
</DialogContent>
<DialogActions>
<div className="div_row">
<div className="div_row_gauche">
<Button onClick={Add_Update_Stagiaire_Tuteur} className="bton_enreg_dialog">Mettre à jour</Button>
</div>
<div className="div_row_droite" style={{ "textAlign": 'center' }}>
<Button onClick={Dialog_tuteur_1_handleClose_buton} className="bton_annule_dialog" >Fermer</Button>
</div>
</div>
</DialogActions>
</Dialog>
<h3> Vos stagiaires </h3>
@ -5422,6 +5755,209 @@ const DisplayPartnerStagiaires = (props) => {
</div>}
</div>
<div>
<div className="div_row" style={{ "border": "None" }}>
<hr className="hr_break" />
</div>
<div className="div_row" style={{ "border": "None", "fontSize": "22px", "fontWeight": "600", "padding": "5px" }}>
Tuteurs
<div style={{ "width": '100%', "float": 'left' }}>
<div style={{ "width": '50%', "float": 'left', "borderRight": "thick double #32a1ce" }}>
<div className="tuteur_field" style={{ "textAlign": "center", "width": "100%" }}> Tuteur 1 </div>
<div className="tuteur_field"> Nom <br />
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required
name="detail_tuteur1_nom"
id="detail_tuteur1_nom"
InputLabelProps={{
shrink: true,
}}
disabled={false}
className="disabled_style"
value={p_detail_tuteur1_nom}
onChange={(e) => {
setp_detail_tuteur1_nom(e.target.value);
setparticipant_data_changed("1");
}}
/>
</div>
<div className="tuteur_field" > Prenom <br />
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required
name="detail_tuteur1_prenom"
id="detail_tuteur1_prenom"
InputLabelProps={{
shrink: true,
}}
disabled={false}
className="disabled_style"
value={p_detail_tuteur1_prenom}
onChange={(e) => {
setp_detail_tuteur1_prenom(e.target.value);
setparticipant_data_changed("1");
}}
/>
</div>
<div className="tuteur_field"> Email <br />
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required
name="detail_tuteur1_email"
id="detail_tuteur1_email"
InputLabelProps={{
shrink: true,
}}
disabled={false}
className="disabled_style"
value={p_detail_tuteur1_email}
onChange={(e) => {
setp_detail_tuteur1_email(e.target.value);
setparticipant_data_changed("1");
}}
/>
</div>
<div className="tuteur_field"> Téléphone <br />
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required
name="detail_tuteur1_phone"
id="detail_tuteur1_phone"
InputLabelProps={{
shrink: true,
}}
disabled={false}
className="disabled_style"
value={p_detail_tuteur1_telephone}
onChange={(e) => {
setp_detail_tuteur1_telephone(e.target.value);
setparticipant_data_changed("1");
}}
/>
</div>
<div className="tuteur_field" style={{ "cursor": "pointer" }} onClick={(e) => {
setDialog_tuteur_1_open(true);
}}> Voir plus <RiMoreFill />
</div>
</div>
<div style={{ "width": '50%', "float": 'left', }}>
<div className="tuteur_field" style={{ "textAlign": "center", "width": "100%" }}> Tuteur 2 </div>
<div className="tuteur_field"> Nom <br />
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required
name="detail_tuteur1_nom"
id="detail_tuteur1_nom"
InputLabelProps={{
shrink: true,
}}
disabled={false}
className="disabled_style"
value={p_detail_tuteur1_nom}
onChange={(e) => {
setp_detail_tuteur1_nom(e.target.value);
setparticipant_data_changed("1");
}}
/>
</div>
<div className="tuteur_field"> Prenom <br />
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required
name="detail_tuteur1_prenom"
id="detail_tuteur1_prenom"
InputLabelProps={{
shrink: true,
}}
disabled={false}
className="disabled_style"
value={p_detail_tuteur1_prenom}
onChange={(e) => {
setp_detail_tuteur1_prenom(e.target.value);
setparticipant_data_changed("1");
}}
/>
</div>
<div className="tuteur_field"> Email <br />
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required
name="detail_tuteur1_email"
id="detail_tuteur1_email"
InputLabelProps={{
shrink: true,
}}
disabled={false}
className="disabled_style"
value={p_detail_tuteur1_email}
onChange={(e) => {
setp_detail_tuteur1_email(e.target.value);
setparticipant_data_changed("1");
}}
/>
</div>
<div className="tuteur_field"> Téléphone <br />
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required
name="detail_tuteur1_phone"
id="detail_tuteur1_phone"
InputLabelProps={{
shrink: true,
}}
disabled={false}
className="disabled_style"
value={p_detail_tuteur1_telephone}
onChange={(e) => {
setp_detail_tuteur1_telephone(e.target.value);
setparticipant_data_changed("1");
}}
/>
</div>
</div>
</div>
</div>
</div>
<div>
<div className="div_row" style={{ "border": "None" }}>
<hr className="hr_break" />
@ -6174,10 +6710,10 @@ const DisplayPartnerStagiaires = (props) => {
{String(submenu) === "absence" && String(display_detail_absence) === "1" && <div className="div_row" style={{ "border": "None", "background": '#F8F9F9', "padding": '5px' }}>
<Module_Absence attendee_email={selectedattendeeemail}
read_access={props.read_access}
write_access={props.write_access}/>
<Module_Absence attendee_email={selectedattendeeemail}
read_access={props.read_access}
write_access={props.write_access} />
</div>}

View File

@ -2301,6 +2301,14 @@
margin-bottom: 1rem;
padding-top: 0.5rem !important;
}
.tuteur_field{
width: 50%;
padding: 5px;
float: left;
text-align: left;
font-size: small;
}
}