branche_01062025
Cherif 2026-05-29 23:30:25 +02:00
parent 0e94c18fce
commit 4d7eec2f52
3 changed files with 766 additions and 89 deletions

View File

@ -9642,7 +9642,8 @@ const Apprenant = (props) => {
<div className="session_caract"> {String(JSON.parse(champ_spec).is_mandatory) === "1" && <font> <b> {JSON.parse(champ_spec).field_label} </b> </font>}
{String(JSON.parse(champ_spec).is_mandatory) !== "1" && <font> {JSON.parse(champ_spec).field_label} </font>} <br />
{String(JSON.parse(champ_spec).field_type) === "float" && <TextField
{String(JSON.parse(champ_spec).field_type) === "float" &&
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required
name={JSON.parse(champ_spec).field_name}

View File

@ -213,35 +213,47 @@ const Module_Session_Notes_Classement = (props) => {
{ field: 'ue_id', headerName: 'ue_id', hide: true },
{ field: 'semestre', headerName: 'Sem.', width: 80, hide: false, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />, },
{ field: 'inscription_id_nom', headerName: 'Nom', minwidth: 200, flex: 1, hide: false, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />, },
{ field: 'inscription_id_prenom', headerName: 'Prenom', minwidth: 200, flex: 1, hide: false, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />, },
{ field: 'diplome_id_code', headerName: 'diplome_id_code', minwidth: 200, flex: 1, hide: false, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />, },
{ field: 'domaine_competence_id_code', headerName: 'domaine_competence_id_code', minwidth: 200, flex: 1, hide: false, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />, },
{ field: 'ue_id_code', headerName: 'ue_id_code', minwidth: 200, flex: 1, hide: false, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />, },
{ field: 'diplome_id_code', headerName: 'Diplome', minwidth: 200, flex: 1, hide: false, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />, },
{ field: 'domaine_competence_id_code', headerName: 'Dom. compét.', minwidth: 200, flex: 1, hide: false, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />, },
{ field: 'ue_id_code', headerName: 'UE', minwidth: 200, flex: 1, hide: false, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />, },
{
field: 'moyenne_avant_coef', headerName: 'moyenne_avant_coef', minwidth: 100, flex: 1, hide: false, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />,
field: 'moyenne_avant_coef', headerName: 'Moyenne (sans Coef)', minwidth: 100, flex: 1, hide: false, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />,
},
{
field: 'coef', headerName: 'coef', minwidth: 100, flex: 1, hide: false, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />,
field: 'coef', headerName: 'Coef', minwidth: 100, flex: 1, hide: false, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />,
},
{
field: 'moyenne_apres_coef', headerName: 'moyenne_apres_coef', minwidth: 100, flex: 1, hide: false, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />,
field: 'moyenne_apres_coef', headerName: 'Moyenne (avec Coef)', minwidth: 100, flex: 1, hide: false, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />,
},
{ field: 'ue_credit_ects', headerName: 'ue_credit_ects', minwidth: 100, flex: 1, hide: false, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />, },
{ field: 'ue_credit_ects', headerName: 'ECTS', minwidth: 100, flex: 1, hide: false, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />, },
{ field: 'ue_seuil_validation', headerName: 'ue_seuil_validation', minwidth: 100, flex: 1, hide: false, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />, },
{ field: 'is_eu_validated', headerName: 'ue_cis_eu_validatedredit_ects', minwidth: 100, flex: 1, hide: false, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />, },
{ field: 'ue_seuil_validation', headerName: 'Seuil. V', minwidth: 100, flex: 1, hide: false, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />, },
{
field: 'is_eu_validated', headerName: 'Validé', maxWidth: 100, renderCell: (params) => <ExpandableCell_50 {...params} />,
renderCell: (cellValues) => {
return (
<div style={{ paddingLeft: "5px", paddingRight: "15px", "display": "block", wordBreak: "break-all" }}>
{cellValues.row.is_eu_validated && String(cellValues.row.is_eu_validated) === "1" && "Oui"}
{cellValues.row.is_eu_validated && String(cellValues.row.is_eu_validated) !== "1" && "Non"}
</div>
);
}
},
{ field: 'jury_note', headerName: 'Note Jury', width: 200, editable: false, renderCell: (params) => <ExpandableCell_50_bg_hiligt_red_color {...params} />, align: "center", },
{ field: 'jury_observation', headerName: 'Observ. Jury', width: 200, editable: false, renderCell: (params) => <ExpandableCell_50_bg_hiligt_red_color {...params} />, align: "left", },
@ -637,6 +649,38 @@ const Module_Session_Notes_Classement = (props) => {
{ field: 'regle_calcul', headerName: 'regle_calcul', hide: true },
]
const columns_list_Detailled_Note_After_UE_Calculation = [
{ field: 'id', headerName: 'id', hide: true },
{ field: '_id', headerName: '_id', hide: true },
{ field: 'session_id', headerName: 'session_id', hide: true },
{ field: 'inscription_id', headerName: 'inscription_id', hide: true },
{ field: 'diplome_id', headerName: 'diplome_id', hide: true },
{ field: 'domaine_competence_id', headerName: 'domaine_competence_id', hide: true },
{ field: 'evaluation_id', headerName: 'evaluation_id', hide: true },
{ field: 'class_id', headerName: 'class_id', hide: true },
{ field: 'class_eu_id', headerName: 'class_eu_id', hide: true },
{ field: 'semestre', headerName: 'Sem.', width: 80, hide: false, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />, },
{ field: 'inscription_id_nom', headerName: 'Nom', minwidth: 200, flex: 1, hide: false, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />, },
{ field: 'inscription_id_prenom', headerName: 'Prenom', minwidth: 200, flex: 1, hide: false, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />, },
{ field: 'inscription_id_mail', headerName: 'Mail', minwidth: 200, flex: 1, hide: false, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />, },
{ field: 'class_eu_code', headerName: 'UE', minwidth: 200, flex: 1, hide: false, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />, },
{ field: 'diplome_id_code', headerName: 'Diplome', minwidth: 100, flex: 1, hide: false, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />, },
{ field: 'domaine_competence_id_code', headerName: 'Dom. Compét', minwidth: 100, flex: 1, hide: false, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />, },
{ field: 'evaluation_code', headerName: 'Evaluation', minwidth: 100, flex: 1, hide: false, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />, },
{ field: 'note', headerName: 'Note', minwidth: 100, flex: 1, hide: false, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />, },
{ field: 'eval_date_heure_debut', headerName: 'Du', minwidth: 100, flex: 1, hide: false, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />, },
{ field: 'eval_date_heure_fin', headerName: 'Au', minwidth: 100, flex: 1, hide: false, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />, },
]
const myRef_head = useRef(null);
const [New_Getall_Session_Detail_Final_Note_Classement_result, setNew_Getall_Session_Detail_Final_Note_Classement_result] = useState([]);
@ -1383,6 +1427,8 @@ const Module_Session_Notes_Classement = (props) => {
Getall_TrainingSession();
Getall_Detail_Note_of_BC_Diplome_UE();
}, [])
@ -1857,6 +1903,7 @@ const Module_Session_Notes_Classement = (props) => {
const New_Option_Filter = [
{ "id": "ue_id", "label": "UE/matière", "value": "ue_id" },
{ "id": "inscrit_id", "label": "Apprenant ", "value": "inscrit_id" },
{ "id": "semestre", "label": "Semestre ", "value": "semestre" },
{ "id": "", "label": "", "value": "" },
{ "id": "1", "label": "", "value": "1" }, // Cette ligne pour couvrir l'ajout d'une ligne de filter. C'est fait expres.
]
@ -2138,13 +2185,13 @@ const Module_Session_Notes_Classement = (props) => {
const stored_cookie = getCookie('tokenmysypart');
form.append("token", stored_cookie);
form.append("jury_id", props.jury_id);
form.append("tab_inscriptions_ids", selected_inscription_id_for_jury);
form.append("tab_ids", working_cellValues.row._id);
form.append("jury_observation", p_detail_jury_observation);
form.append("jury_note", p_detail_jury_note);
form.append("jury_validation", p_detail_jury_validation);
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Add_Update_Inscrit_Jury_Promo_Decision/";
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Update_work_calcul_moyenne_by_ue_bc_diplome_session_semestre";
setLoading(true);
@ -2158,7 +2205,9 @@ const Module_Session_Notes_Classement = (props) => {
setUpdate_Jury_Promo_List_Inscrit_api("true");
setUpdate_Jury_Promo_List_Inscrit_result(res.data.message);
Getall_Session_Final_Note_Classement();
// Getall_Session_Final_Note_Classement();
Getall_Session_Final_Note_Classement_By_BC_Diplome_UE();
// alert(res.data.message);
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
@ -2178,7 +2227,10 @@ const Module_Session_Notes_Classement = (props) => {
console.log('UpdateStagiaireData : Not good man :( Update_Jury_Promo_List_Inscrit = ' + error);
setUpdate_Jury_Promo_List_Inscrit_api("false");
alert(" Impossible d'ajouter ou mettre à jour la décision du jury ");
setdisplay_alert_mysy("1");
setalert_message(" Impossible d'ajouter ou mettre à jour la décision du jury ");
setalert_type("error");
})
}
@ -2837,6 +2889,7 @@ const Module_Session_Notes_Classement = (props) => {
const [selected_calculation_diplome, setselected_calculation_diplome] = useState("");
const [selected_calculation_rattrapage, setselected_calculation_rattrapage] = useState("0");
const [selected_calculation_semestre, setselected_calculation_semestre] = useState("");
const fixedVal_domaine_compet = [];
const [selected_calculation_domaine_compet, setselected_calculation_domaine_compet] = useState([...fixedVal_domaine_compet]);
@ -2856,23 +2909,39 @@ const Module_Session_Notes_Classement = (props) => {
var form = new FormData();
//form.append("token","K3cw63eKokKSbV4spjQ48SUNnfy80yrXfA");
if (selected_calculation_diplome === "") {
setdisplay_alert_mysy("1");
setalert_message(" Vous devez sélectionner un diplôme");
setalert_type("error");
return;
}
if (selected_calculation_semestre === "") {
setdisplay_alert_mysy("1");
setalert_message(" Vous devez saisir le semestre");
setalert_type("error");
return;
}
const stored_cookie = getCookie('tokenmysypart');
form.append("token", stored_cookie);
form.append("class_id", props.session_class_id);
form.append("session_id", props.related_collection_recid);
form.append("semestre", "1");
form.append("semestre", selected_calculation_semestre);
var tab_domaine_compet_id = []
for (var i = 0; i < selected_calculation_domaine_compet.length; i++) {
tab_domaine_compet_id.push(selected_calculation_domaine_compet[i]._id)
}
form.append("tab_domaine_competence_ids", tab_domaine_compet_id);
if (selected_calculation_domaine_compet.length > 0)
form.append("tab_domaine_competence_ids", tab_domaine_compet_id);
form.append("diplome_id", selected_calculation_diplome);
form.append("rattrapage", selected_calculation_rattrapage);
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Calcul_Moyen_evaluation_participant_note_BC_UE";
@ -2959,11 +3028,13 @@ const Module_Session_Notes_Classement = (props) => {
var ue_id = JSON.parse(x).ue_id;
var inscription_id_nom = JSON.parse(x).inscription_id_nom;
var inscription_id_prenom = JSON.parse(x).inscription_id_prenom;
var inscription_id_mail = JSON.parse(x).inscription_id_mail;
var inscription_id_mail = JSON.parse(x).inscription_id_mail;
var diplome_id_code = JSON.parse(x).diplome_id_code;
var domaine_competence_id_code = JSON.parse(x).domaine_competence_id_code;
var ue_id_code = JSON.parse(x).ue_id_code;
var semestre = JSON.parse(x).semestre;
var moyenne_avant_coef = JSON.parse(x).moyenne_avant_coef;
var coef = JSON.parse(x).coef;
var moyenne_apres_coef = JSON.parse(x).moyenne_apres_coef;
@ -2991,7 +3062,7 @@ const Module_Session_Notes_Classement = (props) => {
"ue_id": ue_id,
"inscription_id_nom": inscription_id_nom,
"inscription_id_prenom": inscription_id_prenom,
"inscription_id_mail": inscription_id_mail,
"inscription_id_mail": inscription_id_mail,
"diplome_id_code": diplome_id_code,
"domaine_competence_id_code": domaine_competence_id_code,
@ -3003,7 +3074,7 @@ const Module_Session_Notes_Classement = (props) => {
"ue_credit_ects": ue_credit_ects,
"ue_seuil_validation": ue_seuil_validation,
"is_eu_validated": is_eu_validated,
"semestre": semestre,
"jury_note": jury_note,
"jury_observation": jury_observation,
@ -3016,7 +3087,7 @@ const Module_Session_Notes_Classement = (props) => {
setNew_Getall_Session_Final_Note_Classement_By_BC_Diplome_UE_result(new_data2);
// console.log(" ## new_data2 = ", new_data2)
// console.log(" ## new_data2 = ", new_data2)
}
@ -3042,6 +3113,160 @@ const Module_Session_Notes_Classement = (props) => {
const [New_Getall_Detail_Note_of_BC_Diplome_UE_result, setNew_Getall_Detail_Note_of_BC_Diplome_UE_result] = useState([]);
const [Getall_Detail_Note_of_BC_Diplome_UE_api, setGetall_Detail_Note_of_BC_Diplome_UE_api] = useState();
const [Getall_Detail_Note_of_BC_Diplome_UE_message, setGetall_Detail_Note_of_BC_Diplome_UE_message] = useState();
const [Getall_Detail_Note_of_BC_Diplome_UE_result, setGetall_Detail_Note_of_BC_Diplome_UE_result] = useState([]);
function Getall_Detail_Note_of_BC_Diplome_UE(event) {
var form = new FormData();
const stored_cookie = getCookie('tokenmysypart');
form.append("token", stored_cookie);
form.append("tab_session_id", props.related_collection_recid);
// Recuperation des parametres
var filtre1 = p_filtre1;
var filtre2 = p_filtre2;
var filtre1_value = "";
var filtre2_value = "";
// Recuperation des valeurs de filtres
if (p_filtre1_value && String(p_filtre1) === "ue_id") {
filtre1_value = p_filtre1_value;
form.append("tab_ue_id", filtre1_value);
}
else if (p_filtre1_value && String(p_filtre1) === "inscrit_id") {
filtre1_value = p_filtre1_value;
form.append("tab_inscrit_id", filtre1_value);
}
else if (p_filtre1_value && String(p_filtre1) === "semestre") {
filtre1_value = p_filtre1_value;
form.append("semestre", filtre1_value);
}
if (p_filtre2_value && String(p_filtre2) === "ue_id") {
filtre2_value = p_filtre2_value;
form.append("tab_ue_id", filtre2_value);
}
else if (p_filtre2_value && String(p_filtre2) === "inscrit_id") {
filtre2_value = p_filtre2_value;
form.append("tab_inscrit_id", filtre2_value);
}
else if (p_filtre2_value && String(p_filtre2) === "semestre") {
filtre2_value = p_filtre2_value;
form.append("semestre", filtre2_value);
}
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_List_Detailled_Note_After_UE_Calculation_With_Filter";
axios.post(myurl, form).then(res => {
if (String(res.data.status) === String("true")) {
// console.log(" In Getall_Detail_Note_of_BC_Diplome_UE res.data.status = " + res.data.status);
// console.log(" GRRR In Getall_Detail_Note_of_BC_Diplome_UE res.data.message r_class = " + res.data.message);
setGetall_Detail_Note_of_BC_Diplome_UE_api("true");
setGetall_Detail_Note_of_BC_Diplome_UE_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 session_id = JSON.parse(x).session_id;
var inscription_id = JSON.parse(x).inscription_id;
var diplome_id = JSON.parse(x).diplome_id;
var domaine_competence_id = JSON.parse(x).domaine_competence_id;
var class_id = JSON.parse(x).class_id;
var class_eu_id = JSON.parse(x).class_eu_id;
var class_eu_code = JSON.parse(x).class_eu_code;
var evaluation_id = JSON.parse(x).evaluation_id;
var inscription_id_nom = JSON.parse(x).inscription_id_nom;
var inscription_id_prenom = JSON.parse(x).inscription_id_prenom;
var inscription_id_mail = JSON.parse(x).inscription_id_mail;
var diplome_id_code = JSON.parse(x).diplome_id_code;
var domaine_competence_id_code = JSON.parse(x).domaine_competence_id_code;
var evaluation_code = JSON.parse(x).evaluation_code;
var note = JSON.parse(x).note;
var eval_date_heure_debut = JSON.parse(x).eval_date_heure_debut;
var eval_date_heure_fin = JSON.parse(x).eval_date_heure_fin;
var semestre = JSON.parse(x).semestre;
//---
var node = {
"_id": local_id,
"id": localid,
"session_id": session_id,
"label": local_id,
"inscription_id": inscription_id,
"diplome_id": diplome_id,
"domaine_competence_id": domaine_competence_id,
"class_id": class_id,
"class_eu_id": class_eu_id,
"class_eu_code": class_eu_code,
"inscription_id_nom": inscription_id_nom,
"inscription_id_prenom": inscription_id_prenom,
"inscription_id_mail": inscription_id_mail,
"diplome_id_code": diplome_id_code,
"evaluation_code": evaluation_code,
"domaine_competence_id_code": domaine_competence_id_code,
"note": note,
"eval_date_heure_debut": eval_date_heure_debut,
"eval_date_heure_fin": eval_date_heure_fin,
"semestre": semestre,
};
new_data2.push(node);
});
setNew_Getall_Detail_Note_of_BC_Diplome_UE_result(new_data2);
// console.log(" ## new_data2 = ", new_data2)
}
else {
setGetall_Detail_Note_of_BC_Diplome_UE_api("false");
setGetall_Detail_Note_of_BC_Diplome_UE_message(res.data.message);
// alert(res.data.message)
setdisplay_alert_mysy("1");
setalert_message(res.data.message);
setalert_type("error");
}
}).catch((error) => {
console.warn('Not good man :( Getall_Detail_Note_of_BC_Diplome_UE = ', error);
setGetall_Detail_Note_of_BC_Diplome_UE_api("false");
// alert(" Impossible de recuperer la liste des évaluations");
setdisplay_alert_mysy("1");
setalert_message(" Impossible de recuperer les notes detaillées ");
setalert_type("error");
//setmyApimyApiMessage("")
})
}
return (
<div className="module_session_note_classement">
@ -3093,11 +3318,9 @@ const Module_Session_Notes_Classement = (props) => {
>
<DialogTitle style={{ cursor: 'move', background: '#fff', fontFamily: 'DM Sans' }} id="draggable-dialog-title"> Observation</DialogTitle>
<DialogTitle style={{ cursor: 'move', background: '#fff', fontFamily: 'DM Sans' }} id="draggable-dialog-title"> Calcul des moyennes</DialogTitle>
<DialogContent className="DialogContent_width" style={{ "minHeight": "20rem" }}>
<DialogContentText>
{Dialog_1_message}
</DialogContentText>
<div className="session_caract_Dialog" > <b> Diplome </b> <br />
@ -3142,7 +3365,46 @@ const Module_Session_Notes_Classement = (props) => {
</div>
<div className="session_caract_Dialog" > <b> Bloc de compétence </b> <br />
<div className="session_caract_Dialog" > <b> Semestre </b> <br />
<TextField
name="semestre"
type="number"
inputProps={{ min: "1", max: "20", step: "1" }}
InputLabelProps={{
shrink: true,
}}
className="disabled_style"
value={selected_calculation_semestre}
onChange={(e) => {
setselected_calculation_semestre(e.target.value);
}
}
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
sx={{
"& .MuiOutlinedInput-root": {
"& fieldset": {
border: "solid #e8eef6 1px;",
},
"&:hover fieldset": {
border: "solid #e8eef6 1px;",
},
"&.Mui-focused fieldset": {
border: "solid #e8eef6 1px;",
},
},
}}
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
/>
}
/>
</div>
<div className="session_caract_Dialog" > Bloc de compétence <br />
{New_Getall_Partner_Domaine_Competence_result && New_Getall_Partner_Domaine_Competence_result.length > 0 && <Autocomplete
disablePortal
@ -3183,7 +3445,7 @@ const Module_Session_Notes_Classement = (props) => {
</div>
<div className="session_caract_Dialog" > <b> Rattrapge </b> <br />
<div className="session_caract_Dialog" > Rattrapge <br />
{New_Option_Oui_Non && New_Option_Oui_Non.length > 0 && <Autocomplete
disablePortal
name="is_mandatory"
@ -3225,6 +3487,8 @@ const Module_Session_Notes_Classement = (props) => {
</DialogContent>
<DialogActions>
@ -3720,6 +3984,7 @@ const Module_Session_Notes_Classement = (props) => {
}} className="detail_class_submenu" id='calcul_moyenne' name='calcul_moyenne'> Classement Gle </Button>
<Button variant="outlined" onClick={(e) => {
Getall_Detail_Note_of_BC_Diplome_UE();
setvue_note("detail_note");
}} className="detail_class_submenu" id='calcul_moyenne' name='calcul_moyenne'> Détail Notes </Button>
</nav>
@ -3741,6 +4006,7 @@ const Module_Session_Notes_Classement = (props) => {
<nav style={{ textAlign: 'right', width: '50%', float: 'left' }}>
<Button variant="outlined" onClick={(e) => {
setselected_calculation_semestre("");
Getall_Parter_config_diplome();
Getall_Partner_Domaine_Competence();
@ -3754,7 +4020,7 @@ const Module_Session_Notes_Classement = (props) => {
</nav>
</div>
{/* <Box
{/* <Box
sx={{
height: 500,
width: '100%',
@ -3985,6 +4251,7 @@ const Module_Session_Notes_Classement = (props) => {
ue_credit_ects: (item).ue_credit_ects,
ue_seuil_validation: (item).ue_seuil_validation,
is_eu_validated: (item).is_eu_validated,
semestre: (item).semestre,
jury_note: (item).jury_note,
@ -4264,6 +4531,46 @@ const Module_Session_Notes_Classement = (props) => {
}
{p_filtre1 && String(p_filtre1) === "semestre" &&
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required
name="filtre1_value"
id="filtre1_value"
type="number"
inputProps={{ min: "1", max: "20", step: "1" }}
InputLabelProps={{
shrink: true,
}}
className="disabled_style"
onChange={(e) => {
setp_filtre1_value(e.target.value);
}}
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
sx={{
"& .MuiOutlinedInput-root": {
"& fieldset": {
border: "solid #e8eef6 1px;",
},
"&:hover fieldset": {
border: "solid #e8eef6 1px;",
},
"&.Mui-focused fieldset": {
border: "solid #e8eef6 1px;",
},
},
}}
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
/>
}
/>}
</div>
{p_filtre1 && <div className='filter_bton_add'>
<Tooltip className="tooltip_css" id="my-tooltip01" style={{ "fontSize": "12px" }} />
@ -4398,6 +4705,47 @@ const Module_Session_Notes_Classement = (props) => {
}
/>
}
{String(p_filtre2).length > 2 && String(p_filtre2) === "semestre" &&
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required
name="filtre2_value"
id="filtre2_value"
type="number"
inputProps={{ min: "1", max: "20", step: "1" }}
InputLabelProps={{
shrink: true,
}}
className="disabled_style"
onChange={(e) => {
setp_filtre2_value(e.target.value);
}}
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
sx={{
"& .MuiOutlinedInput-root": {
"& fieldset": {
border: "solid #e8eef6 1px;",
},
"&:hover fieldset": {
border: "solid #e8eef6 1px;",
},
"&.Mui-focused fieldset": {
border: "solid #e8eef6 1px;",
},
},
}}
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
/>
}
/>}
</div>
{String(p_filtre2).length > 2 && <div className='filter_bton_add' >
@ -4530,8 +4878,10 @@ const Module_Session_Notes_Classement = (props) => {
<Button variant="contained" className="bton_enreg"
onClick={(event) => {
Getall_Session_UE_Final_Note_Classement();
Getall_Session_Detail_Final_Note_Classement();
/* Getall_Session_UE_Final_Note_Classement();
Getall_Session_Detail_Final_Note_Classement();*/
Getall_Detail_Note_of_BC_Diplome_UE();
}} >
Appliquer
@ -4551,7 +4901,8 @@ const Module_Session_Notes_Classement = (props) => {
{/******* End filtre */}
<div className="div_row" style={{ paddingRight: '10px' }}>
{/*} <div className="div_row" style={{ paddingRight: '10px' }}>
<div className="session_data">
<div style={{ "border": "None" }}>
@ -4594,6 +4945,198 @@ const Module_Session_Notes_Classement = (props) => {
},
"& .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",
},
'& .line--statut--isvalide': {
backgroundColor: '#ABEBC6',
color: "#0a2a4d",
fontWeight: '600',
},
[`& .${gridClasses.cell}`]: {
py: 1,
},
}}
>
<DataGrid
checkboxSelection
onSelectionModelChange={(newSelectionModel) => {
setselectionModel_note_UE_classement(newSelectionModel);
if (newSelectionModel.length !== 1) {
}
}}
selectionModel={selectionModel_note_UE_classement}
localeText={frFR.components.MuiDataGrid.defaultProps.localeText}
rows={Getall_Session_UE_Final_Note_Classement_result.map((item, index) => (
{
id: index,
_id: JSON.parse(item)._id,
inscription_id: JSON.parse(item).inscription_id,
session_id: JSON.parse(item).session_id,
type_eval: JSON.parse(item).type_eval,
ue_id: JSON.parse(item).ue_id,
class_id: JSON.parse(item).class_id,
note_td: JSON.parse(item).note_td,
note_tp: JSON.parse(item).note_tp,
note_examen: JSON.parse(item).note_examen,
note_finale: JSON.parse(item).note_finale,
rang: JSON.parse(item).rang,
credit: JSON.parse(item).credit,
regle_calcul: JSON.parse(item).regle_calcul,
seuil_validation: JSON.parse(item).seuil_validation,
ue_coefficient: JSON.parse(item).ue_coefficient,
ue_validation: JSON.parse(item).ue_validation,
ue_id_code: JSON.parse(item).ue_id_code,
class_id_external_code: JSON.parse(item).class_id_external_code,
inscription_id_mail: JSON.parse(item).inscription_id_mail,
inscription_id_nom: JSON.parse(item).inscription_id_nom,
inscription_id_prenom: JSON.parse(item).inscription_id_prenom,
jury_note: JSON.parse(item).jury_note,
jury_observation: JSON.parse(item).jury_observation,
jury_validation: JSON.parse(item).jury_validation,
moyenne_session_ue: JSON.parse(item).moyenne_session_ue,
}
))}
columns={columns_list_evaluation_note_classement_final}
pageSize={10}
className="datagridclass"
onRowDoubleClick={(newSelectionModel) => {
}}
rowsPerPageOptions={[10]}
disableSelectionOnClick
components={{
Toolbar: CustomToolbar
}}
componentsProps={{ toolbar: { data_colums: columns_list_evaluation_note_classement_final } }}
//sx={datagridSx}
getCellClassName={(params) => {
}}
getRowClassName={(params) => {
// Pour la gestion de la couleur de zone double cliquée
if (String(params.row.ue_validation) === "1") {
return 'line--statut--isvalide';
}
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"}
sx={{
"& .MuiDataGrid-cellContent": {
minHeight: 50,
}
}}
/>
</Box>
<br />
</div>
</div>
</div>
</div>*/}
</div>}
{vue_note && String(vue_note) === "detail_note" && <div style={{ "border": "None" }}>
<div className="div_row" style={{ paddingRight: '10px' }}>
<div className="session_data">
<div style={{ "border": "None" }}>
<div style={{ height: 550, width: '100%', paddingRight: '5px' }}>
&nbsp;
<nav style={{ textAlign: 'center' }}>zzzzzz detail note</nav>
<Box
sx={{
height: 500,
width: '100%',
paddingRight: '1px',
// Gestion des cellule a distance ou presentiel
'& .cell--distantiel': {
backgroundColor: '#AFE1AF',
color: "#0a2a4d",
},
'& .cell--presentiel': {
backgroundColor: '#AFE1AF',
color: "#0a2a4d",
},
// gestion couleur des lignes avec le statut d'inscription
'& .line--statut--annule': {
backgroundColor: '#D8D8D8',
color: 'white',
},
'& .line--statut--inscrit': {
backgroundColor: '#CEF6D8',
color: "#0a2a4d",
},
'& .line--statut--preinscrit': {
backgroundColor: '#F7F2E0',
color: "#0a2a4d",
},
/*"& .MuiDataGrid-virtualScrollerRenderZone": {
"& .MuiDataGrid-row": {
"&:nth-child(2n)": { backgroundColor: "rgba(235, 235, 235, .7)" }
@ -4646,42 +5189,40 @@ const Module_Session_Notes_Classement = (props) => {
selectionModel={selectionModel_note_UE_classement}
localeText={frFR.components.MuiDataGrid.defaultProps.localeText}
rows={Getall_Session_UE_Final_Note_Classement_result.map((item, index) => (
rows={Getall_Detail_Note_of_BC_Diplome_UE_result.map((item, index) => (
{
id: index,
_id: JSON.parse(item)._id,
inscription_id: JSON.parse(item).inscription_id,
session_id: JSON.parse(item).session_id,
type_eval: JSON.parse(item).type_eval,
ue_id: JSON.parse(item).ue_id,
inscription_id: JSON.parse(item).inscription_id,
diplome_id: JSON.parse(item).diplome_id,
domaine_competence_id: JSON.parse(item).domaine_competence_id,
evaluation_id: JSON.parse(item).evaluation_id,
class_id: JSON.parse(item).class_id,
note_td: JSON.parse(item).note_td,
note_tp: JSON.parse(item).note_tp,
note_examen: JSON.parse(item).note_examen,
note_finale: JSON.parse(item).note_finale,
rang: JSON.parse(item).rang,
credit: JSON.parse(item).credit,
class_eu_id: JSON.parse(item).class_eu_id,
regle_calcul: JSON.parse(item).regle_calcul,
seuil_validation: JSON.parse(item).seuil_validation,
ue_coefficient: JSON.parse(item).ue_coefficient,
ue_validation: JSON.parse(item).ue_validation,
class_eu_code: JSON.parse(item).class_eu_code,
ue_id_code: JSON.parse(item).ue_id_code,
class_id_external_code: JSON.parse(item).class_id_external_code,
inscription_id_mail: JSON.parse(item).inscription_id_mail,
inscription_id_nom: JSON.parse(item).inscription_id_nom,
inscription_id_prenom: JSON.parse(item).inscription_id_prenom,
inscription_id_mail: JSON.parse(item).inscription_id_mail,
jury_note: JSON.parse(item).jury_note,
jury_observation: JSON.parse(item).jury_observation,
jury_validation: JSON.parse(item).jury_validation,
diplome_id_code: JSON.parse(item).diplome_id_code,
domaine_competence_id_code: JSON.parse(item).domaine_competence_id_code,
evaluation_code: JSON.parse(item).evaluation_code,
note: JSON.parse(item).note,
eval_date_heure_debut: JSON.parse(item).eval_date_heure_debut,
eval_date_heure_fin: JSON.parse(item).eval_date_heure_fin,
semestre: JSON.parse(item).semestre,
moyenne_session_ue: JSON.parse(item).moyenne_session_ue,
}
))}
columns={columns_list_evaluation_note_classement_final}
columns={columns_list_Detailled_Note_After_UE_Calculation}
pageSize={10}
className="datagridclass"
@ -4747,12 +5288,15 @@ const Module_Session_Notes_Classement = (props) => {
</div>
</div>}
{vue_note && String(vue_note) === "detail_note" && <div style={{ "border": "None" }}>
<div className="div_row">
<div className="div_row" style={{ paddingRight: '10px' }}>
-----------
</div>
{/*<div className="div_row" style={{ paddingRight: '10px' }}>
<div className="session_data">
<div style={{ "border": "None" }}>
@ -4795,11 +5339,7 @@ const Module_Session_Notes_Classement = (props) => {
},
/*"& .MuiDataGrid-virtualScrollerRenderZone": {
"& .MuiDataGrid-row": {
"&:nth-child(2n)": { backgroundColor: "rgba(235, 235, 235, .7)" }
}
},*/
"& .MuiDataGrid-columnHeaders": {
backgroundColor: "#dfe8f2",
color: "#0a2a4d",
@ -4830,12 +5370,9 @@ const Module_Session_Notes_Classement = (props) => {
checkboxSelection
onSelectionModelChange={(newSelectionModel) => {
setselectionModel_detail_note_finale_classement(newSelectionModel);
/*if (newSelectionModel.length === 1)
handleClick_edit_employee_From_Line(newSelectionModel);*/
if (newSelectionModel.length !== 1) {
/* setsubmenu();
setdisplay_detail_employe();
setadd_One_Employee();*/
}
}}
selectionModel={selectionModel_detail_note_finale_classement}
@ -4875,24 +5412,14 @@ const Module_Session_Notes_Classement = (props) => {
onRowDoubleClick={(newSelectionModel) => {
/* Getall_Evaluation_Participant_List(newSelectionModel.row._id);
setselected_id(newSelectionModel.row._id);
setgridline_id(newSelectionModel.row.id);
handleClick_edit_evaluation_From_Line(newSelectionModel.row.id);
setselectionModel_evalutions_participant([]);
settab_convention_pieces_jointes_result([]);*/
}}
rowsPerPageOptions={[10]}
disableSelectionOnClick
/* components={{
Toolbar: GridToolbar,
}}*/
components={{
Toolbar: CustomToolbar
@ -4938,7 +5465,7 @@ const Module_Session_Notes_Classement = (props) => {
</div>
</div>
</div> */}
</div>}
</div >

View File

@ -271,6 +271,12 @@ const Notes_Evaluation = (props) => {
}
},
{
field: 'semestre', headerName: 'Sem.', Width: 80, renderCell: (params) => <ExpandableCell_50 {...params} />,
},
{ field: 'statut', headerName: 'statut', minWidth: 200, flex: 1, renderCell: (params) => <ExpandableCell_50 {...params} />, },
@ -873,6 +879,13 @@ const Notes_Evaluation = (props) => {
setp_detail_rattrapage("");
}
if (mylocal_evaluation.semestre) {
setp_detail_semestre(mylocal_evaluation.semestre);
} else {
setp_detail_semestre("");
}
// iiiiiii
if (mylocal_evaluation.tab_all_ue_diplome) {
setNew_Get_List_UE_From_Session_Id_Diplome_result(mylocal_evaluation.tab_all_ue_diplome);
@ -1325,6 +1338,7 @@ const Notes_Evaluation = (props) => {
var local_eval_type_notation = JSON.parse(x).type_notation;
var local_eval_max_note = JSON.parse(x).max_note;
var local_semestre = JSON.parse(x).semestre;
//---
var node = {
@ -1340,6 +1354,7 @@ const Notes_Evaluation = (props) => {
"eval_date_heure_fin": local_eval_date_heure_fin,
"max_note": local_eval_max_note,
"type_notation": local_eval_type_notation,
"semestre": local_semestre,
};
new_data2.push(node);
@ -1359,6 +1374,8 @@ const Notes_Evaluation = (props) => {
"eval_date_heure_fin": "",
"max_note": "",
"type_notation": "",
"semestre": "",
};
new_data2.push(node);
@ -1694,7 +1711,7 @@ const Notes_Evaluation = (props) => {
setLoading(false);
if (String(res.data.status) === String("true")) {
//console.log(" In Get_List_UE_From_Class_Id res.data.status = " + res.data.status);
console.log(" In Get_List_UE_From_Class_Id res.data.message r_class = " + res.data.message);
// console.log(" In Get_List_UE_From_Class_Id res.data.message r_class = " + res.data.message);
setGet_List_UE_From_Class_Id_api("true");
setGet_List_UE_From_Class_Id_result(res.data.message);
@ -1722,6 +1739,9 @@ const Notes_Evaluation = (props) => {
var local_domaine_competence_id = JSON.parse(x).domaine_competence_id;
var local_domaine_competence_code = JSON.parse(x).domaine_competence_code;
var local_semestre = JSON.parse(x).semestre;
//---
var node = {
@ -1737,6 +1757,7 @@ const Notes_Evaluation = (props) => {
"domaine_competence_id": local_domaine_competence_id,
"domaine_competence_code": local_domaine_competence_code,
"semestre": local_semestre,
};
@ -1752,6 +1773,8 @@ const Notes_Evaluation = (props) => {
"internal_url": local_internal_url,
"domaine_competence_id": local_domaine_competence_id,
"domaine_competence_code": local_domaine_competence_code,
"semestre": local_semestre,
};
tab_tmp_storage_ue_id.push(local_id)
new_data2_Distinct_UE.push(node_distinct)
@ -1774,6 +1797,7 @@ const Notes_Evaluation = (props) => {
"diplome_code": "",
"domaine_competence_id": "",
"domaine_competence_code": "",
"semestre": "",
};
new_data2.push(node);
@ -1788,6 +1812,7 @@ const Notes_Evaluation = (props) => {
"internal_url": "",
"domaine_competence_id": "",
"domaine_competence_code": "",
"semestre": "",
};
new_data2_Distinct_UE.push(node_distinct)
@ -2134,7 +2159,7 @@ const Notes_Evaluation = (props) => {
})
}
useEffect(() => {
sethistory_securite_read(props.check_user_acces_right("historique", "read"))
@ -2338,6 +2363,7 @@ const Notes_Evaluation = (props) => {
form.append("domaine_competence_id", p_detail_class_eu_domaine_competence_id);
form.append("rattrapage", p_detail_rattrapage);
form.append("semestre", p_detail_semestre);
// console.log(" ### scope_diplome == ", scope_diplome)
@ -2594,6 +2620,8 @@ const Notes_Evaluation = (props) => {
const [p_detail_rattrapage, setp_detail_rattrapage] = React.useState("0");
const [p_detail_semestre, setp_detail_semestre] = React.useState("");
const [p_detail_eval_note_publication_deplication_date_heure, setp_detail_eval_note_publication_deplication_date_heure] = useState(new Date());
@ -2608,6 +2636,7 @@ const Notes_Evaluation = (props) => {
setp_detail_type_eval_id("");
setp_detail_rattrapage("0");
setp_detail_semestre("");
setp_detail_type_notation("");
setp_detail_max_note("");
@ -2631,7 +2660,8 @@ const Notes_Evaluation = (props) => {
var liste_champs = ['detail_code', 'detail_titre', 'detail_description', 'detail_classe',
'detail_ftion', 'detail_ue', 'detail_type_eval', 'detail_debut', 'detail_fin', 'detail_adresse',
'detail_cp', 'detail_ville', 'detail_pays', 'detail_responsable', 'detail_mode_animation', 'detail_rattrapage']
'detail_cp', 'detail_ville', 'detail_pays', 'detail_responsable', 'detail_mode_animation', 'detail_rattrapage',
'detail_semestre']
for (let i = 0; i < liste_champs.length; i++) {
if (document.getElementsByName(String(liste_champs[i])) && document.getElementsByName(String(liste_champs[i]))[0]) {
@ -2654,7 +2684,8 @@ const Notes_Evaluation = (props) => {
var liste_champs = ['detail_code', 'detail_titre', 'detail_description', 'detail_classe',
'detail_ftion', 'detail_ue', 'detail_type_eval', 'detail_debut', 'detail_fin', 'detail_adresse',
'detail_cp', 'detail_ville', 'detail_pays', 'detail_responsable', 'detail_titre_01', 'detail_mode_animation', 'detail_rattrapage']
'detail_cp', 'detail_ville', 'detail_pays', 'detail_responsable', 'detail_titre_01', 'detail_mode_animation', 'detail_rattrapage',
'detail_semestre']
for (let i = 0; i < liste_champs.length; i++) {
@ -5718,6 +5749,7 @@ const Notes_Evaluation = (props) => {
max_note: JSON.parse(item).max_note,
type_notation: JSON.parse(item).type_notation,
rattrapage: JSON.parse(item).rattrapage,
semestre: JSON.parse(item).semestre,
}
@ -6077,6 +6109,24 @@ const Notes_Evaluation = (props) => {
</div>
<div className="session_caract"> Semestre <br />
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required
name="detail_semestre"
id="detail_semestre"
InputLabelProps={{
shrink: true,
}}
disabled={false}
className="disabled_style"
value={p_detail_semestre}
/>
</div>
</div>
</div>
</div>
@ -6550,10 +6600,16 @@ const Notes_Evaluation = (props) => {
setp_detail_class_eu_id(value._id);
setp_detail_class_eu_domaine_competence_id(value.domaine_competence_id);
setevaluation_data_changed("1");
if (value.semestre)
setp_detail_semestre(value.semestre);
else
setp_detail_semestre("");
} else {
setp_detail_class_eu_id("");
setevaluation_data_changed("1");
setp_detail_class_eu_domaine_competence_id("")
setp_detail_class_eu_domaine_competence_id("");
setp_detail_semestre("");
}
}}
@ -6684,7 +6740,7 @@ const Notes_Evaluation = (props) => {
multiple
onChange={(event, newValue) => {
setevaluation_data_changed("1");
setscope_diplome([
...fixedVal_scope_diplome,
...newValue.filter((i) => fixedVal_scope_diplome.indexOf(i) === -1),
@ -6715,6 +6771,49 @@ const Notes_Evaluation = (props) => {
</div>
<div className="session_caract" > Semestre <br />
<TextField
name="detail_semestre"
id="detail_semestre"
className="disabled_style"
type="number"
inputProps={{ min: "1", max: "20", step: "1" }}
InputLabelProps={{
shrink: true,
}}
value={p_detail_semestre}
onChange={(e) => {
setevaluation_data_changed("1");
setp_detail_semestre(e.target.value);
}
}
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
sx={{
"& .MuiOutlinedInput-root": {
"& fieldset": {
border: "solid #e8eef6 1px;",
},
"&:hover fieldset": {
border: "solid #e8eef6 1px;",
},
"&.Mui-focused fieldset": {
border: "solid #e8eef6 1px;",
},
},
}}
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
/>
}
/>
</div>
</div>
</div>
</div>
@ -7235,14 +7334,16 @@ const Notes_Evaluation = (props) => {
value={New_Getall_Partner_Session_Reduice_Fields_result.filter((data) => (data)._id === String(p_detail_session_id))[0].label}
onChange={(event, value) => {
setp_detail_class_eu_id("");
setp_detail_semestre("");
if (value && value._id) {
Get_List_UE_From_Session_Id(value._id);
setp_detail_session_id(value._id);
setevaluation_data_changed("1");
} else {
setp_detail_session_id("");
setevaluation_data_changed("1");
}
}}
@ -7285,12 +7386,16 @@ const Notes_Evaluation = (props) => {
// value={New_Get_List_UE_From_Class_Id_result.filter((data) => (data)._id === String(p_detail_class_eu_id))[0].label}
onChange={(event, value) => {
console.log(" ~~ value = ", value);
// console.log(" ~~ value = ", value);
setp_detail_semestre("");
if (value && value._id) {
setp_detail_class_eu_id(value._id);
setp_detail_class_eu_domaine_competence_id(value.domaine_competence_id);
setevaluation_data_changed("1");
if (value.semestre)
setp_detail_semestre(value.semestre);
else
setp_detail_semestre("");
} else {
setp_detail_class_eu_id("");
setevaluation_data_changed("1");
@ -7454,6 +7559,50 @@ const Notes_Evaluation = (props) => {
/>}
</div>
<div className="session_caract" > Semestre <br />
<TextField
name="detail_semestre"
id="detail_semestre"
className="disabled_style"
type="number"
inputProps={{ min: "1", max: "20", step: "1" }}
InputLabelProps={{
shrink: true,
}}
value={p_detail_semestre}
onChange={(e) => {
setevaluation_data_changed("1");
setp_detail_semestre(e.target.value);
}
}
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
sx={{
"& .MuiOutlinedInput-root": {
"& fieldset": {
border: "solid #e8eef6 1px;",
},
"&:hover fieldset": {
border: "solid #e8eef6 1px;",
},
"&.Mui-focused fieldset": {
border: "solid #e8eef6 1px;",
},
},
}}
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
/>
}
/>
</div>
</div>
</div>
</div>