29/04/26 - 21h

branche_01062025
Cherif 2026-04-29 21:01:13 +02:00
parent 41623918dc
commit 705bacd0fd
9 changed files with 682 additions and 995 deletions

View File

@ -294,6 +294,106 @@ const AddClassManual = (props) => {
]
const columns_list_module = [
{ field: 'id', headerName: 'id', hide: true },
{ field: '_id', headerName: '_id', hide: true },
{ field: 'code', headerName: 'Code', maxWidth: 250, flex: 1, renderCell: (params) => <ExpandableCell_50 {...params} />, },
{ field: 'titre', headerName: 'Titre', minWidth: 150, flex: 1, renderCell: (params) => <ExpandableCell_50 {...params} />, },
{
field: 'pres_dist_hyp', headerName: 'Animation', maxWidth: 180,
renderCell: (cellValues) => {
return (
<div style={{ paddingLeft: "5px", paddingRight: "15px", "display": "block", wordBreak: "break-all" }}>
{cellValues.row.pres_dist_hyp && String(cellValues.row.pres_dist_hyp) === "1" && "Dist."}
{cellValues.row.pres_dist_hyp && String(cellValues.row.pres_dist_hyp) === "0" && "Prés."}
{cellValues.row.pres_dist_hyp && String(cellValues.row.pres_dist_hyp) === "2" && "Hybr."}
</div>
);
}
},
{
field: 'is_noted', headerName: 'Evalué', maxWidth: 100, renderCell: (params) => <ExpandableCell_50 {...params} />,
renderCell: (cellValues) => {
return (
<div style={{ paddingLeft: "5px", paddingRight: "15px", "display": "block", wordBreak: "break-all" }}>
{cellValues.row.is_noted && String(cellValues.row.is_noted) === "1" && "Oui"}
{cellValues.row.is_noted && String(cellValues.row.is_noted) === "0" && "Non"}
</div>
);
}
},
{ field: 'duration_concat', headerName: 'Durée', maxidth: 100, renderCell: (params) => <ExpandableCell_50 {...params} />, },
{ field: 'duration', headerName: 'Durée', maxWidth: 150, hide: true, renderCell: (params) => <ExpandableCell_50 {...params} />, },
{ field: 'duration_unite', headerName: 'Unit.', maxWidth: 150, hide: true, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />, },
{
field: "delete", headerName: 'Supprimer',
renderCell: (cellValues) => {
return (
<>
{String(props.check_user_acces_right("formation", "write")) === "1" && <Popup
trigger={<Button
>
<CiTrash />
</Button>}
modal
nested
position="center center"
>
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
En confirmant cette opération, l'UE <i><font color="red"> définitivement supprimée de cette formation </font></i>. <br />
</div>
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
handleClick_delete_UE_From_Class(event, cellValues);
//console.log('modal closed ');
close();
}}> Valider </button>
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup_annuler"
onClick={() => {
//console.log('modal closed ');
close();
}}
>
Annuler
</button>
</div>
</div>
</div>
)}
</Popup>}
</>
);
}
},
]
const columns_list_finance_data = [
{ field: 'id', headerName: 'id', hide: true },
{ field: '_id', headerName: '_id', hide: true },
@ -1024,7 +1124,13 @@ const AddClassManual = (props) => {
const stored_cookie = getCookie('tokenmysypart');
form.append("token", stored_cookie);
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_List_Unite_Enseignement_no_filter/";
if (String(props.class_is_ftion_initiale) === "0") {
form.append("is_module", "1");
} else {
form.append("is_module", "-1");
}
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_List_Unite_Enseignement_with_filter/";
setLoading(true);
@ -1093,7 +1199,11 @@ const AddClassManual = (props) => {
setLoading(false);
console.warn('Not good man :( Getall_Partner_List_UE = ', error);
setGetall_Partner_List_UE_api("false");
alert(" Impossible de recuperer la liste des UE de la formation");
// alert(" Impossible de recuperer la liste des UE de la formation");
setdisplay_alert_mysy("1");
setalert_message(" Impossible de recuperer la liste des UE de la formation");
setalert_type("error");
//setmyApimyApiMessage("")
})
}
@ -4320,7 +4430,7 @@ const AddClassManual = (props) => {
function submenu_color_management(current_menu) {
const list_sous_menu = ["detail_formation", "unite_enseignement", "admission", "piece_jointe", "note_evaluation", "statistiques",
"historique", "aide_ia", "finance", "documents"]
"historique", "aide_ia", "finance", "documents", "module"]
for (let i = 0; i < list_sous_menu.length; i++) {
@ -4354,6 +4464,14 @@ const AddClassManual = (props) => {
submenu_color_management("unite_enseignement");
}
function submenu_module() {
setsubmenu("module");
submenu_color_management("module");
}
function submenu_admission() {
setsubmenu("admission");
submenu_color_management("admission");
@ -6618,7 +6736,17 @@ const AddClassManual = (props) => {
})
}
const [Dialog_Module_Ftion_open, setDialog_Module_Ftion_open] = React.useState(false);
const Dialog_Module_Ftion_handleClose_buton = () => {
setDialog_Module_Ftion_open(false);
setselected_ue_id("");
setselected_ue_credit_ects("");
setselected_ue_seuil_validation("");
setselected_ue_is_noted("1");
setselected_ue_pres_dist_hyp("0");
setadd_one_eu_to_class("");
setselected_ue_coefficient("1");
};
return (
<div className="addclassmanual">
@ -6638,6 +6766,190 @@ const AddClassManual = (props) => {
{/*** FIN Affichage des messages d'alerte*/}
{/* Dialog pour gerer les Module_Ftion */}
<Dialog
open={Dialog_Module_Ftion_open}
// onClose={Dialog_Module_Ftion_handleClose}
className="displaypartnersession"
static
onClose={() => null}
PaperProps={{
className: classes.paper, // Apply the paper style
style: {
overflowY: 'unset',
position: 'absolute',
top: '5rem',
margin: "2px",
},
}}
hideBackdrop={true}
disableScrollLock
classes={{
paper: classes.dialog
}}
PaperComponent={PaperComponent}
aria-labelledby="draggable-dialog-title"
>
<DialogTitle style={{ cursor: 'move', fontFamily: "DM Sans" }} id="draggable-dialog-title">MySy Information</DialogTitle>
<DialogContent className="DialogContent_width" style={{ "minHeight": "30rem" }}>
<DialogContentText>
{Dialog_1_message}
</DialogContentText>
{add_one_eu_to_class && String(add_one_eu_to_class) === "1" && <div className="session_caract_Dialog" > <b> Choisir un module </b>
{New_Getall_Partner_List_UE_result && New_Getall_Partner_List_UE_result.length > 0 &&
<Autocomplete
disablePortal
name="event_dialog_ue_id"
id="event_dialog_ue_id"
fullWidth
//className="disabled_style enable_style"
options={New_Getall_Partner_List_UE_result}
//value={New_Getall_Partner_List_UE_result.filter((data) => (data)._id === String(selected_ue_id))[0].label}
onChange={(event, value) => {
if (value && value._id) {
setselected_ue_id(value._id);
setselected_ue_credit_ects(value.ects);
setselected_ue_seuil_validation(value.seuil_validation);
} else {
setselected_ue_id("");
}
}}
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une UE"
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
/>
}
/>}
</div>}
{add_one_eu_to_class && String(add_one_eu_to_class) !== "1" &&
New_Getall_Partner_List_UE_result && New_Getall_Partner_List_UE_result.length > 0 &&
selected_ue_id && <div className="session_caract_Dialog" > <b> Module </b>
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
name="event_dialog_credit"
id="event_dialog_credit"
fullWidth
value={New_Getall_Partner_List_UE_result.filter((data) => (data)._id === String(selected_ue_id))[0].label}
/>
</div>
}
<div className="session_caract_Dialog"> <b> Est Evalué </b><br />
<Autocomplete
disablePortal
name="event_dialog_is_noted"
id="event_dialog_is_noted"
value={New_Option_Is_Noted.filter((data) => (data).id === String(selected_ue_is_noted))[0].label}
fullWidth
options={New_Option_Is_Noted}
onChange={(event, value) => {
if (value && value.value) {
setselected_ue_is_noted(value.value);
} else {
setselected_ue_is_noted("");
}
}}
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
/>}
/>
</div>
<div className="session_caract_Dialog"> <b> Mode d'animation </b><br />
<Autocomplete
disablePortal
name="event_dialog_mode_animation"
id="event_dialog_mode_animation"
value={New_Option_pres_dist_hyp.filter((data) => (data).id === String(selected_ue_pres_dist_hyp))[0].label}
fullWidth
options={New_Option_pres_dist_hyp}
onChange={(event, value) => {
if (value && value.value) {
setselected_ue_pres_dist_hyp(value.value);
} else {
setselected_ue_pres_dist_hyp("");
}
}}
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
/>
}
/>
</div>
</DialogContent>
<DialogActions>
<IconButton
// autoFocus
onClick={Dialog_Module_Ftion_handleClose_buton}
color="primary"
className={classes.customizedButton}
>
<CancelPresentationIcon />
</IconButton>
<div className="div_row">
<div className="div_row_gauche">
<Button onClick={(e) => {
Add_Update_UE_To_Class();
}}
className="bton_enreg_dialog"> Enregisrer </Button>
</div>
<div className="div_row_droite" style={{ "textAlign": 'center' }}>
<Button onClick={Dialog_Module_Ftion_handleClose_buton} className="bton_annule_dialog" >Fermer</Button>
</div>
</div>
</DialogActions>
</Dialog>
{/* FIN Dialog pour gerer les Module_Ftion */}
{/* Dialog pour gerer les Financial_Data */}
<Dialog
open={Dialog_Financial_Data_open}
@ -7434,11 +7746,11 @@ const AddClassManual = (props) => {
{String(props.formation_initiale) !== "1" &&
<div className="div_row" style={{ "border": "None", "marginLeft": '10px' }} ref={myRef}>
<Button variant="outlined" onClick={submenu_detail_formation} className="detail_class_submenu" id='detail_formation' name='detail_formation'>Détail Formation</Button>
<Button variant="outlined" onClick={submenu_unite_enseignement} className="detail_class_submenu" id='unite_enseignement' name='unite_enseignement'> Modules </Button>
<Button variant="outlined" onClick={submenu_module} className="detail_class_submenu" id='module' name='module'> Modules </Button>
{String(props.mytrainingclass.ref).trim() !== "" && <Button variant="outlined" onClick={submenu_piece_jointe}
className="detail_class_submenu" id='piece_jointe' name='piece_jointe'>Pièces Jointes </Button>}
{String(props.mytrainingclass.ref).trim() !== "" && <Button variant="outlined" onClick={submenu_statistiques} className="detail_class_submenu" id='statistiques' name='statistiques'>Statistiques </Button>}
{String(props.mytrainingclass.ref).trim() !== "" && <Button variant="outlined" onClick={submenu_statistiques} className="detail_class_submenu" id='statistiques' name='statistiques'>Statistiques </Button>}
{String(props.mytrainingclass.ref).trim() !== "" && <Button variant="outlined" onClick={submenu_finance} className="detail_class_submenu" id='finance' name='finance'>Finance </Button>}
{String(props.mytrainingclass.ref).trim() !== "" &&
@ -7446,6 +7758,173 @@ const AddClassManual = (props) => {
</div>}
{submenu && String(submenu) === "module" &&
<div>
<div style={{ height: 550, width: '100%', paddingRight: '10px', paddingLeft: '10px' }}>
&nbsp;
<Box
sx={{
height: 500,
width: '100%',
paddingRight: '5px',
paddingLeft: '5px',
"& .MuiDataGrid-columnHeaders": {
backgroundColor: "#dfe8f2",
color: "#0a2a4d",
fontSize: '14px',
fontFamily: 'DM Sans',
},
'& .line--statut--selected': {
backgroundColor: '#e9f7f1',
color: "#0a2a4d",
},
'& .line--statut--pair': {
backgroundColor: 'rgba(235, 235, 235, .7)',
color: "#0a2a4d",
},
'& .line--statut--impair': {
backgroundColor: '#FFFFFF',
color: "#0a2a4d",
}, [`& .${gridClasses.cell}`]: {
py: 1,
},
}}
>
<DataGrid
checkboxSelection
onSelectionModelChange={(newSelectionModel) => {
setselectionModel_list_unite_enseignement(newSelectionModel);
/*if (newSelectionModel.length === 1)
handleClick_edit_session_From_Line(newSelectionModel);*/
if (newSelectionModel.length !== 1) {
}
}}
selectionModel={selectionModel_list_unite_enseignement}
localeText={frFR.components.MuiDataGrid.defaultProps.localeText}
rows={Getall_Class_List_UE_result.map((item, index) => (
{
id: index,
_id: JSON.parse(item)._id,
code: JSON.parse(item).code,
titre: JSON.parse(item).titre,
pres_dist_hyp: JSON.parse(item).pres_dist_hyp,
is_noted: JSON.parse(item).is_noted,
duration: JSON.parse(item).duration,
duration_unite: JSON.parse(item).duration_unite,
duration_concat: JSON.parse(item).duration_concat,
}
))}
columns={columns_list_module}
pageSize={10}
className="datagridclass"
onRowDoubleClick={(newSelectionModel) => {
if (String(props.check_user_acces_right("formation", "write")) === "1") {
clean_ue_data();
setgridline_ue_id(newSelectionModel.row.id);
setselected_ue_id(newSelectionModel.row._id)
var current_class_ue_data = New_Getall_Class_List_UE_result.filter((ue_data) => ue_data._id === String((newSelectionModel.row._id)))
// console.log(" ### current_class_ue_data[0] = ", current_class_ue_data[0]);
setselected_ue_credit_ects(current_class_ue_data[0]['credit']);
setselected_ue_is_noted(current_class_ue_data[0]['is_noted']);
setselected_ue_pres_dist_hyp(current_class_ue_data[0]['pres_dist_hyp']);
setselected_ue_coefficient(current_class_ue_data[0]['coefficient']);
setselected_ue_seuil_validation(current_class_ue_data[0]['seuil_validation']);
setadd_one_eu_to_class("0");
setDialog_Unite_Enseignement_open(true);
}
}}
rowsPerPageOptions={[10]}
disableSelectionOnClick
components={{
Toolbar: GridToolbar,
}}
//sx={datagridSx}
getCellClassName={(params) => {
// Pour la gestion de la couleur de zone double cliquée
if (String(params.row.id) === String(ue_gridline_id)) {
return 'line--statut--selected';
}
else if (parseInt(String(params.row.id)) % 2 === 0) {
return 'line--statut--pair';
}
else if (parseInt(String(params.row.id)) % 2 !== 0) {
return 'line--statut--impair';
}
}}
getRowClassName={(params) => {
// Pour la gestion de la couleur de zone double cliquée
if (String(params.row.id) === String(ue_gridline_id)) {
return 'line--statut--selected';
}
else if (parseInt(String(params.row.id)) % 2 === 0) {
return 'line--statut--pair';
}
else if (parseInt(String(params.row.id)) % 2 !== 0) {
return 'line--statut--impair';
}
}}
getEstimatedRowHeight={() => 200}
getRowHeight={() => "auto"}
sx={{
"& .MuiDataGrid-cellContent": {
minHeight: 50,
},
[`& .${gridClasses.cell}`]: {
py: 1,
},
}}
/>
</Box>
<br />
<div className="div_row" style={{ "border": "None" }}>
{String(props.check_user_acces_right("formation", "write")) === "1" && <div className="div_row_gauche div_row_gauche_etendu" style={{ "textAlign": "left", "paddingLeft": "5px" }}>
<Button variant="outlined" onClick={(e) => {
Getall_Partner_List_UE();
setadd_one_eu_to_class("1")
setDialog_Module_Ftion_open(true);
}}
className="detail_class_submenu bton_add_session"
id='menu_import_participant' name='menu_import_participant'>Ajout 1 mODULE &nbsp;
<IoAddCircleOutline style={{ "fontSize": "x-large", "color": "green" }} />
</Button>
</div>}
</div>
</div>
</div>}
{submenu && String(submenu) === "unite_enseignement" &&
<div>
<div style={{ height: 550, width: '100%', paddingRight: '10px', paddingLeft: '10px' }}>
@ -8463,7 +8942,7 @@ const AddClassManual = (props) => {
</div>
</div>}
{New_Option_is_Ftion_Initiale && New_Option_is_Ftion_Initiale.length > 0 &&
<div className="training_caract"> <Autocomplete

View File

@ -22715,7 +22715,7 @@ const DisplayPartnerPromotion = (props) => {
<Button variant="outlined" ref={myRef} onClick={submenu_planification_session} className="detail_class_submenu" id='planification_session' name='planification_session'>Planif. ({String(nb_sequence)})</Button>
<Button variant="outlined" onClick={submenu_preinscrit} className="detail_class_submenu" id='preinscrit' name='preinscrit'>Preinscript. ({String(nb_stagiaire_Preinscrit)}) </Button>
<Button variant="outlined" onClick={submenu_inscrit} className="detail_class_submenu" id='inscrit' name='inscrit'>Inscription ({String(nb_stagiaire_Inscrit)}) </Button>
<Button variant="outlined" onClick={submenu_inscrit} className="detail_class_submenu" id='inscrit' name='inscrit'>Etudiants ({String(nb_stagiaire_Inscrit)}) </Button>
{/*String(props.check_user_acces_right("session", "write")) === "1" &&
<Button variant="outlined" onClick={submenu_editique} className="detail_class_submenu" id='editique' name='editique' style={{ background: '#6C3483', color: "#FFFFFF", "fontWeight": '700' }}>Gestion Qualiopi</Button>*/}

View File

@ -18544,31 +18544,10 @@ const DisplayPartnerSession = (props) => {
</div>
<div className="div_row_droite" style={{ "textAlign": 'center' }}>
<Button onClick={Dialog_SPLIT_INVOICE_handleClose_buton} className="bton_annule_dialog" >Fermer</Button>
</div>
</div>
</DialogActions>
<DialogActions>
<IconButton
// autoFocus
onClick={Dialog_SPLIT_INVOICE_handleClose_buton}
color="primary"
className={classes.customizedButton}
>
<CancelPresentationIcon />
</IconButton>
<div className="div_row">
<div style={{ "textAlign": 'center' }}>
<Popup
<Button onClick={Dialog_SPLIT_INVOICE_handleClose_buton} className="bton_annule_dialog" style={{ width: '40%', float: 'left' }}>Fermer</Button>
<Popup
trigger={
<Button onClick={Delete_Inscription_Split_Invoice} className="bton_supprime_dialog" >Supprimer le partage de facture</Button>
<Button onClick={Delete_Inscription_Split_Invoice} className="bton_supprime_dialog"style={{ width: '40%', float: 'left' }} >Supprimer</Button>
}
modal
nested
@ -18619,6 +18598,71 @@ const DisplayPartnerSession = (props) => {
</div>
</DialogActions>
<DialogActions>
<IconButton
// autoFocus
onClick={Dialog_SPLIT_INVOICE_handleClose_buton}
color="primary"
className={classes.customizedButton}
>
<CancelPresentationIcon />
</IconButton>
{/*<div className="div_row">
<div style={{ "textAlign": 'center' }}>
<Popup
trigger={
<Button onClick={Delete_Inscription_Split_Invoice} className="bton_supprime_dialog" >Supprimer le partage de facture</Button>
}
modal
nested
position="center center"
>
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
<font> Confirmer la mise à jour du partage de facture
</font>
</div>
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
Delete_Inscription_Split_Invoice();
close();
}}> Valider </button>
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup_annuler"
onClick={() => {
//console.log('modal closed ');
close();
}}
>
Annuler
</button>
</div>
</div>
</div>
)}
</Popup>
</div>
</div>*/}
</DialogActions>
</div>}
{String(p_detail_invoice_split_facture_done) === "1" &&

View File

@ -11961,7 +11961,8 @@ const DisplayPartnerStagiaires = (props) => {
var diff = Date.now() - date_eval.getTime();
var age = new Date(diff);
var reel_age = Math.abs(age.getUTCFullYear() - 1970);
setselected_row_data_json_age(reel_age)
setselected_row_data_json_age(reel_age);
setp_detail_age(reel_age);
}
@ -13158,25 +13159,25 @@ const DisplayPartnerStagiaires = (props) => {
<img class="img_class_logo" src={userimgclassprofil} /><br />
</div>
<div className="div_row_droite_image">
<div className="div_row_droite_image">
<input type="file" id="files_img_class" accept="image/*" onChange={imglogoclasschangeHandler} style={{ opacity: "0", zIndex: "-1", maxWidth: "5px", maxHeight: "0px" }} /><br />
{String(selected_id_status) !== "1" && <nav>
<nav style={{width:'100%'}}>
<label for="files_img_class" className="bton_image_class">Charger une photo</label><br />
{String(userimgclassprofilchanged) === "1" &&
<nav className="bton_image_class" onClick={record_Stagiaire_Image}>Enregistrer la photo<br /> </nav>
<nav className="bton_image_class" onClick={record_Stagiaire_Image} style={{width:'100%'}}>Enregistrer la photo<br /> </nav>
}
{String(isimgclassSelected_recid) && String(isimgclassSelected_recid).length > 3 &&
<nav className="bton_supprime_image_class" onClick={removeRecodedLogoImage}>Supprimer la photo<br /> </nav>
<nav className="bton_supprime_image_class" onClick={removeRecodedLogoImage} style={{width:'100%'}}>Supprimer la photo<br /> </nav>
}
{String(userimgclassprofilchanged) === "1" &&
<div className="koUpdateData" style={{ "color": "orange", "textAlign": "center" }}> /!\ Pensez à enregistrer la photo
</div>}
</nav>}
</nav>
{/*isimgclassSelected && <Button variant="outlined" onClick={sendClassImage} className="bton_image_class">Enregistrer image</Button>*/}
{isimgclassdeleted && String(isimgclassdeleted) === "1" && <nav className="koUpdateData"> {isimgclassdeleted_message}</nav>}
@ -13257,7 +13258,7 @@ const DisplayPartnerStagiaires = (props) => {
}}> Age</nav>
<nav style={{ width: '60%', float: 'right', textAlign: 'left', paddingTop: '10px', }}>
{p_detail_age} an(s) <br /> (e) le {String(p_detail_naissance) !== "01/01/1900" && String(p_detail_naissance)}
{p_detail_age} an(s) <br /> (e) le {String(p_detail_naissance) !== "01/01/1900" && String(p_detail_naissance)}
</nav>
</div>

View File

@ -10772,7 +10772,7 @@ const DisplayPartnerStagiaires_ARG = (props) => {
var diff = Date.now() - date_eval.getTime();
var age = new Date(diff);
var reel_age = Math.abs(age.getUTCFullYear() - 1970);
setselected_row_data_json_age(reel_age)
setselected_row_data_json_age(reel_age);
}

File diff suppressed because it is too large Load Diff

View File

@ -220,7 +220,7 @@ const Employes = (props) => {
},
{
field: 'ismanager', headerName: 'Manager', width: 150, hide: false,
field: 'ismanager', headerName: 'Manager', width: 150, hide: true,
valueFormatter: (params) => {
if (String(params.value) === "0")
return "Non";
@ -231,6 +231,7 @@ const Employes = (props) => {
return String(params.value);
},
},
{ field: 'superieur_hierarchie_nom_prenom', headerName: 'Resp. H', minWidth: 180, hide: false, },
{ field: 'telephone_mobile', headerName: 'Mobile', minWidth: 180, hide: false, },
{ field: 'adr_adresse', headerName: 'Adresse', width: 100, hide: true, editable: false, minWidth: 50, maxWidth: 70, flex: 1 },
@ -244,7 +245,7 @@ const Employes = (props) => {
{ field: 'fonction', headerName: 'Fonction', width: 150, hide: true, },
{
field: 'is_ent_compte', headerName: 'Compte ENT', width: 150, hide: false,
field: 'is_ent_compte', headerName: 'Compte ENT', width: 150, hide: true,
renderCell: (cellValues) => {
return (
<div style={{ paddingLeft: "5px", paddingRight: "15px", "display": "block", wordBreak: "break-all" }}>
@ -258,7 +259,7 @@ const Employes = (props) => {
},
{
field: 'is_ent_compte_locked', headerName: 'ENT. Vourouillé', width: 150, hide: false,
field: 'is_ent_compte_locked', headerName: 'ENT. Vourouillé', width: 150, hide: true,
renderCell: (cellValues) => {
return (
<div style={{ paddingLeft: "5px", paddingRight: "15px", "display": "block", wordBreak: "break-all" }}>
@ -9999,7 +10000,7 @@ const Employes = (props) => {
is_ent_compte: JSON.parse(item).is_ent_compte,
is_ent_compte_locked: JSON.parse(item).is_ent_compte_locked,
superieur_hierarchie_nom_prenom: JSON.parse(item).superieur_hierarchie_nom_prenom,
}
))}
@ -10798,7 +10799,7 @@ const Employes = (props) => {
InputLabelProps={{
shrink: true,
}}
disabled={Boolean(employee_data_edit_mode)}
disabled={true}
className="disabled_style"
value={p_detail_profil}
@ -10863,7 +10864,7 @@ const Employes = (props) => {
InputLabelProps={{
shrink: true,
}}
disabled={Boolean(employee_data_edit_mode)}
disabled={true}
className="disabled_style"
value={p_detail_ismanager_label}
@ -10880,7 +10881,7 @@ const Employes = (props) => {
InputLabelProps={{
shrink: true,
}}
disabled={Boolean(employee_data_edit_mode)}
disabled={false}
className="disabled_style"
value={p_detail_ismanager}
onChange={(e) => {

View File

@ -1435,7 +1435,7 @@ const Partner_Config_Ftion_Initiale = (props) => {
<div className="div_row" ref={myRef_head} id="myRef_head" >
<Button variant="outlined" onClick={submenu_type_eval} className="detail_class_submenu" id='technique' name='technique'>Type Evaluation</Button>
<Button variant="outlined" onClick={submenu_calcul_note_finale} className="detail_class_submenu" id='calcul_note_finale' name='calcul_note_finale'>Calcul Note finale</Button>
<Button variant="outlined" onClick={submenu_referentiel_padagogique} className="detail_class_submenu" id='referentiel_padagogique' name='referentiel_padagogique'>Référentiel pédag.</Button>
{/*<Button variant="outlined" onClick={submenu_referentiel_padagogique} className="detail_class_submenu" id='referentiel_padagogique' name='referentiel_padagogique'>Référentiel pédag.</Button>*/}

View File

@ -1115,7 +1115,7 @@ const Session_Admission_FI = (props) => {
setp_detail_inscrit_memo("");
setp_detail_inscrit_comment("");
setp_detail_inscrit_num_secu("");
setp_detail_inscrit_is_rgpd("");
setp_detail_inscrit_is_rgpd(false);
setp_detail_inscrit_situation_famille("");
setp_detail_inscrit_piece_identite_type("");
@ -1124,9 +1124,9 @@ const Session_Admission_FI = (props) => {
setp_detail_inscrit_type_mobilite("");
setp_detail_inscrit_telephone_bis("");
setp_detail_inscrit_nationalite("");
setp_detail_inscrit_is_handicap("");
setp_detail_inscrit_is_handicap(false);
setp_detail_inscrit_is_droit_image("");
setp_detail_inscrit_is_droit_image(false);
setp_detail_inscrit_naissance_lieu("");
setp_detail_inscrit_naissance_departement("");
setp_detail_inscrit_naissance_pays("");
@ -2884,7 +2884,7 @@ const Session_Admission_FI = (props) => {
const [p_detail_inscrit_comment, setp_detail_inscrit_comment] = useState("");
const [p_detail_inscrit_num_secu, setp_detail_inscrit_num_secu] = useState("");
const [p_detail_inscrit_is_rgpd, setp_detail_inscrit_is_rgpd] = useState("");
const [p_detail_inscrit_is_rgpd, setp_detail_inscrit_is_rgpd] = useState(false);
const [p_detail_inscrit_situation_famille, setp_detail_inscrit_situation_famille] = useState("");
const [p_detail_inscrit_piece_identite_type, setp_detail_inscrit_piece_identite_type] = useState("");
@ -2896,14 +2896,14 @@ const Session_Admission_FI = (props) => {
const [p_detail_inscrit_telephone_bis, setp_detail_inscrit_telephone_bis] = useState("");
const [p_detail_inscrit_nationalite, setp_detail_inscrit_nationalite] = useState("");
const [p_detail_inscrit_is_handicap, setp_detail_inscrit_is_handicap] = useState("");
const [p_detail_inscrit_is_droit_image, setp_detail_inscrit_is_droit_image] = useState("");
const [p_detail_inscrit_is_handicap, setp_detail_inscrit_is_handicap] = useState(false);
const [p_detail_inscrit_is_droit_image, setp_detail_inscrit_is_droit_image] = useState(false);
const [p_detail_inscrit_naissance_lieu, setp_detail_inscrit_naissance_lieu] = useState("");
const [p_detail_inscrit_naissance_departement, setp_detail_inscrit_naissance_departement] = useState("");
const [p_detail_inscrit_naissance_pays, setp_detail_inscrit_naissance_pays] = useState("");
const [p_detail_age, setp_detail_age] = useState("");
const [inscrit_display, setinscrit_display] = useState("");
@ -3061,11 +3061,10 @@ const Session_Admission_FI = (props) => {
setp_detail_inscrit_num_secu("");
}
if (tmp.is_rgpd) {
setp_detail_inscrit_is_rgpd(tmp.is_rgpd);
} else {
setp_detail_inscrit_is_rgpd("");
}
setp_detail_inscrit_is_rgpd(false)
if (tmp.is_rgpd && tmp.is_rgpd === "1") {
setp_detail_inscrit_is_rgpd(true);
}
if (tmp.situation_famille) {
setp_detail_inscrit_situation_famille(tmp.situation_famille);
@ -3109,17 +3108,15 @@ const Session_Admission_FI = (props) => {
setp_detail_inscrit_nationalite("");
}
if (tmp.is_droit_image) {
setp_detail_inscrit_is_droit_image(tmp.is_droit_image);
} else {
setp_detail_inscrit_is_droit_image("");
}
setp_detail_inscrit_is_droit_image(false);
if (tmp.is_droit_image && tmp.is_droit_image === "1") {
setp_detail_inscrit_is_droit_image(true);
}
if (tmp.is_handicap) {
setp_detail_inscrit_is_handicap(tmp.is_handicap);
} else {
setp_detail_inscrit_is_handicap("");
}
setp_detail_inscrit_is_handicap(false);
if (tmp.is_handicap && tmp.is_handicap === "1") {
setp_detail_inscrit_is_handicap(true);
}
if (tmp.naissance_lieu) {
setp_detail_inscrit_naissance_lieu(tmp.naissance_lieu);
@ -3248,7 +3245,12 @@ const Session_Admission_FI = (props) => {
}).catch((error) => {
console.warn('Not good man :( Getall_Partner_Session_Inscrit = ', error);
setGetall_Partner_Session_Inscrit_api("false");
alert(" Impossible de recuperer la liste des inscrits");
// alert(" Impossible de recuperer la liste des inscrits");
setdisplay_alert_mysy("1");
setalert_message(" Impossible de recuperer la liste des candidats");
setalert_type("error");
//setmyApimyApiMessage("")
})
}
@ -3277,7 +3279,11 @@ const Session_Admission_FI = (props) => {
//alert("file_size = "+file_size+" file_type = "+file_type+" a = "+a);
if (file_size > 10000000) {
alert("L'image ne doit pas dépasser un 1 Méga octets");
// alert("L'image ne doit pas dépasser un 1 Méga octets");
setdisplay_alert_mysy("1");
setalert_message("L'image ne doit pas dépasser un 1 Méga octets");
setalert_type("error");
return;
}
setisimgclassSelected(event.target.files[0]);
@ -3320,7 +3326,10 @@ const Session_Admission_FI = (props) => {
if (String(result['status']) === String("true")) {
setrecord_Inscrit_Image_api("true");
setuserimgclassprofilchanged("");
alert(" L'image a été enregistrée ");
// alert(" L'image a été enregistrée ");
setdisplay_alert_mysy("1");
setalert_message(" L'image a été enregistrée ");
setalert_type("success");
} else if (String(result['status']) === String("Err_Connexion")) {
alert('Erreur: ' + result['message']);
@ -3335,7 +3344,11 @@ const Session_Admission_FI = (props) => {
setLoading(false);
console.error('Error:', error);
setrecord_Inscrit_Image_api("false");
alert(" Erreur : Impossible d'enregistrer l'image ");
// alert(" Erreur : Impossible d'enregistrer l'image ");
setdisplay_alert_mysy("1");
setalert_message(" Erreur : Impossible d'enregistrer l'image ");
setalert_type("error");
});
@ -3394,7 +3407,11 @@ const Session_Admission_FI = (props) => {
.catch((error) => {
setLoading(false);
console.error('Error:', error);
alert(" Impossible de supprimer l'image ");
// alert(" Impossible de supprimer l'image ");
setdisplay_alert_mysy("1");
setalert_message(" Impossible de supprimer l'image ");
setalert_type("error");
});
}
@ -6831,6 +6848,14 @@ const Session_Admission_FI = (props) => {
Getall_Given_Session_Inscrit_Data(newSelectionModel.row._id);
var al = JSON.parse(Getall_Partner_Session_Inscrit_result[newSelectionModel.row.id])
if (al.date_naissance) {
var date_eval = new Date(moment(al.date_naissance, "DD/MM/YYYY"));
var diff = Date.now() - date_eval.getTime();
var age = new Date(diff);
var reel_age = Math.abs(age.getUTCFullYear() - 1970);
setp_detail_age(reel_age);
}
if (document.getElementById('myRef')) {
var divh = document.getElementById('myRef').offsetTop;
@ -6840,8 +6865,6 @@ const Session_Admission_FI = (props) => {
});
}
}}
rowsPerPageOptions={[10]}
@ -7117,7 +7140,7 @@ const Session_Admission_FI = (props) => {
}}> Age</nav>
<nav style={{ width: '60%', float: 'right', textAlign: 'left', paddingTop: '10px', }}>
xx an(s) <br /> (e) le {String("xxx") !== "01/01/1900" && String("xxx")}
{p_detail_age} an(s) <br /> (e) le {String(p_detail_inscrit_date_naissance) !== "01/01/1900" && p_detail_inscrit_date_naissance.toLocaleDateString('fr-FR')}
</nav>
</div>
@ -7158,6 +7181,22 @@ const Session_Admission_FI = (props) => {
</nav>
</div>
<div style={{ height: '4rem' }}>
<nav style={{
width: '30%', float: 'left', paddingTop: '10px', textAlign: 'left'
}}> Droit à l'image</nav>
<nav style={{ width: '60%', float: 'right', textAlign: 'left' }}>
<Checkbox
disabled={!Boolean(inscrit_edit_mode)}
checked={p_detail_inscrit_is_droit_image}
inputProps={{ 'aria-label': 'controlled' }}
/>
</nav>
</div>
<div>
<nav style={{
width: '30%', float: 'left', textAlign: 'left', paddingTop: '1rem', textAlign: 'left'
@ -7626,7 +7665,7 @@ const Session_Admission_FI = (props) => {
}}> Age</nav>
<nav style={{ width: '60%', float: 'right', textAlign: 'left', paddingTop: '10px', }}>
xx an(s) <br /> (e) le {String("xxx") !== "01/01/1900" && String("xxx")}
{p_detail_age} an(s) <br /> (e) le {String(p_detail_inscrit_date_naissance) !== "01/01/1900" && p_detail_inscrit_date_naissance.toLocaleDateString('fr-FR')}
</nav>
</div>
@ -7676,6 +7715,27 @@ const Session_Admission_FI = (props) => {
</nav>
</div>
<div style={{ height: '4rem' }}>
<nav style={{
width: '30%', float: 'left', paddingTop: '10px', textAlign: 'left'
}}> Droit à l'image</nav>
<nav style={{ width: '60%', float: 'right', textAlign: 'left' }}>
<Checkbox
disabled={!Boolean(inscrit_edit_mode)}
checked={p_detail_inscrit_is_droit_image}
onChange={(e) => {
setp_detail_inscrit_is_droit_image(e.target.checked);
setinscrit_data_changed("1");
}
}
inputProps={{ 'aria-label': 'controlled' }}
/>
</nav>
</div>
<div>
<nav style={{
width: '30%', float: 'left', textAlign: 'left', paddingTop: '1rem', textAlign: 'left'