20/03/2026 - 20h
parent
3729213ea8
commit
e76988e21f
|
|
@ -1644,6 +1644,7 @@ const DisplayPartnerPromotion = (props) => {
|
|||
{ field: 'id', headerName: 'id', hide: true },
|
||||
{ field: '_id', headerName: '_id', hide: true },
|
||||
{ field: 'date', headerName: 'date', width: 100, hide: true, flex: 1 },
|
||||
{ field: 'sequence_title', headerName: 'Titre', width: 150, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
{ field: 'sequence_start', headerName: 'Début', width: 150, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
{ field: 'sequence_end', headerName: 'Fin', width: 150, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
{ field: 'is_present', headerName: 'Présent', width: 90, hide: false, editable: true, type: 'boolean', },
|
||||
|
|
@ -4309,12 +4310,34 @@ const DisplayPartnerPromotion = (props) => {
|
|||
|
||||
var local_event_type = JSON.parse(x).event_type;
|
||||
|
||||
var local_liste_groupe_code = JSON.parse(x).liste_groupe_code;
|
||||
|
||||
var local_obligatoire = ""
|
||||
var local_obligatoire_label = ""
|
||||
if (JSON.parse(x).obligatoire) {
|
||||
local_obligatoire = JSON.parse(x).obligatoire;
|
||||
if (local_obligatoire === "1")
|
||||
local_obligatoire_label = "Oblig."
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
if (JSON.parse(x).mode_animation)
|
||||
var local_mode_animation = JSON.parse(x).mode_animation;
|
||||
else
|
||||
var local_mode_animation = ""
|
||||
|
||||
|
||||
|
||||
var label = ""
|
||||
if (local_liste_groupe_code) {
|
||||
label = JSON.parse(x).sequence_start + "-" + JSON.parse(x).sequence_end + " // " + String(local_obligatoire_label) + " // " + String(local_liste_groupe_code)
|
||||
} else {
|
||||
label = JSON.parse(x).sequence_start + " - " + JSON.parse(x).sequence_end
|
||||
}
|
||||
|
||||
|
||||
//---
|
||||
var node = {
|
||||
"_id": localid,
|
||||
|
|
@ -4327,7 +4350,7 @@ const DisplayPartnerPromotion = (props) => {
|
|||
"local_comment": local_session_comment,
|
||||
"local_event_type": local_event_type,
|
||||
"local_mode_animation": local_mode_animation,
|
||||
"label": JSON.parse(x).sequence_start + " - " + JSON.parse(x).sequence_end
|
||||
"label": label
|
||||
};
|
||||
new_data2.push(node);
|
||||
});
|
||||
|
|
@ -11926,8 +11949,6 @@ const DisplayPartnerPromotion = (props) => {
|
|||
var local_cible = JSON.parse(x).cible;
|
||||
var local_joint_pdf = JSON.parse(x).joint_pdf;
|
||||
|
||||
|
||||
|
||||
//---
|
||||
var node = {
|
||||
"_id": local_id,
|
||||
|
|
@ -12002,7 +12023,7 @@ const DisplayPartnerPromotion = (props) => {
|
|||
//var myurl = process.env.REACT_APP_API_URL + "myclass/api/CreateTableauEmargement/";
|
||||
|
||||
// Update du 23/11/2023 : Les emargements sont basé sur les séquence déjà créées
|
||||
var myurl = process.env.REACT_APP_API_URL + "myclass/api/CreateTableauEmargement_From_Sequence/";
|
||||
var myurl = process.env.REACT_APP_API_URL + "myclass/api/CreateTableauEmargement_From_Sequence_FI/";
|
||||
|
||||
setLoading(true);
|
||||
axios.post(myurl, form).then(res => {
|
||||
|
|
@ -27854,7 +27875,7 @@ const DisplayPartnerPromotion = (props) => {
|
|||
|
||||
|
||||
setDialog_Emargement_Selection_open(true);
|
||||
}}>Initialiser émargement</Button>}
|
||||
}}>Initialiser émargement </Button>}
|
||||
|
||||
|
||||
<Button className="bton_emarge" onClick={(event) => {
|
||||
|
|
@ -27930,6 +27951,7 @@ const DisplayPartnerPromotion = (props) => {
|
|||
signature: JSON.parse(item).mysy_manual_signature_img,
|
||||
|
||||
comment: JSON.parse(item).comment,
|
||||
sequence_title: JSON.parse(item).sequence_title,
|
||||
|
||||
}
|
||||
))}
|
||||
|
|
|
|||
|
|
@ -179,6 +179,21 @@ const Module_Session_Planification = (props) => {
|
|||
}
|
||||
},
|
||||
|
||||
{
|
||||
field: 'obligatoire', headerName: 'Obligatoire', minWidth: 150, flex: 1,
|
||||
renderCell: (cellValues) => {
|
||||
return (
|
||||
<div style={{ paddingLeft: "5px", paddingRight: "15px", "display": "block", wordBreak: "break-all" }}>
|
||||
{cellValues.row.obligatoire && String(cellValues.row.obligatoire) === "1" && "Oui"}
|
||||
{cellValues.row.obligatoire && String(cellValues.row.obligatoire) !== "1" && "Non"}
|
||||
|
||||
</div>
|
||||
|
||||
);
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
|
||||
{ field: 'agenda', headerName: 'Agenda', minWidth: 200, flex: 1, hide: false, editable: false, renderCell: (params) => <Display_Colunm_text {...params} />, },
|
||||
{ field: 'objectif', headerName: 'Objectif', width: 0, flex: 0, hide: true, editable: false, },
|
||||
|
|
@ -953,6 +968,8 @@ const Module_Session_Planification = (props) => {
|
|||
const [p_detail_sequence_session_id, setp_detail_sequence_session_id] = useState("");
|
||||
const [p_detail_sequence_volume_theorique, setp_detail_sequence_volume_theorique] = useState("");
|
||||
|
||||
const [p_detail_sequence_obligatoire, setp_detail_sequence_obligatoire] = useState("");
|
||||
|
||||
const [p_detail_justified, setp_detail_justified] = useState(false);
|
||||
const [p_detail_event_type, setp_detail_event_type] = useState("");
|
||||
|
||||
|
|
@ -1201,6 +1218,8 @@ const Module_Session_Planification = (props) => {
|
|||
form.append("objectif", p_detail_sequence_objectif);
|
||||
form.append("commentaire", p_detail_sequence_comment);
|
||||
|
||||
form.append("obligatoire", p_detail_sequence_obligatoire);
|
||||
|
||||
form.append("mode_animation", p_detail_mode_animation);
|
||||
|
||||
form.append("grp_apprenant_id", p_detail_sequence_groupe_apprenant_id);
|
||||
|
|
@ -1542,7 +1561,7 @@ const Module_Session_Planification = (props) => {
|
|||
setLoading(false);
|
||||
if (String(res.data.status) === String("true")) {
|
||||
//console.log(" In Getall_Sequence_Of_Session res.data.status = " + res.data.status);
|
||||
// console.log(" In Getall_Sequence_Of_Session res.data.message r_class = " + res.data.message);
|
||||
//console.log(" In Getall_Sequence_Of_Session res.data.message r_class = " + res.data.message);
|
||||
setGetall_Sequence_Of_Session_api("true");
|
||||
setGetall_Sequence_Of_Session_result(res.data.message);
|
||||
|
||||
|
|
@ -1591,6 +1610,10 @@ const Module_Session_Planification = (props) => {
|
|||
|
||||
var local_mode_animation = JSON.parse(x).mode_animation;
|
||||
|
||||
var local_obligatoire = JSON.parse(x).obligatoire;
|
||||
|
||||
|
||||
|
||||
// Si il n'y pas de relief avec le groupe d'apprenant, on va introduire un relief avec la notion de présentiel et distantiel
|
||||
if (local_session_color === "" && local_mode_animation === "1") {
|
||||
// sequence en distantiel, on va mettre un code couleur
|
||||
|
|
@ -1610,6 +1633,7 @@ const Module_Session_Planification = (props) => {
|
|||
"local_volume_theorique": local_volume_theorique,
|
||||
"local_agenda": local_agenda,
|
||||
"local_mode_animation": local_mode_animation,
|
||||
"local_obligatoire": local_obligatoire,
|
||||
|
||||
"local_objectif": local_objectif,
|
||||
"local_comment": local_session_comment,
|
||||
|
|
@ -1680,7 +1704,7 @@ const Module_Session_Planification = (props) => {
|
|||
setLoading(false);
|
||||
if (String(res.data.status) === String("true")) {
|
||||
//console.log(" In Getall_Sequence_Of_Session_With_Filter res.data.status = " + res.data.status);
|
||||
// console.log(" In Getall_Sequence_Of_Session_With_Filter res.data.message r_class = " + res.data.message);
|
||||
console.log(" In Getall_Sequence_Of_Session_With_Filter res.data.message r_class = " + res.data.message);
|
||||
setGetall_Sequence_Of_Session_With_Filter_api("true");
|
||||
setGetall_Sequence_Of_Session_With_Filter_result(res.data.message);
|
||||
setGetall_Sequence_Of_Session_result(res.data.message);
|
||||
|
|
@ -1944,6 +1968,8 @@ const Module_Session_Planification = (props) => {
|
|||
var local_session_ue_titre = (x).ue_titre;
|
||||
var local_session_ue_code = (x).ue_code;
|
||||
|
||||
var local_obligatoire = (x).obligatoire;
|
||||
|
||||
var local_session_grp_apprenant_id = (x).grp_apprenant_id;
|
||||
|
||||
var local_session_ue_planif_line_id = (x).unite_enseignement_planif_id;
|
||||
|
|
@ -1972,6 +1998,7 @@ const Module_Session_Planification = (props) => {
|
|||
"local_objectif": local_objectif,
|
||||
"local_comment": local_session_comment,
|
||||
"local_type": local_session_type,
|
||||
"local_obligatoire": local_obligatoire,
|
||||
"local_ue_id": local_session_ue_id,
|
||||
"local_ue_titre": local_session_ue_titre,
|
||||
"local_ue_code": local_session_ue_code,
|
||||
|
|
@ -2110,6 +2137,13 @@ const Module_Session_Planification = (props) => {
|
|||
]
|
||||
|
||||
|
||||
const New_Option_Oui_Non = [
|
||||
{ "id": "1", "label": "Oui", "value": "1" },
|
||||
{ "id": "0", "label": "Non", "value": "0" },
|
||||
{ "id": "", "label": "", "value": "" },
|
||||
]
|
||||
|
||||
|
||||
const [Dialog_seq_planif_periode_type, setDialog_seq_planif_periode_type] = React.useState("");
|
||||
|
||||
|
||||
|
|
@ -2612,6 +2646,13 @@ const Module_Session_Planification = (props) => {
|
|||
setp_detail_mode_animation("");
|
||||
|
||||
|
||||
if (arg.event.extendedProps.local_obligatoire) {
|
||||
setp_detail_sequence_obligatoire(arg.event.extendedProps.local_obligatoire);
|
||||
}
|
||||
else
|
||||
setp_detail_sequence_obligatoire("0");
|
||||
|
||||
|
||||
if (arg.event.extendedProps.local_type) {
|
||||
setp_detail_event_type(arg.event.extendedProps.local_type);
|
||||
}
|
||||
|
|
@ -2865,6 +2906,8 @@ const Module_Session_Planification = (props) => {
|
|||
form.append("grp_apprenant_id", p_detail_sequence_groupe_apprenant_id);
|
||||
form.append("ue_id", p_detail_sequence_ue_id);
|
||||
|
||||
form.append("obligatoire", p_detail_sequence_obligatoire);
|
||||
|
||||
form.append("ue_planif_line_id", p_detail_sequence_ue_planif_line_id);
|
||||
|
||||
var tab_grp_apprenant_ids = []
|
||||
|
|
@ -4097,7 +4140,7 @@ const Module_Session_Planification = (props) => {
|
|||
|
||||
'& .line--statut--selected': {
|
||||
backgroundColor: '#FBF2EF',
|
||||
color: "#0a2a4d",
|
||||
color: "#0a2a4d",
|
||||
}, [`& .${gridClasses.cell}`]: {
|
||||
py: 1,
|
||||
},
|
||||
|
|
@ -4775,27 +4818,59 @@ const Module_Session_Planification = (props) => {
|
|||
/>
|
||||
|
||||
</div>
|
||||
<nav style={{ "float": "left", "width": "100%" }}>
|
||||
|
||||
<div className="session_caract_Dialog" > Volume Théorique
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
<div className="session_caract_Dialog" style={{ width: '50%' }}> Volume Théorique
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
|
||||
name="event_dialog_heure_theorique"
|
||||
id="event_dialog_heure_theorique"
|
||||
name="event_dialog_heure_theorique"
|
||||
id="event_dialog_heure_theorique"
|
||||
|
||||
|
||||
fullWidth
|
||||
type="number"
|
||||
inputProps={{ min: "0", max: "999999", step: "0.5" }}
|
||||
value={p_detail_sequence_volume_theorique}
|
||||
onChange={(e) => {
|
||||
setp_detail_sequence_volume_theorique(e.target.value);
|
||||
}
|
||||
}
|
||||
fullWidth
|
||||
type="number"
|
||||
inputProps={{ min: "0", max: "999999", step: "0.5" }}
|
||||
value={p_detail_sequence_volume_theorique}
|
||||
onChange={(e) => {
|
||||
setp_detail_sequence_volume_theorique(e.target.value);
|
||||
}
|
||||
}
|
||||
|
||||
/>
|
||||
/>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div className="session_caract_Dialog" style={{ width: '50%' }}> Obligatoire
|
||||
{New_Option_Oui_Non && New_Option_Oui_Non.length > 0 && <Autocomplete
|
||||
disablePortal
|
||||
name="event_dialog_seq_obligatoire"
|
||||
id="event_dialog_seq_obligatoire"
|
||||
|
||||
fullWidth
|
||||
options={New_Option_Oui_Non}
|
||||
value={New_Option_Oui_Non.filter((data) => (data).value === String(p_detail_sequence_obligatoire))[0].label}
|
||||
onChange={(event, value) => {
|
||||
if (value && value.value) {
|
||||
setp_detail_sequence_obligatoire(value.value);
|
||||
|
||||
|
||||
}
|
||||
}}
|
||||
|
||||
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
|
||||
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
|
||||
|
||||
/>
|
||||
}
|
||||
/>}
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</nav>
|
||||
|
||||
<div className="session_caract_Dialog_comment_2_lines" > Agenda
|
||||
<TextField
|
||||
|
|
@ -6494,27 +6569,55 @@ const Module_Session_Planification = (props) => {
|
|||
/>
|
||||
|
||||
</div>
|
||||
<nav style={{ "float": "left", "width": "100%" }}>
|
||||
<div className="session_caract_Dialog" style={{ width: '50%' }}> Volume Théorique
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
|
||||
<div className="session_caract_Dialog" > Volume Théorique
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
|
||||
name="event_dialog_heure_theorique"
|
||||
id="event_dialog_heure_theorique"
|
||||
name="event_dialog_heure_theorique"
|
||||
id="event_dialog_heure_theorique"
|
||||
|
||||
|
||||
fullWidth
|
||||
type="number"
|
||||
inputProps={{ min: "0", max: "999999", step: "0.5" }}
|
||||
value={p_detail_sequence_volume_theorique}
|
||||
onChange={(e) => {
|
||||
setp_detail_sequence_volume_theorique(e.target.value);
|
||||
}
|
||||
}
|
||||
fullWidth
|
||||
type="number"
|
||||
inputProps={{ min: "0", max: "999999", step: "0.5" }}
|
||||
value={p_detail_sequence_volume_theorique}
|
||||
onChange={(e) => {
|
||||
setp_detail_sequence_volume_theorique(e.target.value);
|
||||
}
|
||||
}
|
||||
|
||||
/>
|
||||
/>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="session_caract_Dialog" style={{ width: '50%' }}> Obligatoire
|
||||
{New_Option_Oui_Non && New_Option_Oui_Non.length > 0 && <Autocomplete
|
||||
disablePortal
|
||||
name="event_dialog_seq_obligatoire"
|
||||
id="event_dialog_seq_obligatoire"
|
||||
|
||||
fullWidth
|
||||
options={New_Option_Oui_Non}
|
||||
value={New_Option_Oui_Non.filter((data) => (data).value === String(p_detail_sequence_obligatoire))[0].label}
|
||||
onChange={(event, value) => {
|
||||
if (value && value.value) {
|
||||
setp_detail_sequence_obligatoire(value.value);
|
||||
|
||||
|
||||
}
|
||||
}}
|
||||
|
||||
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
|
||||
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
|
||||
|
||||
/>
|
||||
}
|
||||
/>}
|
||||
|
||||
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<div className="session_caract_Dialog_comment_2_lines" > Agenda
|
||||
<TextField
|
||||
|
|
@ -6765,7 +6868,7 @@ const Module_Session_Planification = (props) => {
|
|||
|
||||
'& .line--statut--selected': {
|
||||
backgroundColor: '#FBF2EF',
|
||||
color: "#0a2a4d",
|
||||
color: "#0a2a4d",
|
||||
}, [`& .${gridClasses.cell}`]: {
|
||||
py: 1,
|
||||
},
|
||||
|
|
@ -6802,6 +6905,7 @@ const Module_Session_Planification = (props) => {
|
|||
type: JSON.parse(item).type,
|
||||
grp_apprenant_code: JSON.parse(item).grp_apprenant_code,
|
||||
liste_groupe_code: JSON.parse(item).liste_groupe_code,
|
||||
obligatoire: JSON.parse(item).obligatoire,
|
||||
|
||||
}
|
||||
))}
|
||||
|
|
@ -6895,7 +6999,7 @@ const Module_Session_Planification = (props) => {
|
|||
|
||||
|
||||
|
||||
{selectionModel_sequence && selectionModel_sequence.length > 1 && ( String(props.origin) === "session" || String(props.origin) === "promotion" ) &&
|
||||
{selectionModel_sequence && selectionModel_sequence.length > 1 && (String(props.origin) === "session" || String(props.origin) === "promotion") &&
|
||||
String(props.check_user_acces_right("session", "write")) === "1" &&
|
||||
<div className="block_en_mass">
|
||||
|
||||
|
|
@ -6998,7 +7102,7 @@ const Module_Session_Planification = (props) => {
|
|||
|
||||
{display_view && String(display_view) === "planning" && Getall_Sequence_Of_Session_result_planning_view &&
|
||||
<div style={{ "border": "None" }} >
|
||||
|
||||
|
||||
|
||||
|
||||
<div style={{ "width": "98%", "marginLeft": "5px", padding: '10px', fontFamily: 'DM Sans', fontSize: '14px' }} >
|
||||
|
|
@ -7055,7 +7159,7 @@ const Module_Session_Planification = (props) => {
|
|||
|
||||
'& .line--statut--selected': {
|
||||
backgroundColor: '#FBF2EF',
|
||||
color: "#0a2a4d",
|
||||
color: "#0a2a4d",
|
||||
}, [`& .${gridClasses.cell}`]: {
|
||||
py: 1,
|
||||
},
|
||||
|
|
@ -7173,7 +7277,7 @@ const Module_Session_Planification = (props) => {
|
|||
{display_view && String(display_view) === "planning" &&
|
||||
<div style={{ "border": "None" }}>
|
||||
|
||||
|
||||
|
||||
<div style={{ "width": "98%", "marginLeft": "5px", }} >
|
||||
|
||||
<FullCalendar
|
||||
|
|
@ -7232,7 +7336,7 @@ const Module_Session_Planification = (props) => {
|
|||
</div>}
|
||||
|
||||
|
||||
{(!new_planification_lines || new_planification_lines.length <= 0) && ( String(props.origin) === "session" || String(props.origin) === "promotion" ) &&
|
||||
{(!new_planification_lines || new_planification_lines.length <= 0) && (String(props.origin) === "session" || String(props.origin) === "promotion") &&
|
||||
String(props.check_user_acces_right("session", "write")) === "1" &&
|
||||
<div className="div_row_gauche div_row_gauche_etendu" style={{ "textAlign": "left", "paddingLeft": "5px" }}>
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue