02/08/2024 - 17h

recette2
cherif 2024-08-02 17:23:54 +02:00
parent 1aa9027239
commit 3a9b3ec036
1 changed files with 304 additions and 18 deletions

View File

@ -418,6 +418,7 @@ const Groupe_Apprenant = (props) => {
setgrp_apprenant_data_changed("");
setgrp_apprenant_data_edit_mode("");
setgridline_id("");
setSelectionModel([]);
alert(res.data.message);
}
@ -1366,6 +1367,13 @@ const Groupe_Apprenant = (props) => {
const [p_detail_session_id, setp_detail_session_id] = React.useState("");
const [p_detail_type_groupe_code, setp_detail_type_groupe_code] = React.useState("");
const [p_detail_nb_grp_auto, setp_detail_nb_grp_auto] = React.useState("");
const [p_detail_split_type_auto, setp_detail_split_type_auto] = React.useState("");
const [p_detail_class_id_auto, setp_detail_class_id_auto] = React.useState("");
const [p_detail_session_id_auto, setp_detail_session_id_auto] = React.useState("");
const [p_detail_class_internal_url_auto, setp_detail_class_internal_url_auto] = React.useState("");
const [p_detail_type_groupe_code_auto, setp_detail_type_groupe_code_auto] = React.useState("");
function clear_DetailFieds() {
setp_detail_code("");
setp_detail_nom("");
@ -1787,14 +1795,198 @@ const Groupe_Apprenant = (props) => {
const Dialog_GRP_AUTOMATIC_handleClose_buton = () => {
setDialog_GRP_AUTOMATIC_open(false);
setp_detail_nb_grp_auto("");
setp_detail_split_type_auto("");
setp_detail_class_id_auto("");
setp_detail_session_id_auto("");
setp_detail_class_internal_url_auto("");
setp_detail_type_groupe_code_auto("");
};
const New_Option_Groupe_By = [
{ "id": "0", "label": "Ordre Alphabétique (nom)", "value": "0" },
{ "id": "1", "label": "Aléatoire", "value": "2" },
{ "id": "1", "label": "Aléatoire", "value": "1" },
{ "id": "", "label": "", "value": "" },
]
const [Create_Automatic_Grp_api, setCreate_Automatic_Grp_api] = useState();
const [Create_Automatic_Grp_message, setCreate_Automatic_Grp_message] = useState();
const [Create_Automatic_Grp_result, setCreate_Automatic_Grp_result] = useState();
function Create_Automatic_Grp() {
var form = new FormData();
//form.append("token","K3cw63eKokKSbV4spjQ48SUNnfy80yrXfA");
const stored_cookie = getCookie('tokenmysypart');
form.append("token", stored_cookie);
form.append("nb_groupe", p_detail_nb_grp_auto);
form.append("split_type", p_detail_split_type_auto);
form.append("type_groupe_code", p_detail_type_groupe_code_auto);
form.append("class_id", p_detail_class_id_auto);
form.append("session_id", p_detail_session_id_auto);
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Automatic_Creation_Groupe_Member_Inscrit/";
setLoading(true);
axios.post(myurl, form).then(res => {
//console.log(" In Create_Automatic_Grp res.data.status = " + res.data.status);
//console.log(" In Create_Automatic_Grp res.data.message r_class = " + res.data.message);
setLoading(false);
if (String(res.data.status) === String("true")) {
setCreate_Automatic_Grp_api("true");
setCreate_Automatic_Grp_result(res.data.message);
Disable_Grp_Apprenant_DetailFields();
setgrp_apprenant_data_changed("");
setgrp_apprenant_data_edit_mode("");
setSelectionModel([]);
clear_DetailFieds();
Dialog_GRP_AUTOMATIC_handleClose_buton();
Getall_Partner_Groupe_Inscrit();
alert(res.data.message);
if (document.getElementById('myRef')) {
// myRef.current.scrollIntoView({ behavior: "smooth" });
var divh = document.getElementById('myRef').offsetTop;
window.scrollTo({
top: divh,
behavior: "smooth",
});
}
}
else {
setCreate_Automatic_Grp_api("false");
setCreate_Automatic_Grp_message(res.data.message);
alert(res.data.message);
}
}).catch((error) => {
setLoading(false);
console.log('UpdateStagiaireData : Not good man :( Create_Automatic_Grp = ' + error);
setCreate_Automatic_Grp_api("false");
alert(" Impossible de créer les groupes ");
})
}
const [actionmass_ftion_val, setactionmass_ftion_val] = useState();
const actionmass_ftion = (event) => {
const value = event.target.value;
if (String(value) === "supprimer") {
setactionmass_ftion_val(value);
}
else {
setactionmass_ftion_val();
}
}
const New_Option = [
{ "id": "2", "label": "Supprimer", "value": "supprimer" },
]
async function actionmass_ftion_Traitemet() {
var liste_grp_apprenant = GetSelectedRowsApprenantGrp();
if (String(actionmass_ftion_val) === String("supprimer")) {
Delete_LIST_Grp(liste_grp_apprenant);
}
}
const [Delete_LIST_Grp_api, setDelete_LIST_Grp_api] = useState();
const [Delete_LIST_Grp_message, setDelete_LIST_Grp_message] = useState();
const [Delete_LIST_Grp_result, setDelete_LIST_Grp_result] = useState();
function Delete_LIST_Grp(local_list_grp) {
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("_id", local_list_grp);
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Delete_Groupe_Inscrit/";
setLoading(true);
axios.post(myurl, form).then(res => {
//console.log(" In Delete_LIST_Grp res.data.status = " + res.data.status);
//console.log(" In Delete_LIST_Grp res.data.message r_class = " + res.data.message);
setLoading(false);
if (String(res.data.status) === String("true")) {
setDelete_LIST_Grp_api("true");
setDelete_LIST_Grp_result(res.data.message);
setselectionModel_grp_apprenant([]);
setgridline_id('');
window.scrollTo({
top: 0,
behavior: "smooth",
});
Getall_Partner_Groupe_Inscrit();
alert(res.data.message);
}
else {
setDelete_LIST_Grp_api("false");
setDelete_LIST_Grp_message(res.data.message);
alert(res.data.message);
}
}).catch((error) => {
setLoading(false);
console.warn('Delete_LIST_Grp : Not good man :( mysearchtext = ' + error);
setDelete_LIST_Grp_api("false");
alert(" Impossible de supprimer la liste des apprenants");
})
}
function GetSelectedRowsApprenantGrp() {
///alert(" les lignes slected sont : " + selectionModel + " nb item = " + selectionModel.length); zzzzz
//const selectedRowsData = selectionModel.map((id) => rowss.find((row) => row.id === id));
//console.log(rowss[0]);
var tab_tmp = []
for (var i = 0; i < selectionModel_grp_apprenant.length; i++) {
var myid = parseInt(String(selectionModel_grp_apprenant[i]));
var line = JSON.parse(Getall_Partner_Groupe_Inscrit_result[myid]);
tab_tmp.push(line._id);
//console.log(rowss[myid]['external_code']);
}
return tab_tmp;
}
return (
<div className="groupe_apprenant">
{isLoading && <div className="loader-container">
@ -1805,7 +1997,7 @@ const Groupe_Apprenant = (props) => {
<Dialog
open={Dialog_GRP_AUTOMATIC_open}
// onClose={Dialog_GRP_AUTOMATIC_handleClose}
// onClose={Dialog_GRP_AUTOMATIC_handleClose}
className="displaypartnersession"
static
@ -1816,7 +2008,7 @@ const Groupe_Apprenant = (props) => {
<DialogTitle> Création automatique des groupes </DialogTitle>
<DialogContent className="DialogContent_width">
<DialogContentText>
</DialogContentText>
<div className="session_caract_Dialog" > <b> Nombre de Groupe </b>
@ -1829,7 +2021,7 @@ const Groupe_Apprenant = (props) => {
fullWidth
inputProps={{ min: "1", max: "99", step: "1" }}
onChange={(e) => {
setp_detail_nb_grp_auto(e.target.value);
}
}
@ -1847,7 +2039,10 @@ const Groupe_Apprenant = (props) => {
options={New_Option_Groupe_By}
onChange={(event, value) => {
if (value.value)
setp_detail_split_type_auto(value.value);
else
setp_detail_split_type_auto("");
}}
renderInput={(params) => <TextField {...params} placeholder="Choisir une option " />
@ -1868,17 +2063,17 @@ const Groupe_Apprenant = (props) => {
fullWidth
//className="disabled_style enable_style"
options={New_Getall_Partner_Class_Reduice_Fields_result}
value={New_Getall_Partner_Class_Reduice_Fields_result.filter((data) => (data)._id === String(p_detail_class_id))[0].label}
value={New_Getall_Partner_Class_Reduice_Fields_result.filter((data) => (data)._id === String(p_detail_class_id_auto))[0].label}
onChange={(event, value) => {
if (value && value._id) {
setp_detail_class_id(value._id);
setp_detail_class_internal_url(value.internal_url);
setp_detail_class_id_auto(value._id);
setp_detail_class_internal_url_auto(value.internal_url);
setgrp_apprenant_data_changed("1");
} else {
setp_detail_class_id("");
setp_detail_class_internal_url("");
setp_detail_class_id_auto("");
setp_detail_class_internal_url_auto("");
setgrp_apprenant_data_changed("1");
}
@ -1905,14 +2100,14 @@ const Groupe_Apprenant = (props) => {
name="detail_classe"
id="detail_classe"
fullWidth
options={New_Getall_Partner_Session_Reduice_Fields_result.filter((data) => (data).class_internal_url === String(p_detail_class_internal_url))}
value={New_Getall_Partner_Session_Reduice_Fields_result.filter((data) => (data)._id === String(p_detail_session_id))[0].label}
options={New_Getall_Partner_Session_Reduice_Fields_result.filter((data) => (data).class_internal_url === String(p_detail_class_internal_url_auto))}
value={New_Getall_Partner_Session_Reduice_Fields_result.filter((data) => (data)._id === String(p_detail_session_id_auto))[0].label}
onChange={(event, value) => {
if (value && value._id) {
setp_detail_session_id(value._id);
setp_detail_session_id_auto(value._id);
setgrp_apprenant_data_changed("1");
} else {
setp_detail_session_id("");
setp_detail_session_id_auto("");
setgrp_apprenant_data_changed("1");
}
}}
@ -1937,16 +2132,16 @@ const Groupe_Apprenant = (props) => {
id="detail_type_grp"
fullWidth
options={New_Getall_Groupe_Apprenant_Type_result}
value={New_Getall_Groupe_Apprenant_Type_result.filter((data) => (data).code === String(p_detail_type_groupe_code))[0].label}
value={New_Getall_Groupe_Apprenant_Type_result.filter((data) => (data).code === String(p_detail_type_groupe_code_auto))[0].label}
onChange={(event, value) => {
if (value && value.code) {
setp_detail_type_groupe_code(value.code);
setp_detail_type_groupe_code_auto(value.code);
setgrp_apprenant_data_changed("1");
} else {
setp_detail_type_groupe_code("");
setp_detail_type_groupe_code_auto("");
setgrp_apprenant_data_changed("1");
}
@ -1973,7 +2168,7 @@ const Groupe_Apprenant = (props) => {
<div className="div_row">
<div className="div_row_gauche">
<Button onClick={"Add_One_Sequence_Session_Ressource_Mass"} className="bton_enreg_dialog">Créer en masse</Button>
<Button onClick={Create_Automatic_Grp} className="bton_enreg_dialog">Créer en masse</Button>
</div>
<div className="div_row_droite" style={{ "textAlign": 'center' }}>
@ -2413,7 +2608,98 @@ const Groupe_Apprenant = (props) => {
</div>
<div className="div_row">
{selectionModel_grp_apprenant && selectionModel_grp_apprenant.length >= 1 && <div className="block_en_mass">
<nav >Traitement en masse </nav>
&nbsp;
<Autocomplete
disablePortal
id="combo-box-demo"
className="block_en_mass_select"
fullWidth
options={New_Option}
onChange={(event, value) => {
if (value && value.value) {
if (String(value.value) === "supprimer"
|| String(value.value) === "dupliquer" || String(value.value) === "exporter"
|| String(value.value) === "inscrire") {
setactionmass_ftion_val(value.value);
}
else {
setactionmass_ftion_val();
}
}
}}
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
/>
}
/>
{actionmass_ftion_val && <nav className='block_en_mass_bton_action'>
<Popup
trigger={<Button className="bton_enreg" style={{ "width": "90%" }}>
<FcAcceptDatabase /> Traiter
</Button>}
modal
nested
position="center center"
>
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information - {actionmass_ftion_val} </div>
<div className="gest_content">
{' '}
{String(actionmass_ftion_val) === "supprimer" &&
<font color="red"> Confirmer la suppression de {selectionModel_grp_apprenant.length} groupe(s) .
</font>}
</div>
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
actionmass_ftion_Traitemet();
close();
}}> Valider </button>
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup"
onClick={() => {
//console.log('modal closed ');
close();
}}
>
Annuler
</button>
</div>
</div>
</div>
)}
</Popup>
</nav>
}
</div>}
</div>
</div>
</div>