03/05/2025 - 20h
parent
cc205abb96
commit
d6f3869c16
|
@ -33,7 +33,7 @@ import Box from '@mui/material/Box';
|
|||
import { Typography, LinearProgress } from '@mui/material';
|
||||
import styled from 'styled-components';
|
||||
import { CiTrash } from "react-icons/ci";
|
||||
import { MdAddCircleOutline, MdRemoveCircleOutline } from "react-icons/md";
|
||||
import { MdAddCircleOutline, MdRemoveCircleOutline } from "react-icons/md";
|
||||
import Dialog from '@mui/material/Dialog';
|
||||
import DialogActions from '@mui/material/DialogActions';
|
||||
import DialogContent from '@mui/material/DialogContent';
|
||||
|
@ -42,9 +42,10 @@ import DialogTitle from '@mui/material/DialogTitle';
|
|||
import img_loading_spin from "./../mysy_img/mysy_spin_loading.gif";
|
||||
import { Fab } from "@material-ui/core";
|
||||
import { IoMdAddCircle, IoIosRemoveCircleOutline } from "react-icons/io";
|
||||
import { AiTwotoneSave } from "react-icons/ai";
|
||||
import { AiTwotoneSave } from "react-icons/ai";
|
||||
import ToggleSwitch from "./ToggleSwitch";
|
||||
import Module_Historique_Action from "./Module_Historique_Action";
|
||||
import Module_Session_Notes_Classement from "./Module_Session_Notes_Classement";
|
||||
|
||||
import Autocomplete from '@mui/material/Autocomplete';
|
||||
import { FcOpenedFolder } from "react-icons/fc";
|
||||
|
@ -3535,7 +3536,7 @@ const DisplayPartnerSession = (props) => {
|
|||
async function submenu_evaluation_session() {
|
||||
setsubmenu("evaluation_session");
|
||||
submenu_color_management("evaluation_session");
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
@ -3564,11 +3565,21 @@ const DisplayPartnerSession = (props) => {
|
|||
|
||||
}
|
||||
|
||||
async function submenu_notes_classement() {
|
||||
setsubmenu("notes_classement");
|
||||
submenu_color_management("notes_classement");
|
||||
// await sleep(5);
|
||||
if (!edit_session_form) {
|
||||
desableSessionFields();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
function submenu_color_management(current_menu) {
|
||||
const list_sous_menu = ["historique", "attestation", "evaluation", "editique", "emargement", "sequence_session", "detail_session", "inscrit",
|
||||
"preinscrit", "emargement", "piece_jointe", "q_positionnement", "planification_session", "evaluation_session"]
|
||||
"preinscrit", "emargement", "piece_jointe", "q_positionnement", "planification_session", "evaluation_session", "notes_classement"]
|
||||
|
||||
for (let i = 0; i < list_sous_menu.length; i++) {
|
||||
|
||||
|
@ -3831,12 +3842,12 @@ const DisplayPartnerSession = (props) => {
|
|||
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.nb_sequence r_class = " + res.data.nb_sequence);
|
||||
// console.log(" In Getall_Sequence_Of_Session res.data.nb_sequence r_class = " + res.data.nb_sequence);
|
||||
setGetall_Sequence_Of_Session_api("true");
|
||||
setGetall_Sequence_Of_Session_result(res.data.message);
|
||||
setnb_sequence(res.data.nb_sequence);
|
||||
|
||||
// console.log(" ##NB_Sequence iii = ", res.data.nb_sequence);
|
||||
// console.log(" ##NB_Sequence iii = ", res.data.nb_sequence);
|
||||
|
||||
|
||||
var new_data2 = [];
|
||||
|
@ -18083,7 +18094,7 @@ const DisplayPartnerSession = (props) => {
|
|||
|
||||
{/* FIN Dialog pour gerer les FACTURATION_FORMATION */}
|
||||
|
||||
<h3 style={{ fontFamily:'DM Sans' }}> Mes sessions de formation </h3>
|
||||
<h3 style={{ fontFamily: 'DM Sans' }}> Mes sessions de formation </h3>
|
||||
|
||||
<div>
|
||||
<div className="titre1"> Utilisez les filtres !</div>
|
||||
|
@ -20221,6 +20232,9 @@ const DisplayPartnerSession = (props) => {
|
|||
<Button variant="outlined" ref={myRef} onClick={submenu_evaluation_session} className="detail_class_submenu" id='evaluation_session' name='evaluation_session'> Evaluation</Button>
|
||||
<Button variant="outlined" onClick={submenu_piece_jointe} className="detail_class_submenu" id='piece_jointe' name='piece_jointe'>Pièces Jointes </Button>
|
||||
|
||||
{String(props.formation_initiale) === "1" && <Button variant="outlined" onClick={submenu_notes_classement} className="detail_class_submenu" id='notes_classement' name='notes_classement'>Notes & Classem.</Button>}
|
||||
|
||||
|
||||
|
||||
{String(history_securite_read) === "1" && <Button variant="outlined" onClick={submenu_historique} className="detail_class_submenu" id='historique' name='historique'>Historique </Button>}
|
||||
|
||||
|
@ -22356,7 +22370,7 @@ const DisplayPartnerSession = (props) => {
|
|||
|
||||
{display_view && String(display_view) === "planning" && Getall_Sequence_Of_Session_result_planning_view &&
|
||||
<div style={{ "border": "None" }}>
|
||||
<h3 style={{ fontFamily:'DM Sans' }}> Affichage planning </h3>
|
||||
<h3 style={{ fontFamily: 'DM Sans' }}> Affichage planning </h3>
|
||||
|
||||
|
||||
<div style={{ "width": "98%", "marginLeft": "5px", }}>
|
||||
|
@ -26044,8 +26058,8 @@ const DisplayPartnerSession = (props) => {
|
|||
<Module_Session_Planification conntected_employee_id={props.conntected_employee_id} related_collection={"session_formation"}
|
||||
related_collection_recid={selected_session_id} SessionstartDate={new Date(moment(SessionstartDate, "DD/MM/YYYY"))}
|
||||
SessionendDate={new Date(moment(SessionendDate, "DD/MM/YYYY"))} selected_session_invoiced_statut={selected_session_invoiced_statut}
|
||||
session_class_id={session_selected_class_id}
|
||||
/>
|
||||
session_class_id={session_selected_class_id}
|
||||
/>
|
||||
|
||||
</div>}
|
||||
|
||||
|
@ -26060,6 +26074,16 @@ const DisplayPartnerSession = (props) => {
|
|||
|
||||
</div>}
|
||||
|
||||
{String(submenu) === String("notes_classement") && <div style={{ "border": "None" }}>
|
||||
|
||||
<Module_Session_Notes_Classement conntected_employee_id={props.conntected_employee_id} related_collection={"session_formation"}
|
||||
related_collection_recid={selected_session_id} SessionstartDate={new Date(moment(SessionstartDate, "DD/MM/YYYY"))}
|
||||
SessionendDate={new Date(moment(SessionendDate, "DD/MM/YYYY"))} session_formateur_id={p_formateur_id}
|
||||
session_class_id={session_selected_class_id}
|
||||
selected_session_invoiced_statut={selected_session_invoiced_statut} />
|
||||
|
||||
</div>}
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
|
|
@ -5446,9 +5446,9 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
setliste_selected_inscription_id(liste_session);
|
||||
setselectedtraining_emails(liste_session);
|
||||
|
||||
// console.log(" liste_session = ", liste_session);
|
||||
// console.log(" liste_session = ", liste_session);
|
||||
|
||||
// console.log(" actionmass_ftion_val = ", actionmass_ftion_val);
|
||||
// console.log(" actionmass_ftion_val = ", actionmass_ftion_val);
|
||||
|
||||
|
||||
//console.log(" actionmass_ftion_val = ", actionmass_ftion_val);
|
||||
|
@ -5479,7 +5479,7 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
Recyclage_Desactivation(liste_session);
|
||||
}
|
||||
else if (String(actionmass_ftion_val) === String("sendemail")) {
|
||||
// console.log(" #### selectedtraining_emails_liste = ", selectedtraining_emails_liste);
|
||||
// console.log(" #### selectedtraining_emails_liste = ", selectedtraining_emails_liste);
|
||||
setDialog_SEND_EMAIL_open(true);
|
||||
}
|
||||
}
|
||||
|
@ -6859,7 +6859,7 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
position: 'absolute',
|
||||
top: '7rem',
|
||||
margin: "2px",
|
||||
maxWidth:'800px'
|
||||
maxWidth: '800px'
|
||||
},
|
||||
}}
|
||||
hideBackdrop={true}
|
||||
|
@ -6895,7 +6895,7 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
>
|
||||
<CancelPresentationIcon />
|
||||
</IconButton>
|
||||
|
||||
|
||||
</DialogActions>
|
||||
|
||||
|
||||
|
@ -7913,7 +7913,7 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
</Dialog>
|
||||
|
||||
{ /**** FIN Dialog Convention */}
|
||||
<h3 style={{ fontFamily:'DM Sans' }}> Mes stagiaires </h3>
|
||||
<h3 style={{ fontFamily: 'DM Sans' }}> Mes stagiaires </h3>
|
||||
|
||||
<div className="div_row">
|
||||
<div className="titre1"> Utilisez les filtres !</div>
|
||||
|
@ -11306,7 +11306,7 @@ 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' }}>
|
||||
|
||||
<h3 style={{ fontFamily:'DM Sans' }}> Gestion des UE d'un inscrit </h3>
|
||||
<h3 style={{ fontFamily: 'DM Sans' }}> Gestion des UE d'un inscrit </h3>
|
||||
<div className="div_row">
|
||||
|
||||
<div className="session_caract"> <b>Unite D'enseignement </b> <br />
|
||||
|
@ -11448,11 +11448,16 @@ const DisplayPartnerStagiaires = (props) => {
|
|||
|
||||
</div>
|
||||
|
||||
<div className="div_row">
|
||||
Afficher ici les notes finales par UE xxx <br/>
|
||||
</div>
|
||||
|
||||
|
||||
</div>}
|
||||
|
||||
{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>
|
||||
<h3 style={{ fontFamily: 'DM Sans' }}> Les notes de l'inscrit </h3>
|
||||
<div className="div_row" style={{ "textAlign": "right", "marginTop": "0.5rem" }}>
|
||||
<Button className="bton_emarge" onClick={(event) => {
|
||||
Export_Inscrit_Notes();
|
||||
|
|
|
@ -10,13 +10,12 @@ import { DataGrid, GridToolbar, frFR } from '@mui/x-data-grid';
|
|||
import "react-draft-wysiwyg/dist/react-draft-wysiwyg.css";
|
||||
|
||||
import 'react-tooltip/dist/react-tooltip.css'
|
||||
import { Tooltip } from 'react-tooltip'
|
||||
|
||||
|
||||
import fileDownload from 'js-file-download'
|
||||
import Popup from 'reactjs-popup';
|
||||
import 'reactjs-popup/dist/index.css';
|
||||
import { FcSearch } from "react-icons/fc";
|
||||
import { FcAlarmClock, FcMultipleSmartphones, FcWorkflow } from "react-icons/fc";
|
||||
|
||||
import DatePicker from "react-datepicker";
|
||||
import "react-datepicker/dist/react-datepicker.css";
|
||||
import { format } from 'date-fns'
|
||||
|
|
|
@ -0,0 +1,838 @@
|
|||
import React, { useRef, useState, useEffect } from "react";
|
||||
import TextField from '@mui/material/TextField';
|
||||
|
||||
import 'react-confirm-alert/src/react-confirm-alert.css'; // Import css
|
||||
import Button from '@mui/material/Button';
|
||||
import axios from "axios";
|
||||
import { getCookie, setCookie } from 'react-use-cookie';
|
||||
import { useHistory } from "react-router-dom";
|
||||
import { DataGrid, GridToolbar, frFR } from '@mui/x-data-grid';
|
||||
import "react-draft-wysiwyg/dist/react-draft-wysiwyg.css";
|
||||
|
||||
import 'react-tooltip/dist/react-tooltip.css'
|
||||
|
||||
|
||||
import fileDownload from 'js-file-download'
|
||||
import Popup from 'reactjs-popup';
|
||||
import 'reactjs-popup/dist/index.css';
|
||||
|
||||
import DatePicker from "react-datepicker";
|
||||
import "react-datepicker/dist/react-datepicker.css";
|
||||
import { format } from 'date-fns'
|
||||
import moment from "moment";
|
||||
import 'moment/locale/fr';
|
||||
|
||||
import Box from '@mui/material/Box';
|
||||
|
||||
import Dialog from '@mui/material/Dialog';
|
||||
import DialogActions from '@mui/material/DialogActions';
|
||||
import DialogContent from '@mui/material/DialogContent';
|
||||
import DialogContentText from '@mui/material/DialogContentText';
|
||||
import DialogTitle from '@mui/material/DialogTitle';
|
||||
import { ResetTvRounded, RestoreFromTrashRounded } from "@mui/icons-material";
|
||||
import img_loading_spin from "./../mysy_img/mysy_spin_loading.gif";
|
||||
|
||||
import Autocomplete from '@mui/material/Autocomplete';
|
||||
import { FcOpenedFolder } from "react-icons/fc";
|
||||
import { gridClasses } from '@mui/x-data-grid';
|
||||
import Link from '@mui/material/Link';
|
||||
import { PiDotsThree } from "react-icons/pi";
|
||||
import { makeStyles } from "@material-ui/core/styles";
|
||||
import Paper from '@material-ui/core/Paper';
|
||||
import Draggable from 'react-draggable';
|
||||
import { IconButton } from '@material-ui/core';
|
||||
import CancelPresentationIcon from '@mui/icons-material/CancelPresentation';
|
||||
|
||||
import { FcCancel, FcApproval, FcAcceptDatabase, FcPrint, FcPlanner } from "react-icons/fc";
|
||||
|
||||
|
||||
import Module_Alert_Confirmation from "./Module_Alert_Confirmation";
|
||||
|
||||
function PaperComponent(props) {
|
||||
return (
|
||||
<Draggable
|
||||
handle="#draggable-dialog-title"
|
||||
cancel={'[class*="MuiDialogContent-root"]'}
|
||||
>
|
||||
<Paper {...props} />
|
||||
</Draggable>
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
const useStyles = makeStyles((theme) => ({
|
||||
|
||||
dialog: {
|
||||
position: 'absolute',
|
||||
// left: 10,
|
||||
top: 400
|
||||
},
|
||||
|
||||
paper: {
|
||||
overflowY: 'unset',
|
||||
},
|
||||
customizedButton: {
|
||||
position: 'absolute',
|
||||
left: '98%',
|
||||
top: '-3%',
|
||||
backgroundColor: 'lightgray',
|
||||
color: 'gray',
|
||||
},
|
||||
}));
|
||||
|
||||
|
||||
const Module_Session_Notes_Classement = (props) => {
|
||||
const classes = useStyles();
|
||||
const history = useHistory();
|
||||
const [submenu, setsubmenu] = useState("");
|
||||
const [rowss, setRows] = useState([]);
|
||||
|
||||
const [isLoading, setLoading] = useState();
|
||||
|
||||
function ExpandableCell_50({ value }) {
|
||||
const [expanded, setExpanded] = React.useState(false);
|
||||
|
||||
return (
|
||||
<nav>
|
||||
{value && <div style={{ paddingLeft: "5px", paddingRight: "15px", "display": "block", wordBreak: "break-all" }}>
|
||||
|
||||
{expanded ? value : String(value).slice(0, 50)}
|
||||
{value.length > 50 && (
|
||||
// eslint-disable-next-line jsx-a11y/anchor-is-valid
|
||||
<Link
|
||||
type="button"
|
||||
component="button"
|
||||
sx={{ fontSize: 'inherit' }}
|
||||
onClick={() => setExpanded(!expanded)}
|
||||
>
|
||||
{expanded ? <nav> <PiDotsThree />Réduire</nav> : <nav> <PiDotsThree />Voir</nav>}
|
||||
</Link>
|
||||
)}
|
||||
</div>}
|
||||
|
||||
{!value && <div style={{ paddingLeft: "5px", paddingRight: "15px", "display": "block", wordBreak: "break-all" }}>
|
||||
|
||||
</div>
|
||||
}
|
||||
</nav>
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
function Display_Colunm_text({ value }) {
|
||||
|
||||
return (
|
||||
<div style={{ paddingLeft: "5px", paddingRight: "10px", "display": "block", wordBreak: "break-all" }}>
|
||||
{value}
|
||||
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
const columns_list_evaluation_detail_note_classement_final = [
|
||||
{ field: 'id', headerName: 'id', hide: true },
|
||||
{ field: '_id', headerName: '_id', hide: true },
|
||||
{ field: 'inscription_id', headerName: 'inscription_id', hide: true },
|
||||
{ field: 'session_id', headerName: 'session_id', hide: true },
|
||||
{ field: 'ue_id', headerName: 'ue_id', hide: true },
|
||||
{ field: 'class_id', headerName: 'class_id', hide: true },
|
||||
{ field: 'class_id_external_code', headerName: 'Code Formation', hide: true },
|
||||
{ field: 'ue_id_code', headerName: 'UE Code', minwidth: 200, flex: 1, 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: 'type_eval', headerName: 'Type eval', minwidth: 100, flex: 1, hide: false, editable: true, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
|
||||
|
||||
|
||||
{ field: 'moyenne', headerName: 'moyenne', minwidth: 100, flex: 1, hide: false, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
{ field: 'somme', headerName: 'somme', minwidth: 100, flex: 1, hide: false, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
{ field: 'nb_evaluation', headerName: 'nb_evaluation', minwidth: 100, flex: 1, hide: false, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
{ field: 'inscription_id_mail', headerName: 'Email', minwidth: 300, flex: 1, hide: false, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
|
||||
{ field: 'detail', headerName: 'Detail Note', minwidth: 100, flex: 1, hide: false, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
|
||||
]
|
||||
|
||||
|
||||
const columns_list_evaluation_note_classement_final = [
|
||||
{ field: 'id', headerName: 'id', hide: true },
|
||||
{ field: '_id', headerName: '_id', hide: true },
|
||||
{ field: 'inscription_id', headerName: 'inscription_id', hide: true },
|
||||
{ field: 'session_id', headerName: 'session_id', hide: true },
|
||||
{ field: 'ue_id', headerName: 'ue_id', hide: true },
|
||||
{ field: 'class_id', headerName: 'class_id', hide: true },
|
||||
{ field: 'class_id_external_code', headerName: 'Code Formation', hide: true },
|
||||
{ field: 'ue_id_code', headerName: 'UE Code', minwidth: 200, flex: 1, 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: 'type_eval', headerName: 'Type eval', minwidth: 100, flex: 1, hide: false, editable: true, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
|
||||
|
||||
|
||||
{ field: 'note_td', headerName: 'note_td', minwidth: 100, flex: 1, hide: false, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
{ field: 'note_tp', headerName: 'note_tp', minwidth: 100, flex: 1, hide: false, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
{ field: 'note_examen', headerName: 'note_examen', minwidth: 100, flex: 1, hide: false, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
{ field: 'note_finale', headerName: 'note_finale', minwidth: 100, flex: 1, hide: false, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
{ field: 'rang', headerName: 'rang', minwidth: 100, flex: 1, hide: false, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
|
||||
{ field: 'inscription_id_mail', headerName: 'Email', minwidth: 300, flex: 1, hide: false, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
|
||||
{ field: 'detail', headerName: 'Detail Note', minwidth: 100, flex: 1, hide: false, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
|
||||
]
|
||||
|
||||
|
||||
const [New_Getall_Session_Detail_Final_Note_Classement_result, setNew_Getall_Session_Detail_Final_Note_Classement_result] = useState([]);
|
||||
|
||||
const [Getall_Session_Detail_Final_Note_Classement_api, setGetall_Session_Detail_Final_Note_Classement_api] = useState();
|
||||
const [Getall_Session_Detail_Final_Note_Classement_message, setGetall_Session_Detail_Final_Note_Classement_message] = useState();
|
||||
const [Getall_Session_Detail_Final_Note_Classement_result, setGetall_Session_Detail_Final_Note_Classement_result] = useState([]);
|
||||
function Getall_Session_Detail_Final_Note_Classement(event) {
|
||||
|
||||
var form = new FormData();
|
||||
|
||||
|
||||
const stored_cookie = getCookie('tokenmysypart');
|
||||
form.append("token", stored_cookie);
|
||||
form.append("tab_session_id", props.related_collection_recid);
|
||||
|
||||
|
||||
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_List_Evaluation_Final_Note_Classement_Detail_With_Filter";
|
||||
|
||||
axios.post(myurl, form).then(res => {
|
||||
|
||||
if (String(res.data.status) === String("true")) {
|
||||
// console.log(" In Getall_Session_Detail_Final_Note_Classement res.data.status = " + res.data.status);
|
||||
// console.log(" In Getall_Session_Detail_Final_Note_Classement res.data.message r_class = " + res.data.message);
|
||||
setGetall_Session_Detail_Final_Note_Classement_api("true");
|
||||
setGetall_Session_Detail_Final_Note_Classement_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 inscription_id = JSON.parse(x).inscription_id;
|
||||
var session_id = JSON.parse(x).session_id;
|
||||
var type_eval = JSON.parse(x).type_eval;
|
||||
var ue_id = JSON.parse(x).ue_id;
|
||||
var class_id = JSON.parse(x).class_id;
|
||||
var moyenne = JSON.parse(x).moyenne;
|
||||
var somme = JSON.parse(x).somme;
|
||||
var nb_evaluation = JSON.parse(x).nb_evaluation;
|
||||
|
||||
var ue_id_code = JSON.parse(x).ue_id_code;
|
||||
var class_id_external_code = JSON.parse(x).class_id_external_code;
|
||||
var inscription_id_mail = JSON.parse(x).inscription_id_mail;
|
||||
var inscription_id_nom = JSON.parse(x).inscription_id_nom;
|
||||
var inscription_id_prenom = JSON.parse(x).inscription_id_prenom;
|
||||
|
||||
|
||||
|
||||
//---
|
||||
var node = {
|
||||
"_id": local_id,
|
||||
"id": localid,
|
||||
"label": local_id,
|
||||
"inscription_id": inscription_id,
|
||||
"session_id": session_id,
|
||||
"type_eval": type_eval,
|
||||
"ue_id": ue_id,
|
||||
"class_id": class_id,
|
||||
"moyenne": moyenne,
|
||||
"somme": somme,
|
||||
"nb_evaluation": nb_evaluation,
|
||||
|
||||
"ue_id_code": ue_id_code,
|
||||
"class_id_external_code": class_id_external_code,
|
||||
"inscription_id_mail": inscription_id_mail,
|
||||
"inscription_id_nom": inscription_id_nom,
|
||||
"inscription_id_prenom": inscription_id_prenom,
|
||||
|
||||
};
|
||||
new_data2.push(node);
|
||||
});
|
||||
|
||||
//---
|
||||
var node = {
|
||||
"_id": "",
|
||||
"id": "",
|
||||
"label": "",
|
||||
"inscription_id": "",
|
||||
"session_id": "",
|
||||
"type_eval": "",
|
||||
"ue_id": "",
|
||||
"class_id": "",
|
||||
"moyenne": "",
|
||||
"somme": "",
|
||||
"nb_evaluation": "",
|
||||
"ue_id_code": "",
|
||||
"class_id_external_code": "",
|
||||
"inscription_id_mail": "",
|
||||
"inscription_id_nom": "",
|
||||
"inscription_id_prenom": "",
|
||||
|
||||
};
|
||||
new_data2.push(node);
|
||||
|
||||
if (new_data2.length > 0)
|
||||
setNew_Getall_Session_Detail_Final_Note_Classement_result(new_data2);
|
||||
|
||||
}
|
||||
else {
|
||||
setGetall_Session_Detail_Final_Note_Classement_api("false");
|
||||
setGetall_Session_Detail_Final_Note_Classement_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_Session_Detail_Final_Note_Classement = ', error);
|
||||
setGetall_Session_Detail_Final_Note_Classement_api("false");
|
||||
// alert(" Impossible de recuperer la liste des évaluations");
|
||||
setdisplay_alert_mysy("1");
|
||||
setalert_message(" Impossible de recuperer la liste des évaluations");
|
||||
setalert_type("error");
|
||||
//setmyApimyApiMessage("")
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
const [New_Getall_Session_Final_Note_Classement_result, setNew_Getall_Session_Final_Note_Classement_result] = useState([]);
|
||||
|
||||
const [Getall_Session_Final_Note_Classement_api, setGetall_Session_Final_Note_Classement_api] = useState();
|
||||
const [Getall_Session_Final_Note_Classement_message, setGetall_Session_Final_Note_Classement_message] = useState();
|
||||
const [Getall_Session_Final_Note_Classement_result, setGetall_Session_Final_Note_Classement_result] = useState([]);
|
||||
function Getall_Session_Final_Note_Classement(event) {
|
||||
|
||||
var form = new FormData();
|
||||
|
||||
|
||||
const stored_cookie = getCookie('tokenmysypart');
|
||||
form.append("token", stored_cookie);
|
||||
form.append("tab_session_id", props.related_collection_recid);
|
||||
|
||||
|
||||
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_List_Evaluation_Final_Note_Classement_With_Filter";
|
||||
|
||||
axios.post(myurl, form).then(res => {
|
||||
|
||||
if (String(res.data.status) === String("true")) {
|
||||
// console.log(" In Getall_Session_Final_Note_Classement res.data.status = " + res.data.status);
|
||||
//console.log(" In Getall_Session_Final_Note_Classement res.data.message r_class = " + res.data.message);
|
||||
setGetall_Session_Final_Note_Classement_api("true");
|
||||
setGetall_Session_Final_Note_Classement_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 inscription_id = JSON.parse(x).inscription_id;
|
||||
var session_id = JSON.parse(x).session_id;
|
||||
var type_eval = JSON.parse(x).type_eval;
|
||||
var ue_id = JSON.parse(x).ue_id;
|
||||
var class_id = JSON.parse(x).class_id;
|
||||
var note_td = JSON.parse(x).note_td;
|
||||
var note_tp = JSON.parse(x).note_tp;
|
||||
var note_examen = JSON.parse(x).note_examen;
|
||||
var regle_calcul = JSON.parse(x).regle_calcul;
|
||||
var note_finale = JSON.parse(x).note_finale;
|
||||
|
||||
var ue_id_code = JSON.parse(x).ue_id_code;
|
||||
var class_id_external_code = JSON.parse(x).class_id_external_code;
|
||||
var inscription_id_mail = JSON.parse(x).inscription_id_mail;
|
||||
var inscription_id_nom = JSON.parse(x).inscription_id_nom;
|
||||
var inscription_id_prenom = JSON.parse(x).inscription_id_prenom;
|
||||
|
||||
|
||||
|
||||
//---
|
||||
var node = {
|
||||
"_id": local_id,
|
||||
"id": localid,
|
||||
"label": local_id,
|
||||
"inscription_id": inscription_id,
|
||||
"session_id": session_id,
|
||||
"type_eval": type_eval,
|
||||
"ue_id": ue_id,
|
||||
"class_id": class_id,
|
||||
"note_td": note_td,
|
||||
"note_tp": note_tp,
|
||||
"note_examen": note_examen,
|
||||
"regle_calcul": regle_calcul,
|
||||
"note_finale": note_finale,
|
||||
|
||||
"ue_id_code": ue_id_code,
|
||||
"class_id_external_code": class_id_external_code,
|
||||
"inscription_id_mail": inscription_id_mail,
|
||||
"inscription_id_nom": inscription_id_nom,
|
||||
"inscription_id_prenom": inscription_id_prenom,
|
||||
|
||||
};
|
||||
new_data2.push(node);
|
||||
});
|
||||
|
||||
//---
|
||||
var node = {
|
||||
"_id": "",
|
||||
"id": "",
|
||||
"label": "",
|
||||
"inscription_id": "",
|
||||
"session_id": "",
|
||||
"type_eval": "",
|
||||
"ue_id": "",
|
||||
"note_td": "",
|
||||
"note_tp": "",
|
||||
"note_examen": "",
|
||||
"regle_calcul": "",
|
||||
"note_finale": "",
|
||||
"ue_id_code": "",
|
||||
"class_id_external_code": "",
|
||||
"inscription_id_mail": "",
|
||||
"inscription_id_nom": "",
|
||||
"inscription_id_prenom": "",
|
||||
|
||||
};
|
||||
new_data2.push(node);
|
||||
|
||||
if (new_data2.length > 0)
|
||||
setNew_Getall_Session_Final_Note_Classement_result(new_data2);
|
||||
|
||||
}
|
||||
else {
|
||||
setGetall_Session_Final_Note_Classement_api("false");
|
||||
setGetall_Session_Final_Note_Classement_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_Session_Final_Note_Classement = ', error);
|
||||
setGetall_Session_Final_Note_Classement_api("false");
|
||||
// alert(" Impossible de recuperer la liste des évaluations");
|
||||
setdisplay_alert_mysy("1");
|
||||
setalert_message(" Impossible de recuperer la liste des évaluations");
|
||||
setalert_type("error");
|
||||
//setmyApimyApiMessage("")
|
||||
})
|
||||
}
|
||||
useEffect(() => {
|
||||
|
||||
Getall_Session_Detail_Final_Note_Classement();
|
||||
Getall_Session_Final_Note_Classement();
|
||||
|
||||
|
||||
}, [])
|
||||
|
||||
|
||||
const [gridline_id, setgridline_id] = useState("");
|
||||
const [selectionModel_note_finale_classement, setselectionModel_note_finale_classement] = React.useState([]);
|
||||
|
||||
|
||||
const [gridline_detail_id, setgridline_detail_id] = useState("");
|
||||
const [selectionModel_detail_note_finale_classement, setselectionModel_detail_note_finale_classement] = React.useState([]);
|
||||
|
||||
const [display_alert_mysy, setdisplay_alert_mysy] = useState("");
|
||||
const [alert_message, setalert_message] = useState("");
|
||||
const [alert_type, setalert_type] = useState("");
|
||||
|
||||
function clear_alert_message() {
|
||||
setalert_message("");
|
||||
}
|
||||
function clear_alert_type() {
|
||||
setalert_type("");
|
||||
}
|
||||
function clear_display_alert_mysy() {
|
||||
setdisplay_alert_mysy("");
|
||||
}
|
||||
|
||||
|
||||
return (
|
||||
<div className="module_session_note_classement">
|
||||
|
||||
{isLoading && <div className="loader-container">
|
||||
<div className="mysy_spinner"> <img src={img_loading_spin} /> </div>
|
||||
</div>}
|
||||
|
||||
{/*** Affichage des messages d'alerte*/}
|
||||
{display_alert_mysy && String(display_alert_mysy) === "1" &&
|
||||
<Module_Alert_Confirmation alert_message={alert_message}
|
||||
alert_type={alert_type}
|
||||
clear_alert_message={clear_alert_message}
|
||||
clear_alert_type={clear_alert_type}
|
||||
clear_display_alert_mysy={clear_display_alert_mysy}
|
||||
/>
|
||||
}
|
||||
{/*** FIN Affichage des messages d'alerte*/}
|
||||
<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' }}>
|
||||
|
||||
|
||||
<nav style={{ textAlign: 'center' }}> Matrice des notes & Rand</nav>
|
||||
<Box
|
||||
sx={{
|
||||
height: 500,
|
||||
width: '100%',
|
||||
paddingRight: '1px',
|
||||
|
||||
// Gestion des cellule a distance ou presentiel
|
||||
'& .cell--distantiel': {
|
||||
backgroundColor: '#AFE1AF',
|
||||
color: 'black',
|
||||
},
|
||||
|
||||
'& .cell--presentiel': {
|
||||
backgroundColor: '#AFE1AF',
|
||||
color: 'black',
|
||||
},
|
||||
|
||||
|
||||
// gestion couleur des lignes avec le statut d'inscription
|
||||
'& .line--statut--annule': {
|
||||
backgroundColor: '#D8D8D8',
|
||||
color: 'white',
|
||||
},
|
||||
|
||||
'& .line--statut--inscrit': {
|
||||
backgroundColor: '#CEF6D8',
|
||||
color: 'black',
|
||||
},
|
||||
'& .line--statut--preinscrit': {
|
||||
backgroundColor: '#F7F2E0',
|
||||
color: 'black',
|
||||
},
|
||||
|
||||
|
||||
/*"& .MuiDataGrid-virtualScrollerRenderZone": {
|
||||
"& .MuiDataGrid-row": {
|
||||
"&:nth-child(2n)": { backgroundColor: "rgba(235, 235, 235, .7)" }
|
||||
}
|
||||
},*/
|
||||
"& .MuiDataGrid-columnHeaders": {
|
||||
backgroundColor: "#c8cfd5",
|
||||
color: "black",
|
||||
fontSize: 14
|
||||
},
|
||||
|
||||
'& .line--statut--selected': {
|
||||
backgroundColor: '#FBF2EF',
|
||||
color: 'black',
|
||||
},
|
||||
'& .line--statut--pair': {
|
||||
backgroundColor: 'rgba(235, 235, 235, .7)',
|
||||
color: 'black',
|
||||
},
|
||||
'& .line--statut--impair': {
|
||||
backgroundColor: '#FFFFFF',
|
||||
color: 'black',
|
||||
},
|
||||
[`& .${gridClasses.cell}`]: {
|
||||
py: 1,
|
||||
},
|
||||
|
||||
|
||||
}}
|
||||
>
|
||||
<DataGrid
|
||||
checkboxSelection
|
||||
onSelectionModelChange={(newSelectionModel) => {
|
||||
setselectionModel_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_note_finale_classement}
|
||||
|
||||
localeText={frFR.components.MuiDataGrid.defaultProps.localeText}
|
||||
rows={Getall_Session_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,
|
||||
|
||||
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,
|
||||
|
||||
|
||||
|
||||
}
|
||||
))}
|
||||
|
||||
columns={columns_list_evaluation_note_classement_final}
|
||||
pageSize={10}
|
||||
className="datagridclass"
|
||||
|
||||
onRowDoubleClick={(newSelectionModel) => {
|
||||
|
||||
|
||||
|
||||
}}
|
||||
|
||||
rowsPerPageOptions={[10]}
|
||||
disableSelectionOnClick
|
||||
components={{
|
||||
Toolbar: GridToolbar,
|
||||
}}
|
||||
//sx={datagridSx}
|
||||
getCellClassName={(params) => {
|
||||
|
||||
|
||||
|
||||
}}
|
||||
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"}
|
||||
sx={{
|
||||
"& .MuiDataGrid-cellContent": {
|
||||
minHeight: 50,
|
||||
|
||||
}
|
||||
}}
|
||||
|
||||
/>
|
||||
</Box>
|
||||
<br />
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<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' }}>
|
||||
|
||||
|
||||
<nav style={{ textAlign: 'center' }}> Matrice détaillée des notes </nav>
|
||||
<Box
|
||||
sx={{
|
||||
height: 500,
|
||||
width: '100%',
|
||||
paddingRight: '1px',
|
||||
|
||||
// Gestion des cellule a distance ou presentiel
|
||||
'& .cell--distantiel': {
|
||||
backgroundColor: '#AFE1AF',
|
||||
color: 'black',
|
||||
},
|
||||
|
||||
'& .cell--presentiel': {
|
||||
backgroundColor: '#AFE1AF',
|
||||
color: 'black',
|
||||
},
|
||||
|
||||
|
||||
// gestion couleur des lignes avec le statut d'inscription
|
||||
'& .line--statut--annule': {
|
||||
backgroundColor: '#D8D8D8',
|
||||
color: 'white',
|
||||
},
|
||||
|
||||
'& .line--statut--inscrit': {
|
||||
backgroundColor: '#CEF6D8',
|
||||
color: 'black',
|
||||
},
|
||||
'& .line--statut--preinscrit': {
|
||||
backgroundColor: '#F7F2E0',
|
||||
color: 'black',
|
||||
},
|
||||
|
||||
|
||||
/*"& .MuiDataGrid-virtualScrollerRenderZone": {
|
||||
"& .MuiDataGrid-row": {
|
||||
"&:nth-child(2n)": { backgroundColor: "rgba(235, 235, 235, .7)" }
|
||||
}
|
||||
},*/
|
||||
"& .MuiDataGrid-columnHeaders": {
|
||||
backgroundColor: "#c8cfd5",
|
||||
color: "black",
|
||||
fontSize: 14
|
||||
},
|
||||
|
||||
'& .line--statut--selected': {
|
||||
backgroundColor: '#FBF2EF',
|
||||
color: 'black',
|
||||
},
|
||||
'& .line--statut--pair': {
|
||||
backgroundColor: 'rgba(235, 235, 235, .7)',
|
||||
color: 'black',
|
||||
},
|
||||
'& .line--statut--impair': {
|
||||
backgroundColor: '#FFFFFF',
|
||||
color: 'black',
|
||||
},
|
||||
[`& .${gridClasses.cell}`]: {
|
||||
py: 1,
|
||||
},
|
||||
|
||||
|
||||
}}
|
||||
>
|
||||
<DataGrid
|
||||
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}
|
||||
|
||||
localeText={frFR.components.MuiDataGrid.defaultProps.localeText}
|
||||
rows={Getall_Session_Detail_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,
|
||||
moyenne: JSON.parse(item).moyenne,
|
||||
somme: JSON.parse(item).somme,
|
||||
nb_evaluation: JSON.parse(item).nb_evaluation,
|
||||
|
||||
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,
|
||||
|
||||
}
|
||||
))}
|
||||
|
||||
columns={columns_list_evaluation_detail_note_classement_final}
|
||||
pageSize={10}
|
||||
className="datagridclass"
|
||||
|
||||
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,
|
||||
}}
|
||||
//sx={datagridSx}
|
||||
getCellClassName={(params) => {
|
||||
|
||||
|
||||
|
||||
}}
|
||||
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"}
|
||||
sx={{
|
||||
"& .MuiDataGrid-cellContent": {
|
||||
minHeight: 50,
|
||||
|
||||
}
|
||||
}}
|
||||
|
||||
/>
|
||||
</Box>
|
||||
<br />
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div >
|
||||
);
|
||||
}
|
||||
|
||||
export default Module_Session_Notes_Classement;
|
||||
|
|
@ -1,25 +1,23 @@
|
|||
import React, { useRef, useState, useEffect } from "react";
|
||||
import TextField from '@mui/material/TextField';
|
||||
import MenuItem from '@mui/material/MenuItem';
|
||||
|
||||
import 'react-confirm-alert/src/react-confirm-alert.css'; // Import css
|
||||
import Button from '@mui/material/Button';
|
||||
import axios from "axios";
|
||||
import { getCookie, setCookie } from 'react-use-cookie';
|
||||
import { useHistory } from "react-router-dom";
|
||||
import CheckOut from "./CheckOut";
|
||||
|
||||
import { DataGrid, GridToolbar, frFR } from '@mui/x-data-grid';
|
||||
import "react-draft-wysiwyg/dist/react-draft-wysiwyg.css";
|
||||
import { Editor } from '@tinymce/tinymce-react';
|
||||
import parse from 'html-react-parser';
|
||||
import { FcViewDetails, FcDisapprove } from "react-icons/fc";
|
||||
import { FcPodiumWithAudience } from "react-icons/fc";
|
||||
|
||||
import { FcInfo } from "react-icons/fc";
|
||||
import { LiaDharmachakraSolid } from "react-icons/lia";
|
||||
|
||||
import 'react-tooltip/dist/react-tooltip.css'
|
||||
import { Tooltip } from 'react-tooltip'
|
||||
import add_plus from "../mysy_img/plus.png";
|
||||
import excel_icone from "../mysy_img/excel_icone.png";
|
||||
import participants from "../mysy_img/participants.png";
|
||||
|
||||
import fileDownload from 'js-file-download';
|
||||
import Popup from 'reactjs-popup';
|
||||
import 'reactjs-popup/dist/index.css';
|
||||
|
@ -31,8 +29,7 @@ import moment from "moment";
|
|||
import InputAdornment from '@mui/material/InputAdornment';
|
||||
import { AiFillCloseCircle } from "react-icons/ai";
|
||||
import Box from '@mui/material/Box';
|
||||
import { Typography, LinearProgress } from '@mui/material';
|
||||
import styled from 'styled-components';
|
||||
|
||||
import { CiTrash } from "react-icons/ci";
|
||||
import { MdAddCircleOutline, MdRemoveCircleOutline } from "react-icons/md";
|
||||
import Dialog from '@mui/material/Dialog';
|
||||
|
@ -41,8 +38,7 @@ import DialogContent from '@mui/material/DialogContent';
|
|||
import DialogContentText from '@mui/material/DialogContentText';
|
||||
import DialogTitle from '@mui/material/DialogTitle';
|
||||
|
||||
import Visibility from '@mui/icons-material/Visibility';
|
||||
import VisibilityOff from '@mui/icons-material/VisibilityOff';
|
||||
|
||||
import { Fab } from "@material-ui/core";
|
||||
import { IoMdAddCircle, IoIosRemoveCircleOutline } from "react-icons/io";
|
||||
import { AiTwotoneEdit, AiTwotoneSave } from "react-icons/ai";
|
||||
|
@ -56,7 +52,7 @@ import { IoAddCircleOutline, IoCloseCircleOutline } from "react-icons/io5";
|
|||
import Rating from '@mui/material/Rating';
|
||||
import Module_Selection_Evaluation_Apprenants from "./Module_Selection_Evaluation_Apprenants";
|
||||
import AttachFileIcon from '@mui/icons-material/AttachFile';
|
||||
|
||||
import { GoDuplicate } from "react-icons/go";
|
||||
import Module_Alert_Confirmation from "./Module_Alert_Confirmation";
|
||||
|
||||
const Notes_Evaluation = (props) => {
|
||||
|
@ -227,6 +223,62 @@ const Notes_Evaluation = (props) => {
|
|||
{ field: 'eval_date_heure_debut', headerName: 'Début', flex: 1, hide: false, minWidth: 180, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
{ field: 'eval_date_heure_fin', headerName: 'Fin', flex: 1, hide: false, minWidth: 180, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||
|
||||
{
|
||||
field: "dupliquer", headerName: 'Dupliquer',
|
||||
renderCell: (cellValues) => {
|
||||
return (
|
||||
|
||||
<Popup
|
||||
trigger={<Button
|
||||
>
|
||||
<GoDuplicate />
|
||||
|
||||
</Button>}
|
||||
modal
|
||||
nested
|
||||
position="center center"
|
||||
>
|
||||
{close => (
|
||||
<div>
|
||||
<button className="gest_close" onClick={close}>
|
||||
×
|
||||
</button>
|
||||
<div className="gest_header"> MySy Information </div>
|
||||
<div className="gest_content">
|
||||
{' '}
|
||||
|
||||
En confirmant cette opération, l'évaluation sera <i> duppliquée </i>. <br />
|
||||
|
||||
</div>
|
||||
<div className="gest_actions">
|
||||
<div style={{ "width": "45%", "float": "left" }}>
|
||||
<button className="gest_bton_popup" onClick={(event) => {
|
||||
Duplicate_Evaluation_Data(cellValues.row._id);
|
||||
//console.log('modal closed ');
|
||||
close();
|
||||
}}> Valider </button>
|
||||
|
||||
</div>
|
||||
<div style={{ "width": "45%", "float": "right" }}>
|
||||
<button
|
||||
className="gest_bton_popup"
|
||||
onClick={() => {
|
||||
//console.log('modal closed ');
|
||||
close();
|
||||
}}
|
||||
>
|
||||
Annuler
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
</Popup>
|
||||
|
||||
|
||||
);
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
field: "Detail", headerName: 'Voir detail',
|
||||
|
@ -1936,6 +1988,83 @@ const Notes_Evaluation = (props) => {
|
|||
})
|
||||
}
|
||||
|
||||
|
||||
const [Duplicate_Evaluation_Data_api, setDuplicate_Evaluation_Data_api] = useState();
|
||||
const [Duplicate_Evaluation_Data_message, setDuplicate_Evaluation_Data_message] = useState();
|
||||
const [Duplicate_Evaluation_Data_result, setDuplicate_Evaluation_Data_result] = useState();
|
||||
function Duplicate_Evaluation_Data(local_evaluation_id) {
|
||||
var form = new FormData();
|
||||
//form.append("token","K3cw63eKokKSbV4spjQ48SUNnfy80yrXfA");
|
||||
|
||||
|
||||
const stored_cookie = getCookie('tokenmysypart');
|
||||
form.append("token", stored_cookie);
|
||||
form.append("evaluation_id", local_evaluation_id);
|
||||
|
||||
|
||||
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Duplicate_Evaluation_Planification/";
|
||||
|
||||
|
||||
setLoading(true);
|
||||
axios.post(myurl, form).then(res => {
|
||||
//console.log(" In Duplicate_Evaluation_Data res.data.status = " + res.data.status);
|
||||
//console.log(" In Duplicate_Evaluation_Data res.data.message r_class = " + res.data.message);
|
||||
|
||||
setLoading(false);
|
||||
|
||||
if (String(res.data.status) === String("true")) {
|
||||
setDuplicate_Evaluation_Data_api("true");
|
||||
setDuplicate_Evaluation_Data_result(res.data.message);
|
||||
|
||||
Disable_Evaluation_DetailFields();
|
||||
setevaluation_data_changed("");
|
||||
setevaluation_data_edit_mode("");
|
||||
|
||||
Disable_Evaluation_DetailFields();
|
||||
setevaluation_data_changed("");
|
||||
setevaluation_data_edit_mode("");
|
||||
setdisplay_evaluation("");
|
||||
setadd_one_evaluation("");
|
||||
setsubmenu("");
|
||||
|
||||
var divh = document.getElementById('myRef').offsetTop;
|
||||
window.scrollTo({
|
||||
top: 0,
|
||||
behavior: "smooth",
|
||||
});
|
||||
|
||||
|
||||
Getall_Partner_Evaluation();
|
||||
// alert(res.data.message)
|
||||
setdisplay_alert_mysy("1");
|
||||
setalert_message(res.data.message);
|
||||
setalert_type("success");
|
||||
|
||||
}
|
||||
else {
|
||||
setDuplicate_Evaluation_Data_api("false");
|
||||
setDuplicate_Evaluation_Data_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.log('UpdateStagiaireData : Not good man :( Duplicate_Evaluation_Data = ' + error);
|
||||
setDuplicate_Evaluation_Data_api("false");
|
||||
// alert(" Impossible d'ajouter ou mettre à jour l'évaluation");
|
||||
setdisplay_alert_mysy("1");
|
||||
setalert_message(" Impossible d'ajouter ou mettre à jour l'évaluation");
|
||||
setalert_type("error");
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
function Annule_Evaluaton_DetailFields() {
|
||||
Get_Given_Evaluation_Data(selected_id);
|
||||
|
||||
|
|
|
@ -75,6 +75,8 @@ import { AiOutlineUserAdd } from "react-icons/ai";
|
|||
import PartnerClientActivite from "./PartnerClient_Activite";
|
||||
|
||||
|
||||
|
||||
|
||||
import Mon_Tableau_De_Bord from "./Mon_Tableau_De_Bord";
|
||||
import Dashbord_Formation from "./Dashbord_Formation";
|
||||
import Partner_Prix_Achat from "./Partner_Prix_Achat";
|
||||
|
@ -129,10 +131,11 @@ import Partner_Product_Service from "./Partner_Product_Service";
|
|||
import Module_Email_Management from "./Module_Email_Management";
|
||||
import ForwardToInboxIcon from '@mui/icons-material/ForwardToInbox';
|
||||
|
||||
|
||||
|
||||
import Badge from '@mui/material/Badge';
|
||||
import { styled } from '@mui/material/styles';
|
||||
import IconButton from '@mui/material/IconButton';
|
||||
import ShoppingCartIcon from '@mui/icons-material/ShoppingCart';
|
||||
|
||||
|
||||
import Modules_Mes_Documents from "./Modules_Mes_Documents";
|
||||
|
||||
|
@ -2469,6 +2472,7 @@ const Partner = (props) => {
|
|||
<DisplayPartnerSession
|
||||
conntected_account_id={conntected_account_id}
|
||||
conntected_employee_id={conntected_employee_id}
|
||||
formation_initiale={formation_initiale}
|
||||
object_key={orderid}
|
||||
class_internal_url={packs}
|
||||
read_access={check_user_acces_right("session", "read")}
|
||||
|
@ -3234,6 +3238,7 @@ const Partner = (props) => {
|
|||
|
||||
<DisplayPartnerSession
|
||||
conntected_account_id={conntected_account_id}
|
||||
formation_initiale={formation_initiale}
|
||||
conntected_employee_id={conntected_employee_id} object_key={orderid} class_internal_url={packs}
|
||||
read_access={check_user_acces_right("session", "read")} write_access={check_user_acces_right("session", "write")}
|
||||
check_user_acces_right={check_user_acces_right} reduce={"1"} />
|
||||
|
|
|
@ -1,47 +1,23 @@
|
|||
import React, { useRef, useState, useEffect } from "react";
|
||||
import TextField from '@mui/material/TextField';
|
||||
import MenuItem from '@mui/material/MenuItem';
|
||||
import 'react-confirm-alert/src/react-confirm-alert.css'; // Import css
|
||||
import Button from '@mui/material/Button';
|
||||
import axios from "axios";
|
||||
import { getCookie, setCookie } from 'react-use-cookie';
|
||||
import { useHistory } from "react-router-dom";
|
||||
import CheckOut from "./CheckOut";
|
||||
import { DataGrid, GridToolbar, frFR } from '@mui/x-data-grid';
|
||||
import "react-draft-wysiwyg/dist/react-draft-wysiwyg.css";
|
||||
import { Editor } from '@tinymce/tinymce-react';
|
||||
import parse from 'html-react-parser';
|
||||
import { FcViewDetails, FcDisapprove } from "react-icons/fc";
|
||||
import 'react-tooltip/dist/react-tooltip.css'
|
||||
import { Tooltip } from 'react-tooltip'
|
||||
|
||||
import Autocomplete from '@mui/material/Autocomplete';
|
||||
import Popup from 'reactjs-popup';
|
||||
import 'reactjs-popup/dist/index.css';
|
||||
import { FcCancel, FcApproval, FcAcceptDatabase, FcPrint } from "react-icons/fc";
|
||||
import DatePicker from "react-datepicker";
|
||||
import "react-datepicker/dist/react-datepicker.css";
|
||||
import { format } from 'date-fns'
|
||||
import moment from "moment";
|
||||
import InputAdornment from '@mui/material/InputAdornment';
|
||||
import { AiFillCloseCircle } from "react-icons/ai";
|
||||
import Box from '@mui/material/Box';
|
||||
import { Typography, LinearProgress, sliderClasses } from '@mui/material';
|
||||
import styled from 'styled-components';
|
||||
import { CiTrash } from "react-icons/ci";
|
||||
import { MdAddCircleOutline, MdRemoveCircleOutline } from "react-icons/md";
|
||||
import Dialog from '@mui/material/Dialog';
|
||||
import DialogActions from '@mui/material/DialogActions';
|
||||
import DialogContent from '@mui/material/DialogContent';
|
||||
import DialogContentText from '@mui/material/DialogContentText';
|
||||
import DialogTitle from '@mui/material/DialogTitle';
|
||||
import { TransitionProps } from '@mui/material/transitions';
|
||||
import img_loading_spin from "./../mysy_img/mysy_spin_loading.gif";
|
||||
import { IoAddCircleOutline, IoCloseCircleOutline } from "react-icons/io5";
|
||||
import ToggleSwitch from "./ToggleSwitch";
|
||||
import { FcInfo } from "react-icons/fc";
|
||||
import Link from '@mui/material/Link';
|
||||
import { PiDotsThree } from "react-icons/pi";
|
||||
import Module_Alert_Confirmation from "./Module_Alert_Confirmation";
|
||||
|
||||
const Partner_Config_Ftion_Initiale = (props) => {
|
||||
|
||||
|
@ -192,7 +168,10 @@ const Partner_Config_Ftion_Initiale = (props) => {
|
|||
setgridline_type_eval_id("");
|
||||
|
||||
|
||||
alert(res.data.message);
|
||||
// alert(res.data.message)
|
||||
setdisplay_alert_mysy("1");
|
||||
setalert_message(res.data.message);
|
||||
setalert_type("success");
|
||||
if (document.getElementById('myRef_head')) {
|
||||
var divh = document.getElementById('myRef_head').offsetTop;
|
||||
window.scrollTo({
|
||||
|
@ -206,7 +185,10 @@ const Partner_Config_Ftion_Initiale = (props) => {
|
|||
else {
|
||||
sethandleClick_delete_Type_Evaluation_api("false");
|
||||
sethandleClick_delete_Type_Evaluation_message(res.data.message);
|
||||
alert(res.data.message);
|
||||
// alert(res.data.message)
|
||||
setdisplay_alert_mysy("1");
|
||||
setalert_message(res.data.message);
|
||||
setalert_type("error");
|
||||
}
|
||||
|
||||
}).catch((error) => {
|
||||
|
@ -304,7 +286,10 @@ const Partner_Config_Ftion_Initiale = (props) => {
|
|||
else {
|
||||
setGetall_Parter_config_type_evaluation_api("false");
|
||||
setGetall_Parter_config_type_evaluation_message(res.data.message);
|
||||
alert(res.data.message);
|
||||
// alert(res.data.message)
|
||||
setdisplay_alert_mysy("1");
|
||||
setalert_message(res.data.message);
|
||||
setalert_type("error");
|
||||
}
|
||||
|
||||
}).catch((error) => {
|
||||
|
@ -553,7 +538,11 @@ const Partner_Config_Ftion_Initiale = (props) => {
|
|||
setgridline_type_eval_id("");
|
||||
|
||||
|
||||
alert(res.data.message);
|
||||
// alert(res.data.message)
|
||||
setdisplay_alert_mysy("1");
|
||||
setalert_message(res.data.message);
|
||||
setalert_type("success");
|
||||
|
||||
if (document.getElementById('myRef_head')) {
|
||||
var divh = document.getElementById('myRef_head').offsetTop;
|
||||
window.scrollTo({
|
||||
|
@ -566,7 +555,10 @@ const Partner_Config_Ftion_Initiale = (props) => {
|
|||
else {
|
||||
setAdd_Config_Type_Eval_api("false");
|
||||
setAdd_Config_Type_Eval_message(res.data.message);
|
||||
alert(res.data.message);
|
||||
// alert(res.data.message)
|
||||
setdisplay_alert_mysy("1");
|
||||
setalert_message(res.data.message);
|
||||
setalert_type("error");
|
||||
}
|
||||
|
||||
}).catch((error) => {
|
||||
|
@ -620,8 +612,10 @@ const Partner_Config_Ftion_Initiale = (props) => {
|
|||
setadd_config_type_eval("");
|
||||
setgridline_type_eval_id("");
|
||||
|
||||
|
||||
alert(res.data.message);
|
||||
// alert(res.data.message)
|
||||
setdisplay_alert_mysy("1");
|
||||
setalert_message(res.data.message);
|
||||
setalert_type("success");
|
||||
if (document.getElementById('myRef_head')) {
|
||||
var divh = document.getElementById('myRef_head').offsetTop;
|
||||
window.scrollTo({
|
||||
|
@ -634,7 +628,10 @@ const Partner_Config_Ftion_Initiale = (props) => {
|
|||
else {
|
||||
setUpdate_Config_Type_Eval_api("false");
|
||||
setUpdate_Config_Type_Eval_message(res.data.message);
|
||||
alert(res.data.message);
|
||||
// alert(res.data.message)
|
||||
setdisplay_alert_mysy("1");
|
||||
setalert_message(res.data.message);
|
||||
setalert_type("error");
|
||||
}
|
||||
|
||||
}).catch((error) => {
|
||||
|
@ -657,12 +654,38 @@ const Partner_Config_Ftion_Initiale = (props) => {
|
|||
setdisplay_detail_type_eval("");
|
||||
setadd_config_type_eval("1");
|
||||
}
|
||||
|
||||
|
||||
const [display_alert_mysy, setdisplay_alert_mysy] = useState("");
|
||||
const [alert_message, setalert_message] = useState("");
|
||||
const [alert_type, setalert_type] = useState("");
|
||||
|
||||
function clear_alert_message() {
|
||||
setalert_message("");
|
||||
}
|
||||
function clear_alert_type() {
|
||||
setalert_type("");
|
||||
}
|
||||
|
||||
function clear_display_alert_mysy() {
|
||||
setdisplay_alert_mysy("");
|
||||
}
|
||||
|
||||
return (
|
||||
<div className="partner_ftion_initiale_configuration">
|
||||
{isLoading && <div className="loader-container">
|
||||
<div className="mysy_spinner"> <img src={img_loading_spin} /> </div>
|
||||
</div>}
|
||||
|
||||
{/*** Affichage des messages d'alerte*/}
|
||||
{display_alert_mysy && String(display_alert_mysy) === "1" &&
|
||||
<Module_Alert_Confirmation alert_message={alert_message}
|
||||
alert_type={alert_type}
|
||||
clear_alert_message={clear_alert_message}
|
||||
clear_alert_type={clear_alert_type}
|
||||
clear_display_alert_mysy={clear_display_alert_mysy}
|
||||
/>
|
||||
}
|
||||
{/*** FIN Affichage des messages d'alerte*/}
|
||||
|
||||
<h3 style={{ fontFamily: 'DM Sans' }}> Formation Initale configuration </h3>
|
||||
<div className="div_row" ref={myRef_head} id="myRef_head" >
|
||||
|
@ -1133,7 +1156,7 @@ const Partner_Config_Ftion_Initiale = (props) => {
|
|||
<div className="div_row" style={{ fontFamily: 'DM Sans' }}>
|
||||
Règle 3 : <br />
|
||||
Description : <br />
|
||||
(Moyenne Art.(TD) + Moyenne Art.(Controle Continue) + Exemen Final*1.5 ) / 3
|
||||
(Moyenne Art.(TD) + Moyenne Art.(Controle Continue) + Exemen Final*1.5 ) / 3
|
||||
</div>
|
||||
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -2809,7 +2809,7 @@
|
|||
|
||||
.MuiPaper-root{
|
||||
border-radius: 10px !important;
|
||||
background: #F8F9F9 !important;
|
||||
// background: #F8F9F9 !important;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -2804,7 +2804,7 @@
|
|||
|
||||
.MuiPaper-root{
|
||||
border-radius: 10px !important;
|
||||
background: #F8F9F9 !important;
|
||||
// background: #F8F9F9 !important;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -2820,7 +2820,7 @@
|
|||
|
||||
.MuiPaper-root{
|
||||
border-radius: 10px !important;
|
||||
background: #FFFFFF !important;
|
||||
// background: #FFFFFF !important;
|
||||
max-width: none !important;
|
||||
}
|
||||
|
||||
|
|
|
@ -2804,7 +2804,7 @@
|
|||
|
||||
.MuiPaper-root{
|
||||
border-radius: 10px !important;
|
||||
background: #F8F9F9 !important;
|
||||
// background: #F8F9F9 !important;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -196,6 +196,7 @@
|
|||
@import "./components/module_connexion_intranet_client";
|
||||
@import "./components/module_alert_confirmation";
|
||||
@import "./components/equipe_team";
|
||||
@import "./components/module_session_note_classement";
|
||||
|
||||
|
||||
// New Design 2025
|
||||
|
|
Loading…
Reference in New Issue