16/05/2025 - 18h

recette2
cherif 2025-05-16 18:43:00 +02:00
parent 1d0189b0c9
commit da34ce1096
6 changed files with 2126 additions and 1251 deletions

View File

@ -531,6 +531,27 @@ const Apprenant = (props) => {
] ]
const columns_notes = [
{ field: '_id', headerName: '_id', hide: true, editable: false, Width: 0 },
{ field: 'evaluation_id', headerName: 'evaluation_id', hide: true, editable: false, Width: 0 },
{ field: 'inscription_id', headerName: 'inscription_id', hide: true, editable: false, Width: 0 },
{ field: 'note_evaluation_id', headerName: 'session_id', hide: true, editable: false, Width: 0 },
{ field: 'id', headerName: 'id', hide: true, Width: 0 },
{ field: 'class_eu_id', headerName: 'class_eu_id', hide: true, Width: 0 },
{ field: 'type_eval_id', headerName: 'type_eval_id', hide: true, Width: 0 },
{ field: 'class_ue_code', headerName: 'Code UE', hide: false, minWidth: 200, flex: 1, renderCell: (params) => <ExpandableCell_50 {...params} />, },
{ field: 'class_ue_titre', headerName: 'Titre UE', hide: false, minWidth: 200, flex: 1, renderCell: (params) => <ExpandableCell_50 {...params} />, },
{ field: 'note_evaluation_code', headerName: 'Evaluation', hide: false, minWidth: 200, flex: 1, renderCell: (params) => <ExpandableCell_50 {...params} />, },
{ field: 'eval_date_heure_debut', headerName: 'Debut Eval', hide: false, minWidth: 200, flex: 1, renderCell: (params) => <ExpandableCell_50 {...params} />, },
{ field: 'eval_date_heure_fin', headerName: 'Fin Eval', hide: false, minWidth: 200, flex: 1, renderCell: (params) => <ExpandableCell_50 {...params} />, },
{ field: 'note', headerName: 'Note', hide: false, minWidth: 200, flex: 1, renderCell: (params) => <ExpandableCell_50 {...params} />, },
]
function handleClick_delete_suivi_pedago(event, cellValues) { function handleClick_delete_suivi_pedago(event, cellValues) {
@ -1186,6 +1207,7 @@ const Apprenant = (props) => {
const [p_detail_one_file_to_download_type_name, setp_detail_one_file_to_download_type_name] = useState(); const [p_detail_one_file_to_download_type_name, setp_detail_one_file_to_download_type_name] = useState();
const [selectionModel_notes, setselectionModel_notes] = React.useState([]);
const [getPartnerImages_api, setgetPartnerImages_api] = useState(); const [getPartnerImages_api, setgetPartnerImages_api] = useState();
@ -1909,6 +1931,9 @@ const Apprenant = (props) => {
Get_Appenant_List_Inscription(line._id); Get_Appenant_List_Inscription(line._id);
Get_Apprenant_Notes_Of_Evaluations(line._id, "");
} }
@ -2071,7 +2096,6 @@ const Apprenant = (props) => {
setDialog_add_inscription_open(true); setDialog_add_inscription_open(true);
} }
} }
@ -2537,8 +2561,8 @@ const Apprenant = (props) => {
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_List_Suivi_Pedagogique_No_Filter/"; var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_List_Suivi_Pedagogique_No_Filter/";
axios.post(myurl, form).then(res => { axios.post(myurl, form).then(res => {
//console.log(" In Get_Appenant_List_Suivi_Pedagogique res.data.status = " + res.data.status); // console.log(" In Get_Appenant_List_Suivi_Pedagogique res.data.status = " + res.data.status);
//console.log(" In Get_Appenant_List_Suivi_Pedagogique res.data.message r_class = " + res.data.message); // console.log(" In Get_Appenant_List_Suivi_Pedagogique res.data.message r_class = " + res.data.message);
if (String(res.data.status) === String("true")) { if (String(res.data.status) === String("true")) {
setGet_Appenant_List_Suivi_Pedagogique_api("true"); setGet_Appenant_List_Suivi_Pedagogique_api("true");
@ -3346,6 +3370,8 @@ const Apprenant = (props) => {
const [display_detail_piece_joint, setdisplay_detail_piece_joint] = useState(""); const [display_detail_piece_joint, setdisplay_detail_piece_joint] = useState("");
const [display_menu_suivi_pedagogique, setdisplay_menu_suivi_pedagogique] = useState(""); const [display_menu_suivi_pedagogique, setdisplay_menu_suivi_pedagogique] = useState("");
const [display_detail_notes, setdisplay_detail_notes] = useState("");
async function submenu_add_one_inscription() { async function submenu_add_one_inscription() {
setDialog_add_inscription_open(true); setDialog_add_inscription_open(true);
@ -3367,6 +3393,8 @@ const Apprenant = (props) => {
setdisplay_detail_absence(""); setdisplay_detail_absence("");
setdisplay_detail_historique(""); setdisplay_detail_historique("");
setdisplay_detail_piece_joint(""); setdisplay_detail_piece_joint("");
setdisplay_detail_notes("");
@ -3381,7 +3409,8 @@ const Apprenant = (props) => {
} }
function submenu_color_management(current_menu) { function submenu_color_management(current_menu) {
const list_sous_menu = ['detail_apprenant', 'inscriptions', 'absences', 'suivi_pedagogique', 'historique', 'piece_jointe', 'piece_jointe'] const list_sous_menu = ['detail_apprenant', 'inscriptions', 'absences', 'suivi_pedagogique', 'historique',
'piece_jointe', 'notes']
for (let i = 0; i < list_sous_menu.length; i++) { for (let i = 0; i < list_sous_menu.length; i++) {
@ -3425,7 +3454,8 @@ const Apprenant = (props) => {
setdisplay_detail_absence(""); setdisplay_detail_absence("");
setdisplay_detail_historique(""); setdisplay_detail_historique("");
setdisplay_detail_piece_joint(""); setdisplay_detail_piece_joint("");
setdisplay_menu_suivi_pedagogique("") setdisplay_menu_suivi_pedagogique("");
setdisplay_detail_notes("");
} }
@ -3443,7 +3473,8 @@ const Apprenant = (props) => {
setdisplay_detail_absence(""); setdisplay_detail_absence("");
setdisplay_detail_historique(""); setdisplay_detail_historique("");
setdisplay_detail_piece_joint(""); setdisplay_detail_piece_joint("");
setdisplay_menu_suivi_pedagogique("") setdisplay_menu_suivi_pedagogique("");
setdisplay_detail_notes("");
} }
async function submenu_absence() { async function submenu_absence() {
@ -3458,7 +3489,8 @@ const Apprenant = (props) => {
setdisplay_detail_inscriptions(""); setdisplay_detail_inscriptions("");
setdisplay_detail_historique(""); setdisplay_detail_historique("");
setdisplay_detail_piece_joint(""); setdisplay_detail_piece_joint("");
setdisplay_menu_suivi_pedagogique("") setdisplay_menu_suivi_pedagogique("");
setdisplay_detail_notes("");
} }
async function submenu_suivi_pedagogique() { async function submenu_suivi_pedagogique() {
@ -3474,6 +3506,7 @@ const Apprenant = (props) => {
setdisplay_detail_inscriptions(""); setdisplay_detail_inscriptions("");
setdisplay_detail_historique(""); setdisplay_detail_historique("");
setdisplay_detail_piece_joint(""); setdisplay_detail_piece_joint("");
setdisplay_detail_notes("");
Get_Appenant_List_Suivi_Pedagogique(selected_apprenant_id); Get_Appenant_List_Suivi_Pedagogique(selected_apprenant_id);
} }
@ -3491,6 +3524,7 @@ const Apprenant = (props) => {
setdisplay_detail_inscriptions(""); setdisplay_detail_inscriptions("");
setdisplay_detail_absence(""); setdisplay_detail_absence("");
setdisplay_detail_piece_joint(""); setdisplay_detail_piece_joint("");
setdisplay_detail_notes("");
} }
async function submenu_piece_jointe() { async function submenu_piece_jointe() {
@ -3506,6 +3540,24 @@ const Apprenant = (props) => {
setdisplay_detail_apprenant(""); setdisplay_detail_apprenant("");
setdisplay_detail_inscriptions(""); setdisplay_detail_inscriptions("");
setdisplay_detail_absence(""); setdisplay_detail_absence("");
setdisplay_detail_notes("");
}
async function submenu_notes() {
setsubmenu("notes");
submenu_color_management("notes");
//await sleep(5);
setdisplay_detail_notes("1")
setdisplay_detail_piece_joint("")
setdisplay_detail_historique("");
setadd_One_Apprenant("");
setdisplay_detail_apprenant("");
setdisplay_detail_inscriptions("");
setdisplay_detail_absence("");
setdisplay_menu_suivi_pedagogique("");
} }
@ -3530,6 +3582,8 @@ const Apprenant = (props) => {
submenu_detail_apprenant(); submenu_detail_apprenant();
Get_Apprenant_Notes_Of_Evaluations(selected_apprenant_id, "");
} }
@ -5047,6 +5101,89 @@ const Apprenant = (props) => {
setdisplay_alert_mysy(""); setdisplay_alert_mysy("");
} }
const [Get_Apprenant_Notes_Of_Evaluations_api, setGet_Apprenant_Notes_Of_Evaluations_api] = useState();
const [Get_Apprenant_Notes_Of_Evaluations_message, setGet_Apprenant_Notes_Of_Evaluations_message] = useState();
const [Get_Apprenant_Notes_Of_Evaluations_result, setGet_Apprenant_Notes_Of_Evaluations_result] = useState([]);
function Get_Apprenant_Notes_Of_Evaluations(local_inscription, local_session_id) {
var form = new FormData();
const stored_cookie = getCookie('tokenmysypart');
var tab_my_inscription_ids = [];
tab_my_inscription_ids.push(local_inscription);
var tab_session_id = [];
tab_session_id.push(local_session_id);
form.append("token", stored_cookie);
form.append("list_session_id", tab_session_id);
form.append("list_apprenant_id", tab_my_inscription_ids);
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_List_Apprenant_Notes_With_Filter/";
axios.post(myurl, form).then(res => {
// console.log(" In Get_Apprenant_Notes_Of_Evaluations res.data.status = " + res.data.status);
// console.log(" In Get_Apprenant_Notes_Of_Evaluations res.data.message r_class = " + res.data.message);
if (String(res.data.status) === String("true")) {
setGet_Apprenant_Notes_Of_Evaluations_api("true");
setGet_Apprenant_Notes_Of_Evaluations_result(res.data.message);
}
else {
setGet_Apprenant_Notes_Of_Evaluations_api("false");
setGet_Apprenant_Notes_Of_Evaluations_message(res.data.message);
}
}).catch((error) => {
console.warn('Not good man :( Get_Apprenant_Notes_Of_Evaluations = ', error);
setGet_Apprenant_Notes_Of_Evaluations_api("false");
//setmyApimyApiMessage("")
})
}
function Export_Apprenant_Notes() {
const stored_cookie = getCookie('tokenmysypart');
var list_session_id = "-";
var list_ue_id = "-";
var list_apprenant_id = String(selected_apprenant_id)
var nom_fichier_cmd = "export_notes.xlsx";
var url = process.env.REACT_APP_API_URL + "myclass/api/Export_To_Excel_List_Apprenant_Notes_With_Filter/" + stored_cookie + "/" + list_session_id + "/" + list_ue_id + "/"+list_apprenant_id;
//console.log(" ### url = ", url);
setLoading(true);
axios.get(url, { responseType: 'blob', },)
.then((res) => {
setLoading(false);
//console.log(" In Export_Dashbord_to_CSV res.data = " + res.data);
if (String(res.data) === String("false")) {
alert("Impossible d'exporter les notes (2) ");
} else {
fileDownload(res.data, nom_fichier_cmd)
}
}).catch((error) => {
setLoading(false);
console.error('Error:', error);
alert(" Impossible d'exporter les notes ")
});
setLoading(false);
}
return ( return (
<div className="apprenant"> <div className="apprenant">
@ -5096,7 +5233,7 @@ const Apprenant = (props) => {
> >
<DialogTitle style={{ cursor: 'move', fontFamily:"DM Sans"}} id="draggable-dialog-title" >MySy Information</DialogTitle> <DialogTitle style={{ cursor: 'move', fontFamily: "DM Sans" }} id="draggable-dialog-title" >MySy Information</DialogTitle>
<DialogContent> <DialogContent>
<DialogContentText> <DialogContentText>
{Dialog_Suivi_Pedago_message} {Dialog_Suivi_Pedago_message}
@ -5213,7 +5350,7 @@ const Apprenant = (props) => {
aria-labelledby="draggable-dialog-title" aria-labelledby="draggable-dialog-title"
> >
<DialogTitle style={{ cursor: 'move', fontFamily:"DM Sans"}} id="draggable-dialog-title" >Apprenant</DialogTitle> <DialogTitle style={{ cursor: 'move', fontFamily: "DM Sans" }} id="draggable-dialog-title" >Apprenant</DialogTitle>
<DialogContent className="DialogContent_width"> <DialogContent className="DialogContent_width">
<div> <div>
@ -5372,7 +5509,7 @@ const Apprenant = (props) => {
> >
<DialogTitle style={{ cursor: 'move', fontFamily:"DM Sans"}} id="draggable-dialog-title">Tuteur {quel_tuteur}</DialogTitle> <DialogTitle style={{ cursor: 'move', fontFamily: "DM Sans" }} id="draggable-dialog-title">Tuteur {quel_tuteur}</DialogTitle>
{String(quel_tuteur) === "1" && <DialogContent className="DialogContent_width"> {String(quel_tuteur) === "1" && <DialogContent className="DialogContent_width">
<DialogContentText> <DialogContentText>
{Dialog_tuteur_1_message} {Dialog_tuteur_1_message}
@ -5806,7 +5943,7 @@ const Apprenant = (props) => {
aria-labelledby="draggable-dialog-title" aria-labelledby="draggable-dialog-title"
> >
<DialogTitle style={{ cursor: 'move', fontFamily:"DM Sans"}} id="draggable-dialog-title" > Inscrire </DialogTitle> <DialogTitle style={{ cursor: 'move', fontFamily: "DM Sans" }} id="draggable-dialog-title" > Inscrire </DialogTitle>
<DialogContent className="DialogContent_width"> <DialogContent className="DialogContent_width">
{New_Getall_TrainingSession_result && <div className="session_caract_Dialog"> <b> Session</b> {New_Getall_TrainingSession_result && <div className="session_caract_Dialog"> <b> Session</b>
@ -5969,7 +6106,7 @@ const Apprenant = (props) => {
aria-labelledby="draggable-dialog-title" aria-labelledby="draggable-dialog-title"
> >
<DialogTitle style={{ cursor: 'move', fontFamily:"DM Sans"}} id="draggable-dialog-title" >MySy Information</DialogTitle> <DialogTitle style={{ cursor: 'move', fontFamily: "DM Sans" }} id="draggable-dialog-title" >MySy Information</DialogTitle>
<DialogContent className="DialogContent_width" style={{ "minHeight": "20rem" }}> <DialogContent className="DialogContent_width" style={{ "minHeight": "20rem" }}>
@ -6040,7 +6177,7 @@ const Apprenant = (props) => {
</Dialog> </Dialog>
<h3 style={{ fontFamily:'DM Sans' }}> Mes apprenants </h3> <h3 style={{ fontFamily: 'DM Sans' }}> Mes apprenants </h3>
<div> <div>
<div className="titre1"> Utilisez les filtres !</div> <div className="titre1"> Utilisez les filtres !</div>
<div className="div_row" style={{ "marginBottom": "5px" }}> <div className="div_row" style={{ "marginBottom": "5px" }}>
@ -6516,6 +6653,9 @@ const Apprenant = (props) => {
<Button variant="outlined" onClick={submenu_piece_jointe} className="detail_class_submenu" id='piece_jointe' name='piece_jointe'>Pièces Jointes </Button> <Button variant="outlined" onClick={submenu_piece_jointe} className="detail_class_submenu" id='piece_jointe' name='piece_jointe'>Pièces Jointes </Button>
<Button variant="outlined" onClick={submenu_absence} className="detail_class_submenu" id='absences' name='absences'>Absences </Button> <Button variant="outlined" onClick={submenu_absence} className="detail_class_submenu" id='absences' name='absences'>Absences </Button>
{String(props.formation_initiale) === "1" && <Button variant="outlined" onClick={submenu_notes} className="detail_class_submenu" id='notes' name='notes'>Notes </Button>}
<Button variant="outlined" onClick={submenu_suivi_pedagogique} className="detail_class_submenu" id='suivi_pedagogique' name='suivi_pedagogique'>Suivi Pédago. </Button> <Button variant="outlined" onClick={submenu_suivi_pedagogique} className="detail_class_submenu" id='suivi_pedagogique' name='suivi_pedagogique'>Suivi Pédago. </Button>
{/*<Button variant="outlined" onClick={submenu_historique} className="detail_class_submenu" id='historique' name='historique'>Historique </Button>*/} {/*<Button variant="outlined" onClick={submenu_historique} className="detail_class_submenu" id='historique' name='historique'>Historique </Button>*/}
@ -8846,6 +8986,160 @@ const Apprenant = (props) => {
</div>} </div>}
{String(display_detail_notes) === "1" && String(add_One_Apprenant) !== "1" && selected_apprenant_id && <div className="div_row" style={{ "border": "None", "background": '#F8F9F9', "padding": '5px' }}>
<nav style={{ "border": "None", "fontSize": "20px", "paddingTop": "5px", "paddingLeft": "5px", fontFamily: 'DM Sans' }}> Les notes de l'apprenant </nav>
<div className="div_row" style={{ "textAlign": "right", "marginTop": "0.5rem" }}>
<Button className="bton_emarge" onClick={(event) => {
Export_Apprenant_Notes();
}}>Exporter (excel)</Button>
</div>
<div className="session_data">
<div style={{ "border": "None", paddingRight: '10px' }}>
<div style={{ height: 550, width: '100%', paddingRight: '5px' }}>
&nbsp;
<Box
sx={{
height: 500,
width: '100%',
paddingRight: '1px',
/*"& .MuiDataGrid-virtualScrollerRenderZone": {
"& .MuiDataGrid-row": {
"&:nth-child(2n)": { backgroundColor: "rgba(235, 235, 235, .7)" }
}
},*/
"& .MuiDataGrid-columnHeaders": {
backgroundColor: "#c8cfd5",
color: "black",
fontSize: 14
},
'& .line--statut--pair': {
backgroundColor: 'rgba(235, 235, 235, .7)',
color: 'black',
},
'& .line--statut--impair': {
backgroundColor: '#FFFFFF',
color: 'black',
},
'& .line--statut--selected': {
backgroundColor: '#FBF2EF',
color: 'black',
},
}}
>
<DataGrid
checkboxSelection
onSelectionModelChange={(newSelectionModel) => {
setselectionModel_notes(newSelectionModel);
/*if (newSelectionModel.length === 1)
handleClick_edit_session_From_Line(newSelectionModel);*/
if (newSelectionModel.length !== 1) {
}
}}
selectionModel={selectionModel_notes}
localeText={frFR.components.MuiDataGrid.defaultProps.localeText}
rows={Get_Apprenant_Notes_Of_Evaluations_result.map((item, index) => (
{
id: index,
_id: JSON.parse(item)._id,
evaluation_id: JSON.parse(item).evaluation_id,
inscription_id: JSON.parse(item).inscription_id,
note_evaluation_id: JSON.parse(item).note_evaluation_id,
class_eu_id: JSON.parse(item).class_eu_id,
type_eval_id: JSON.parse(item).type_eval_id,
class_ue_code: JSON.parse(item).class_ue_code,
class_ue_titre: JSON.parse(item).class_ue_titre,
note_evaluation_code: JSON.parse(item).note_evaluation_code,
eval_date_heure_debut: JSON.parse(item).eval_date_heure_debut,
eval_date_heure_fin: JSON.parse(item).eval_date_heure_fin,
note: JSON.parse(item).note,
}
))}
columns={columns_notes}
pageSize={10}
className="datagridclass"
onRowDoubleClick={(newSelectionModel) => {
}}
rowsPerPageOptions={[10]}
disableSelectionOnClick
components={{
Toolbar: GridToolbar,
}}
//sx={datagridSx}
getCellClassName={(params) => {
//field === 'distantiel'
if (params.field === 'distantiel' && String(params.value) === "1") {
return 'cell--distantiel';
}
if (params.field === "presentiel" && String(params.value) == "1") {
return 'cell--presentiel';
}
//field === "statut"
if (params.field === "status" && String(params.value) == "0") {
return 'cell--statut--preinscrit';
}
if (params.field === "status" && String(params.value) == "1") {
return 'cell--statut--inscrit';
}
if (params.field === "status" && String(params.value) == "-1") {
return 'cell--statut--annule';
}
}}
getRowClassName={(params) => {
// Pour la gestion de la couleur de zone double cliquée
if (String(params.row.id) === String(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"}
/>
</Box>
<br />
</div>
</div>
</div>
</div>}
</div > </div >
); );
} }

View File

@ -11306,7 +11306,9 @@ const DisplayPartnerStagiaires = (props) => {
{String(props.formation_initiale) === "1" && String(submenu) === "ue" && String(addOneParticipant) !== "1" && <div className="div_row" style={{ "border": "None", "background": '#F8F9F9', "padding": '5px' }}> {String(props.formation_initiale) === "1" && String(submenu) === "ue" && String(addOneParticipant) !== "1" && <div className="div_row" style={{ "border": "None", "background": '#F8F9F9', "padding": '5px' }}>
<h3 style={{ fontFamily: 'DM Sans' }}> Gestion des UE d'un inscrit </h3> <nav style={{ "border": "None", "fontSize": "20px", "paddingTop": "5px", "paddingLeft": "5px", fontFamily: 'DM Sans' }}> Gestion des UE d'un inscrit </nav>
<div className="div_row"> <div className="div_row">
<div className="session_caract"> <b>Unite D'enseignement </b> <br /> <div className="session_caract"> <b>Unite D'enseignement </b> <br />
@ -11457,7 +11459,9 @@ const DisplayPartnerStagiaires = (props) => {
{String(props.formation_initiale) === "1" && String(submenu) === "notes" && String(display_notes) === "1" && String(addOneParticipant) !== "1" && <div className="div_row" style={{ "border": "None", "background": '#F8F9F9', "padding": '5px' }}> {String(props.formation_initiale) === "1" && String(submenu) === "notes" && String(display_notes) === "1" && String(addOneParticipant) !== "1" && <div className="div_row" style={{ "border": "None", "background": '#F8F9F9', "padding": '5px' }}>
<h3 style={{ fontFamily: 'DM Sans' }}> Les notes de l'inscrit </h3>
<nav style={{ "border": "None", "fontSize": "20px", "paddingTop": "5px", "paddingLeft": "5px", fontFamily: 'DM Sans' }}> Les notes de l'inscrit </nav>
<div className="div_row" style={{ "textAlign": "right", "marginTop": "0.5rem" }}> <div className="div_row" style={{ "textAlign": "right", "marginTop": "0.5rem" }}>
<Button className="bton_emarge" onClick={(event) => { <Button className="bton_emarge" onClick={(event) => {
Export_Inscrit_Notes(); Export_Inscrit_Notes();

View File

@ -75,6 +75,8 @@ import * as XLSX from 'xlsx';
import { TbUsersGroup } from "react-icons/tb"; import { TbUsersGroup } from "react-icons/tb";
import Module_Jury_Selection_Apprenants from "./Module_Jury_Selection_Apprenants"; import Module_Jury_Selection_Apprenants from "./Module_Jury_Selection_Apprenants";
import { FcSearch } from "react-icons/fc";
import { FcViewDetails, FcDisapprove, FcInfo } from "react-icons/fc";
import Module_Session_Notes_Classement from "./Module_Session_Notes_Classement"; import Module_Session_Notes_Classement from "./Module_Session_Notes_Classement";
import { FaBullseye } from "react-icons/fa"; import { FaBullseye } from "react-icons/fa";
@ -962,7 +964,8 @@ const Jury = (props) => {
const New_Option = [ const New_Option = [
{ "id": "0", "label": "Supprimer", "value": "supprimer" }, { "id": "0", "label": "Supprimer", "value": "supprimer" },
{ "id": "1", "label": "Conv. Apprenant", "value": "convocation_apprenant" },
{ "id": "2", "label": "Conv. Membre Jury", "value": "convocation_jury" },
] ]
const [actionmass_ftion_val, setactionmass_ftion_val] = useState(); const [actionmass_ftion_val, setactionmass_ftion_val] = useState();
@ -3389,6 +3392,230 @@ const Jury = (props) => {
const [jury_seance_ue_id, setjury_seance_ue_id] = useState(""); const [jury_seance_ue_id, setjury_seance_ue_id] = useState("");
function Get_List_Selected_Jury_Id() {
var tab_tmp = []
for (var i = 0; i < selectionModel_columns_jury.length; i++) {
var myid = parseInt(String(selectionModel_columns_jury[i]));
var line = JSON.parse(Getall_Partner_Jury_result[myid]);
tab_tmp.push(line._id);
}
return tab_tmp;
}
function actionmass_ftion_Traitemet() {
var liste_jury = Get_List_Selected_Jury_Id();
console.log(" Get_List_Selected_Jury_Id = ", liste_jury);
if (String(actionmass_ftion_val) === String("supprimer")) {
//console.log(" ### liste session : ", liste_session)
// Delete_LIST_Apprenant(liste_apprenant);
}
else if (String(actionmass_ftion_val) === String("convocation_apprenant")) {
// setDialog_add_inscription_open(true);
}
else if (String(actionmass_ftion_val) === String("convocation_jury")) {
// Export_apprenant(liste_apprenant);
}
}
const [selected_jury_convention_apprenant_id, setselected_jury_convention_apprenant_id] = useState("");
const [selected_jury_convention_apprenant_type, setselected_jury_convention_apprenant_type] = useState("");
const [selected_jury_convention_apprenant_email_destinataire_prod, setselected_jury_convention_apprenant_email_destinataire_prod] = useState("");
const [selected_jury_convention_apprenant_email_test, setselected_jury_convention_apprenant_email_test] = useState("");
const [tab_jury_convention_apprenant_pieces_jointes_result, settab_jury_convention_apprenant_pieces_jointes_result] = useState([]);
const [Dialog_CONVOCATION_JURY_APPRENANT_open, setDialog_CONVOCATION_JURY_APPRENANT_open] = React.useState(false);
const Dialog_CONVOCATION_JURY_APPRENANT_handleClose = () => {
//alert(" Utiliser le bouton 'fermer' ");
//setOpen(false);
};
const Dialog_CONVOCATION_JURY_APPRENANT_handleClose_buton = () => {
setDialog_CONVOCATION_JURY_APPRENANT_open(false);
setselected_jury_convention_apprenant_id();
setselected_jury_convention_apprenant_type("");
setselected_jury_convention_apprenant_email_destinataire_prod();
setselected_jury_convention_apprenant_email_test();
setactionmass_ftion_val();
settab_jury_convention_apprenant_pieces_jointes_result([])
};
const [sessions_file_change_1_convention_api, setsessions_file_change_1_convention_api] = useState();
const [sessions_file_change_1_convention_result, setsessions_file_change_1_convention_result] = useState();
const [sessions_file_change_1_convention_message, setsessions_file_change_1_convention_message] = useState();
const sessions_file_change_1_convention = event => {
const fileUploaded = event.target.files[0];
let file_size = event.target.files[0].size;
let file_type = event.target.files[0].type;
if (file_type !== "application/pdf") {
alert("Le fichier n'est pas de type PDF");
return;
}
if (file_size > 10000000) {
alert("Le fichier ne doit pas depasser un 1 Méga octets");
return;
}
//var new_node = {'name':event.target.files[0].name, 'type':event.target.files[0].type}
var new_tmp = [];
if (tab_jury_convention_apprenant_pieces_jointes_result && tab_jury_convention_apprenant_pieces_jointes_result.length > 0) {
tab_jury_convention_apprenant_pieces_jointes_result.map((x) => {
new_tmp.push(x);
});
}
new_tmp.push(event.target.files[0])
settab_jury_convention_apprenant_pieces_jointes_result(new_tmp);
//console.log(" tab_jury_convention_apprenant_pieces_jointes_result = ", tab_jury_convention_apprenant_pieces_jointes_result)
return;
};
function Delete_Convention_Attached_Doc(event) {
var doc_to_del_name = event.target.id;
const myArray = tab_jury_convention_apprenant_pieces_jointes_result;
let new_myArray = myArray.filter(file => file.name !== String(doc_to_del_name));
//console.log(" new_myArray = ", new_myArray);
var new_tab = []
for (let i = 0; i < new_myArray.length; i++) {
new_tab.push(new_myArray[i]);
}
settab_jury_convention_apprenant_pieces_jointes_result(new_tab);
}
const [New_Get_List_JURY_APPRENANT_Convocations_result, setNew_Get_List_JURY_APPRENANT_Convocations_result] = useState([]);
const [Get_List_JURY_APPRENANT_Convocations_api, setGet_List_JURY_APPRENANT_Convocations_api] = useState();
const [Get_List_JURY_APPRENANT_Convocations_message, setGet_List_JURY_APPRENANT_Convocations_message] = useState();
const [Get_List_JURY_APPRENANT_Convocations_result, setGet_List_JURY_APPRENANT_Convocations_result] = useState();
function Get_List_JURY_APPRENANT_Convocations(type_doc) {
var form = new FormData();
const stored_cookie = getCookie('tokenmysypart');
form.append("token", stored_cookie);
form.append("type_doc", type_doc);
form.append("courrier_template_type_document_ref_interne", "JURY_CONVOCATION_APPRENANT");
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_List_Convocations_Stagiaire_With_Filter/";
setLoading(true);
axios.post(myurl, form).then(res => {
//console.log(" In Get_List_JURY_APPRENANT_Convocations res.data.status = " + res.data.status);
//console.log(" In Get_List_JURY_APPRENANT_Convocations res.data.message r_class = " + res.data.message);
setLoading(false);
if (String(res.data.status) === String("true")) {
setGet_List_JURY_APPRENANT_Convocations_api("true");
setGet_List_JURY_APPRENANT_Convocations_result(res.data.message);
var new_data2 = [];
const new_data = res.data.message.map((x) => {
//---
var localid = JSON.parse(x).id;
var local_id = JSON.parse(x)._id;
var local_ref_interne = JSON.parse(x).ref_interne;
var local_nom = JSON.parse(x).nom;
var local_sujet = JSON.parse(x).sujet;
var local_type_doc = JSON.parse(x).type_doc;
var local_cible = JSON.parse(x).cible;
var local_joint_pdf = JSON.parse(x).joint_pdf;
//---
var node = {
"_id": local_id,
"id": localid,
"label": local_nom,
"ref_interne": local_ref_interne,
"nom": local_nom,
"sujet": local_sujet,
"type_doc": local_type_doc,
"cible": local_cible,
"joint_pdf": local_joint_pdf,
};
new_data2.push(node);
});
if (new_data2.length > 0)
setNew_Get_List_JURY_APPRENANT_Convocations_result(new_data2);
}
else {
setGet_List_JURY_APPRENANT_Convocations_api("false");
setGet_List_JURY_APPRENANT_Convocations_message(res.data.message);
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("error");
}
}).catch((error) => {
setLoading(false);
console.warn('Not good man :( Get_List_JURY_APPRENANT_Convocations = ', error);
setGet_List_JURY_APPRENANT_Convocations_api("false");
alert("Impossible de récupérer les modèles de convocations");
//setmyApimyApiMessage("")
})
}
const New_Option_Type_Document = [
{ "id": "email", "label": "Email", "value": "email" },
{ "id": "pdf", "label": "PDF", "value": "pdf" },
]
return ( return (
<div className="jurys"> <div className="jurys">
{isLoading && <div className="loader-container"> {isLoading && <div className="loader-container">
@ -3408,6 +3635,321 @@ const Jury = (props) => {
{/* Dialog pour gerer les CONVOCATION_JURY_APPRENANT */}
<Dialog
open={Dialog_CONVOCATION_JURY_APPRENANT_open}
// onClose={Dialog_CONVOCATION_JURY_APPRENANT_handleClose}
// className="displaypartnersession"
className="displaypartnersession"
static
onClose={() => null}
PaperProps={{
className: classes.paper, // Apply the paper style
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
margin: "2px",
},
}}
hideBackdrop={true}
disableScrollLock
classes={{
paper: classes.dialog
}}
PaperComponent={PaperComponent}
aria-labelledby="draggable-dialog-title"
>
<DialogTitle>MySy Information</DialogTitle>
<DialogContent className="DialogContent_width" style={{ "minHeight": "30rem" }}>
<DialogContentText>
{Dialog_1_message}
</DialogContentText>
<div className="session_caract_Dialog" > Type Document<br />
<Autocomplete
disablePortal
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 } }}
name="event_dialog_type_convention"
id="event_dialog_type_convention"
fullWidth
options={New_Option_Type_Document}
onChange={(event, value) => {
if (value && value.value) {
setselected_jury_convention_apprenant_type(value.value);
Get_List_JURY_APPRENANT_Convocations(String(value.value));
}
}}
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
/>
}
/>
</div>
{(String(selected_jury_convention_apprenant_type) === "email" || String(selected_jury_convention_apprenant_type) === "pdf") &&
<div className="session_caract_Dialog" > Choisir une convocation
<Autocomplete
disablePortal
name="event_dialog_version_convention"
id="event_dialog_version_convention"
fullWidth
//className="disabled_style enable_style"
options={New_Get_List_JURY_APPRENANT_Convocations_result}
onChange={(event, value) => {
if (value && value._id) {
setselected_jury_convention_apprenant_id(value._id);
if (String(value._id) === "default_mail") {
setselected_jury_convention_apprenant_type("email");
}
else if (String(value._id) === "default_pdf") {
setselected_jury_convention_apprenant_type("pdf");
} else {
var result2 = Get_List_JURY_APPRENANT_Convocations_result.filter((local_mymanager) => JSON.parse(local_mymanager)._id === String(value._id))
setselected_jury_convention_apprenant_type(JSON.parse(result2).type_doc);
}
settab_jury_convention_apprenant_pieces_jointes_result([]);
}
}}
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option" />
}
/>
</div>}
{String(selected_jury_convention_apprenant_type) === "email" && <div className="session_caract_Dialog" > Type Document<br />
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, width: '75%' }}
name="event_dialog_type_convention"
id="event_dialog_type_convention"
value="email"
/>
{String(selected_jury_convention_apprenant_type) === "email" && <label className="bton_image_class" style={{ "width": "20%", "float": "right", "height": "3.5rem", "paddingTop": "15px" }} onClick={(e) => {
if (selected_jury_convention_apprenant_email_test) {
var validRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/;
if (!selected_jury_convention_apprenant_email_test.match(validRegex)) {
alert("L'adresse email de test est invalide.");
return;
}
// Send_JURY_APPRENANT_Conventions_By_Email_Test();
} else {
alert("L'adresse email de test est invalide.");
}
}} > <FcSearch /> &nbsp; Test</label>}
</div>}
{String(selected_jury_convention_apprenant_type) === "pdf" && <div className="session_caract_Dialog" > Type Document<br />
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 } }}
name="event_dialog_type_convention"
id="event_dialog_type_convention"
value="pdf"
fullWidth
/>
</div>}
{String(selected_jury_convention_apprenant_type) === "email" && <div className="session_caract_Dialog" >
<Tooltip className="tooltip_css" id="test01" style={{ "fontSize": "12px" }} />
<a data-tooltip-id="test01" data-tooltip-html="Pour recevoir une email de test avant de l'envoyer">
Adresse email de test <FcInfo /> <TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
name="event_dialog_email_test_convention"
id="event_dialog_email_test_convention"
fullWidth
value={selected_jury_convention_apprenant_email_test}
onChange={(e) => {
setselected_jury_convention_apprenant_email_test(e.target.value);
}
}
/>
</a>
</div>
}
{String(selected_jury_convention_apprenant_type) === "email" &&
String(actionmass_ftion_val) !== String("convention") && <div className="session_caract_Dialog" > Email destinaitaire
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
name="event_dialog_email_production_convention"
id="event_dialog_email_production_convention"
fullWidth
value={selected_jury_convention_apprenant_email_destinataire_prod}
onChange={(e) => {
setselected_jury_convention_apprenant_email_destinataire_prod(e.target.value);
}
}
/>
</div>
}
{String(selected_jury_convention_apprenant_type) === "email" && <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" }}>
Pièces jointes Convention
</div>
<div className="div_row" style={{ "padding": "5px" }}>
<div style={{ "fontSize": "12px" }}>
<label htmlFor="upload_convention_file">
<input
style={{ display: "none" }}
id="upload_convention_file"
name="upload_convention_file"
type="file"
onChange={sessions_file_change_1_convention}
/>
<Fab
color="secondary"
size="small"
component="span"
aria-label="add"
variant="extended"
>
<IoMdAddCircle /> <nav style={{ "fontSize": "12px" }}> Ajouter un fichier </nav>
</Fab>
</label>
</div>
</div>
{tab_jury_convention_apprenant_pieces_jointes_result && <div className="div_row" style={{ "padding": "5px" }}>
<div className="div_row">
Liste des pièces jointes <br />
{<div className="div_row">
{tab_jury_convention_apprenant_pieces_jointes_result && tab_jury_convention_apprenant_pieces_jointes_result.map((val) => (
<div className="div_row_list_pj_convention" >
<nav style={{ "color": "orange", "cursor": "pointer" }}
onClick={(e) => {
Delete_Convention_Attached_Doc(e);
}}
name={val.name} id={val.name}> Supprimer {val.name} </nav> <br />
</div>
))}
</div>}
</div>
</div>}
</div>
</div>}
</DialogContent>
<DialogActions>
<IconButton
autoFocus
onClick={Dialog_CONVOCATION_JURY_APPRENANT_handleClose_buton}
color="primary"
className={classes.customizedButton}
>
<CancelPresentationIcon />
</IconButton>
<div className="div_row">
<div className="div_row_gauche">
{String(selected_jury_convention_apprenant_type) === "email" && <Button onClick={(e) => {
if (String(selected_jury_convention_apprenant_email_test).length > 2) {
// On alerte juste l'utilisateur que l'email de test n'est pas vide, juste au cas ou il aurait cliqué par erreur sur l'envoie.
const response = window.confirm(" Vous allez envoyer la convention au destinaitaire final. Continuer ?");
if (!response) {
return;
}
}
// Send_JURY_APPRENANT_Convocations_By_Email();
Dialog_CONVOCATION_JURY_APPRENANT_handleClose_buton();
}}
className="bton_enreg_dialog">Envoyer mail </Button>}
{String(selected_jury_convention_apprenant_type) === "pdf" &&
<Button className="bton_enreg_dialog" onClick={(e) => {
// Download_Session_Convocation_PDF();
Dialog_CONVOCATION_JURY_APPRENANT_handleClose_buton();
}}
>Télécharger </Button>}
</div>
<div className="div_row_droite" style={{ "textAlign": 'center' }}>
<Button onClick={Dialog_CONVOCATION_JURY_APPRENANT_handleClose_buton} className="bton_annule_dialog" >Fermer</Button>
</div>
</div>
</DialogActions>
</Dialog>
{/* FIN Dialog pour gerer les CONVOCATION_JURY_APPRENANT */}
{/*** Dialog Gestion Apprenant concerné par le jury */} {/*** Dialog Gestion Apprenant concerné par le jury */}
<Dialog <Dialog
@ -3548,8 +4090,6 @@ const Jury = (props) => {
</div> </div>
-------------- <br />
<div style={{ height: 350, width: '100%', paddingRight: '5px' }}> <div style={{ height: 350, width: '100%', paddingRight: '5px' }}>
@ -4598,9 +5138,8 @@ const Jury = (props) => {
onChange={(event, value) => { onChange={(event, value) => {
if (value && value.value) { if (value && value.value) {
if (String(value.value) === "supprimer" if (String(value.value) === "supprimer"
|| String(value.value) === "convocation" || String(value.value) === "convocation_apprenant"
|| String(value.value) === "exporter" || String(value.value) === "convocation_jury") {
|| String(value.value) === "inscrire") {
setactionmass_ftion_val(value.value); setactionmass_ftion_val(value.value);
} }
else { else {
@ -4619,8 +5158,16 @@ const Jury = (props) => {
/> />
{actionmass_ftion_val && String(actionmass_ftion_val) !== "supprimer" && <nav className='block_en_mass_bton_action'>
<Button className="bton_enreg" style={{ "width": "90%" }} onClick={(event) => {
setDialog_CONVOCATION_JURY_APPRENANT_open(true);
}}>
<FcAcceptDatabase /> Traiter
</Button>
{actionmass_ftion_val && <nav className='block_en_mass_bton_action'> </nav>}
{actionmass_ftion_val && String(actionmass_ftion_val) === "supprimer" && <nav className='block_en_mass_bton_action'>
<Popup <Popup
trigger={<Button className="bton_enreg" style={{ "width": "90%" }}> trigger={<Button className="bton_enreg" style={{ "width": "90%" }}>
@ -4630,7 +5177,6 @@ const Jury = (props) => {
modal modal
nested nested
position="center center" position="center center"
> >
{close => ( {close => (
@ -4642,11 +5188,15 @@ const Jury = (props) => {
<div className="gest_content"> <div className="gest_content">
{' '} {' '}
{String(actionmass_ftion_val) === "supprimer" && {String(actionmass_ftion_val) === "supprimer" &&
<font color="red"> Confirmer la suppression de {selectionModel_columns_jury.length} membres(s) . <font color="red"> Confirmer la suppression de {selectionModel_columns_jury.length} jury(s).
</font>} </font>}
{String(actionmass_ftion_val) === "convocation" && {String(actionmass_ftion_val) === "convocation_apprenant" &&
<font> Gestion des convocation en cours de réalisation <font> Envoyer la convocation aux apprenants
</font>}
{String(actionmass_ftion_val) === "convocation_jury" &&
<font> Envoyer la convocation aux membres du jury
</font>} </font>}
@ -4656,7 +5206,7 @@ const Jury = (props) => {
<div className="gest_actions"> <div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}> <div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => { <button className="gest_bton_popup" onClick={(event) => {
// actionmass_ftion_Traitemet(); actionmass_ftion_Traitemet();
close(); close();
}}> Valider </button> }}> Valider </button>
@ -4703,7 +5253,8 @@ const Jury = (props) => {
<div className="div_row" ref={myRef} id="myRef"> &nbsp; </div> <div className="div_row" ref={myRef} id="myRef"> &nbsp; </div>
{selected_id && String(selected_id).length > 5 && <div className="div_row"> {
selected_id && String(selected_id).length > 5 && <div className="div_row">
<Button variant="outlined" onClick={submenu_detail} className="detail_class_submenu" id='detail_jury' name='detail_jury'>Détail Jury</Button> <Button variant="outlined" onClick={submenu_detail} className="detail_class_submenu" id='detail_jury' name='detail_jury'>Détail Jury</Button>
<Button variant="outlined" onClick={submenu_membres} className="detail_class_submenu" id='membres' name='membres'>Membres </Button> <Button variant="outlined" onClick={submenu_membres} className="detail_class_submenu" id='membres' name='membres'>Membres </Button>
<Button variant="outlined" onClick={submenu_planning} className="detail_class_submenu" id='planning' name='planning'>Planning & Apprenant </Button> <Button variant="outlined" onClick={submenu_planning} className="detail_class_submenu" id='planning' name='planning'>Planning & Apprenant </Button>
@ -4711,10 +5262,12 @@ const Jury = (props) => {
{String(history_securite_read) === "1" && <Button variant="outlined" onClick={submenu_historique} className="detail_class_submenu" id='historique' name='historique'>Historique </Button>} {String(history_securite_read) === "1" && <Button variant="outlined" onClick={submenu_historique} className="detail_class_submenu" id='historique' name='historique'>Historique </Button>}
</div>} </div>
}
{String(submenu) === "detail_jury" && <div> {
String(submenu) === "detail_jury" && <div>
{String(display_jury) === "1" && String(add_one_jury) !== "1" && <div className="div_row session_data"> {String(display_jury) === "1" && String(add_one_jury) !== "1" && <div className="div_row session_data">
@ -5344,9 +5897,11 @@ const Jury = (props) => {
</div>} </div>}
</div>} </div>
}
{String(submenu) === "membre" && <div className="div_row "> {
String(submenu) === "membre" && <div className="div_row ">
<div className="div_row" style={{ paddingRight: '10px' }}> <div className="div_row" style={{ paddingRight: '10px' }}>
<div className="session_data"> <div className="session_data">
@ -5619,10 +6174,12 @@ const Jury = (props) => {
</div> </div>
</div>} </div>
}
{String(submenu) === "piece_jointe" && <div className="div_row "> {
String(submenu) === "piece_jointe" && <div className="div_row ">
<div className="div_row session_data"> <div className="div_row session_data">
<div className="div_row" style={{ "padding": "5px", 'paddingTop': '15px' }}> <div className="div_row" style={{ "padding": "5px", 'paddingTop': '15px' }}>
@ -5765,18 +6322,22 @@ const Jury = (props) => {
<div className="div_row" style={{ "border": "None" }}> <div className="div_row" style={{ "border": "None" }}>
&nbsp; &nbsp;
</div> </div>
</div>} </div>
}
{String(submenu) === "historique" && <div className="div_row "> {
String(submenu) === "historique" && <div className="div_row ">
<Module_Historique_Action related_collection="jury" <Module_Historique_Action related_collection="jury"
related_collection_recid={selected_id} related_collection_recid={selected_id}
read_access={props.read_access} read_access={props.read_access}
write_access={props.write_access} /> write_access={props.write_access} />
</div>} </div>
}
{String(submenu) === "planning" && <div className="div_row "> {
String(submenu) === "planning" && <div className="div_row ">
<nav style={{ "border": "None", "fontSize": "22px", "fontWeight": "600" }}> Réservation</nav> <nav style={{ "border": "None", "fontSize": "22px", "fontWeight": "600" }}> Réservation</nav>
<div style={{ "textAlign": "right", "float": "right", "width": "98%", "marginRight": "15px", paddingRight: '20px' }}> <div style={{ "textAlign": "right", "float": "right", "width": "98%", "marginRight": "15px", paddingRight: '20px' }}>
@ -6005,9 +6566,11 @@ const Jury = (props) => {
</div>} </div>}
</div>} </div>
}
{String(submenu) === "selection" && <div className="div_row session_data"> {
String(submenu) === "selection" && <div className="div_row session_data">
<Module_Jury_Selection_Apprenants related_target_collection={"groupe_inscription"} <Module_Jury_Selection_Apprenants related_target_collection={"groupe_inscription"}
related_target_collection_id={selected_id} related_target_collection_id={selected_id}
@ -6015,10 +6578,12 @@ const Jury = (props) => {
jury_id={selected_id} jury_id={selected_id}
class_id={"p_detail_class_id"} /> class_id={"p_detail_class_id"} />
</div>} </div>
}
<div className="div_row" ref={myRef_note_classemment} id="myRef_note_classemment"> &nbsp;</div> <div className="div_row" ref={myRef_note_classemment} id="myRef_note_classemment"> &nbsp;</div>
{String(submenu_detail_seance) === String("display_jury_seance") && String(selected_jury_cible) === "examen" {
String(submenu_detail_seance) === String("display_jury_seance") && String(selected_jury_cible) === "examen"
&& GetCurrentSession_result.length > 0 && && GetCurrentSession_result.length > 0 &&
<div style={{ "border": "None" }}> <div style={{ "border": "None" }}>
@ -6034,10 +6599,12 @@ const Jury = (props) => {
jury_seance_ue_id={selected_ue_id} jury_seance_ue_id={selected_ue_id}
/> />
</div>} </div>
}
{String(submenu_detail_seance) === String("display_jury_seance") && String(selected_jury_cible) === "soutenance" {
String(submenu_detail_seance) === String("display_jury_seance") && String(selected_jury_cible) === "soutenance"
&& GetCurrentSession_result.length > 0 && && GetCurrentSession_result.length > 0 &&
<div style={{ "border": "None", width: '100%' }}> <div style={{ "border": "None", width: '100%' }}>
@ -6054,8 +6621,9 @@ const Jury = (props) => {
aria-label="minimum height" aria-label="minimum height"
maxRows={10} maxRows={10}
//placeholder="Minimum 3 rows" //placeholder="Minimum 3 rows"
style={{ border: "1px solid gainsboro", width: '99%', padding: '2px', style={{
maxHeight:'15rem', height:'10rem', minHeight:'10rem', marginBottom:'3rem' border: "1px solid gainsboro", width: '99%', padding: '2px',
maxHeight: '15rem', height: '10rem', minHeight: '10rem', marginBottom: '3rem'
}} }}
value={p_detail_soutenance_sujet} value={p_detail_soutenance_sujet}
@ -6073,8 +6641,9 @@ const Jury = (props) => {
maxRows={10} maxRows={10}
//placeholder="Minimum 3 rows" //placeholder="Minimum 3 rows"
style={{ border: "1px solid gainsboro", width: '99%', padding: '2px', style={{
maxHeight:'15rem', height:'10rem', minHeight:'10rem', marginBottom:'3rem' border: "1px solid gainsboro", width: '99%', padding: '2px',
maxHeight: '15rem', height: '10rem', minHeight: '10rem', marginBottom: '3rem'
}} }}
value={p_detail_soutenance_observation} value={p_detail_soutenance_observation}
@ -6091,8 +6660,9 @@ const Jury = (props) => {
aria-label="minimum height" aria-label="minimum height"
rows={1} rows={1}
style={{ border: "1px solid gainsboro", width: '99%', padding: '2px', style={{
maxHeight:'3rem', height:'3rem', minHeight:'3rem', marginBottom:'3rem' border: "1px solid gainsboro", width: '99%', padding: '2px',
maxHeight: '3rem', height: '3rem', minHeight: '3rem', marginBottom: '3rem'
}} }}
value={p_detail_soutenance_note} value={p_detail_soutenance_note}
@ -6113,8 +6683,9 @@ const Jury = (props) => {
minRows={3} minRows={3}
maxRows={4} maxRows={4}
//placeholder="Minimum 3 rows" //placeholder="Minimum 3 rows"
style={{ border: "1px solid gainsboro", width: '99%', padding: '2px', style={{
maxHeight:'15rem', height:'10rem', minHeight:'10rem', marginBottom:'3rem' border: "1px solid gainsboro", width: '99%', padding: '2px',
maxHeight: '15rem', height: '10rem', minHeight: '10rem', marginBottom: '3rem'
}} }}
value={p_detail_soutenance_sujet} value={p_detail_soutenance_sujet}
onChange={(e) => { onChange={(e) => {
@ -6137,8 +6708,9 @@ const Jury = (props) => {
minRows={3} minRows={3}
maxRows={4} maxRows={4}
//placeholder="Minimum 3 rows" //placeholder="Minimum 3 rows"
style={{ border: "1px solid gainsboro", width: '99%', padding: '2px', style={{
maxHeight:'15rem', height:'10rem', minHeight:'10rem', marginBottom:'3rem' border: "1px solid gainsboro", width: '99%', padding: '2px',
maxHeight: '15rem', height: '10rem', minHeight: '10rem', marginBottom: '3rem'
}} }}
value={p_detail_soutenance_observation} value={p_detail_soutenance_observation}
onChange={(e) => { onChange={(e) => {
@ -6158,8 +6730,9 @@ const Jury = (props) => {
aria-label="minimum height" aria-label="minimum height"
rows={1} rows={1}
style={{ border: "1px solid gainsboro", width: '99%', padding: '2px', style={{
maxHeight:'3rem', height:'3rem', minHeight:'3rem', marginBottom:'3rem' border: "1px solid gainsboro", width: '99%', padding: '2px',
maxHeight: '3rem', height: '3rem', minHeight: '3rem', marginBottom: '3rem'
}} }}
value={p_detail_soutenance_note} value={p_detail_soutenance_note}
onChange={(e) => { onChange={(e) => {
@ -6207,7 +6780,8 @@ const Jury = (props) => {
</div>} </div>}
</div>} </div>
}
</div > </div >
); );
} }

View File

@ -2274,7 +2274,8 @@ const Module_Editique = (props) => {
</div> </div>
{(String(selected_convention_type) === "email" || String(selected_convention_type) === "pdf") && <div className="session_caract_Dialog" > Choisir une convocation {(String(selected_convention_type) === "email" || String(selected_convention_type) === "pdf") &&
<div className="session_caract_Dialog" > Choisir une convocation
<Autocomplete <Autocomplete
disablePortal disablePortal
name="event_dialog_version_convention" name="event_dialog_version_convention"

View File

@ -5586,7 +5586,7 @@ const Notes_Evaluation = (props) => {
<div style={{ "border": "None" }}> <div style={{ "border": "None" }}>
<nav style={{ "border": "None", "fontSize": "20px", "paddingTop": "5px", "paddingLeft": "5px" }}> Liste des apprenants ou Groupes d'apprenants </nav> <nav style={{ "border": "None", "fontSize": "20px", "paddingTop": "5px", "paddingLeft": "5px", fontFamily: 'DM Sans' }}> Liste des apprenants ou Groupes d'apprenants </nav>
<div className="div_row" style={{ "textAlign": "right", "marginTop": "0.5rem" }}> <div className="div_row" style={{ "textAlign": "right", "marginTop": "0.5rem" }}>
<Button className="bton_emarge" onClick={(event) => { <Button className="bton_emarge" onClick={(event) => {

View File

@ -2610,7 +2610,8 @@ const Partner = (props) => {
<Apprenant conntected_employee_id={conntected_employee_id} object_key={orderid} subdata={packs} <Apprenant conntected_employee_id={conntected_employee_id} object_key={orderid} subdata={packs}
read_access={check_user_acces_right("stagiaire", "read")} write_access={check_user_acces_right("stagiaire", "write")} read_access={check_user_acces_right("stagiaire", "read")} write_access={check_user_acces_right("stagiaire", "write")}
check_user_acces_right={check_user_acces_right} /> check_user_acces_right={check_user_acces_right}
formation_initiale={formation_initiale} />
</div> </div>
} }
@ -3401,7 +3402,8 @@ const Partner = (props) => {
<Apprenant conntected_employee_id={conntected_employee_id} object_key={orderid} subdata={packs} <Apprenant conntected_employee_id={conntected_employee_id} object_key={orderid} subdata={packs}
read_access={check_user_acces_right("stagiaire", "read")} write_access={check_user_acces_right("stagiaire", "write")} read_access={check_user_acces_right("stagiaire", "read")} write_access={check_user_acces_right("stagiaire", "write")}
check_user_acces_right={check_user_acces_right} /> check_user_acces_right={check_user_acces_right}
formation_initiale={formation_initiale}/>
</div> </div>
} }