18/08/23 - 17h30

recette2
cherif 2023-08-18 17:29:23 +02:00
parent 5d1f4cc656
commit d5a0778f6a
4 changed files with 194 additions and 31 deletions

View File

@ -33,6 +33,7 @@ import styled from 'styled-components';
import { CiTrash } from "react-icons/ci";
import { MdAddCircleOutline, MdRemoveCircleOutline } from "react-icons/md";
const DisplayPartnerSession = (props) => {
const history = useHistory();
const [submenu, setsubmenu] = useState("");
@ -3613,6 +3614,7 @@ const DisplayPartnerSession = (props) => {
<div className="displaypartnersession">
<h3> Vos sessions de formation </h3>
<div className="titre1"> Utilisez les filtres !</div>
<div className="div_row" style={{ "marginBottom": "5px" }}>
<div className="div_row_gauche texte_area_filter" >

View File

@ -32,7 +32,12 @@ 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';
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';
const DisplayPartnerStagiaires = (props) => {
const history = useHistory();
@ -50,27 +55,29 @@ const DisplayPartnerStagiaires = (props) => {
const [p_filtre3, setp_filtre3] = useState();
const [p_filtre3_value, setp_filtre3_value] = useState();
const [p_filtre4, setp_filtre4] = useState();
const [p_filtre4_value, setp_filtre4_value] = useState();
const filters = [
{ value: 'code_session', label: 'Code Session' },
{ value: 'class_title', label: 'Titre Formation' },
{ value: 'certif', label: 'Certification' }
]
const [selectedfilt1, setselectedfilt1] = useState("");
const [selectedfilt2, setselectedfilt2] = useState("");
const [selectedfilt3, setselectedfilt3] = useState("");
const [datagrid_columns_size_model1, setdatagrid_columns_size_model1] = useState(200);
const [datagrid_columns_size_model2, setdatagrid_columns_size_model2] = useState(80);
const columns = [
{ field: '_id', headerName: '_id', hide: true },
{ field: 'id', headerName: 'id', hide: true },
{ field: 'class_internal_url', headerName: 'class_internal_url', hide: true },
{ field: 'email', headerName: 'email', width: 200, hideable: false, flex: 1 },
{ field: 'email', headerName: 'email', width: 150, hideable: false, },
{ field: 'nom', headerName: 'nom', width: 150, hide: false, editable: true },
{ field: 'prenom', headerName: 'prenom', width: 150, hide: false, editable: true },
{ field: 'employeur', headerName: 'Employeur', width: 200, hide: false, editable: true },
{ field: 'employeur', headerName: 'Employeur', width: 150, hide: false, editable: true },
{
field: 'status', headerName: 'Statut', hide: false, width: datagrid_columns_size_model2,
valueFormatter: (params) => {
@ -161,6 +168,9 @@ const DisplayPartnerStagiaires = (props) => {
setp_filtre3();
setp_filtre3_value();
setp_filtre4();
setp_filtre4_value();
Getall_TrainingParticpant_no_filter();
}
@ -178,11 +188,12 @@ const DisplayPartnerStagiaires = (props) => {
var filtre1 = p_filtre1;
var filtre2 = p_filtre2;
var filtre3 = p_filtre3;
var filtre4 = p_filtre4;
var filtre1_value = "";
var filtre2_value = "";
var filtre3_value = "";
var filtre4_value = "";
// Recuperation des valeurs de filtres
if (p_filtre1_value) {
@ -196,10 +207,15 @@ const DisplayPartnerStagiaires = (props) => {
}
if (p_filtre3_value) {
filtre2_value = p_filtre3_value;
filtre3_value = p_filtre3_value;
form.append(filtre3, p_filtre3_value);
}
if (p_filtre4_value) {
filtre4_value = p_filtre4_value;
form.append(filtre4, p_filtre4_value);
}
const stored_cookie = getCookie('tokenmysypart');
form.append("token", stored_cookie);
@ -267,6 +283,8 @@ const DisplayPartnerStagiaires = (props) => {
const [display_detail_stagiaire, setdisplay_detail_stagiaire] = useState("");
const [selected_id, setselected_id] = useState("");
function handleClick_edit_session_From_Line(selected_row_id) {
var line = JSON.parse(rowss[selected_row_id]);
@ -282,6 +300,7 @@ const DisplayPartnerStagiaires = (props) => {
setselected_participant_email(line.email);
setselected_class_title(line.title);
setselected_id(line._id);
submenu_detail_stagaire();
@ -1081,6 +1100,7 @@ const DisplayPartnerStagiaires = (props) => {
formData.append("session_id", selected_code_session);
formData.append("email", selected_participant_email);
console.log(" ### userimgclassprofilchanged =", userimgclassprofilchanged)
@ -1754,6 +1774,8 @@ const DisplayPartnerStagiaires = (props) => {
form.append("price", p_detail_cout);
form.append("modefinancement", p_detail_mode_fin);
form.append("_id", selected_id);
var myurl = process.env.REACT_APP_API_URL + "myclass/api/UpdateStagiairetoClass/";
@ -1787,10 +1809,47 @@ const DisplayPartnerStagiaires = (props) => {
})
}
const [Dialog_1_message, setDialog_1_message] = React.useState(false);
const [Dialog_1_open, setDialog_1_open] = React.useState(false);
function Dialog_1_handle_change_participant_session(message) {
setDialog_1_message(message);
setDialog_1_open(true);
}
const Dialog_1_handleClose = () => {
//alert(" Utiliser le bouton 'fermer' ");
//setOpen(false);
};
const Dialog_1_handleClose_buton = () => {
setDialog_1_open(false);
};
return (
<div className="displaypartnerstagiaire">
<Dialog
open={Dialog_1_open}
onClose={Dialog_1_handleClose}
>
<DialogTitle>MySy Information</DialogTitle>
<DialogContent>
<DialogContentText>
{Dialog_1_message}
</DialogContentText>
</DialogContent>
<DialogActions>
<Button onClick={Dialog_1_handleClose_buton}>OK</Button>
</DialogActions>
</Dialog>
<h3> Vos sessions des stagiaires </h3>
<div className="titre1"> Utilisez les filtres !</div>
@ -1803,13 +1862,15 @@ const DisplayPartnerStagiaires = (props) => {
sx={{ m: 1, width: '100%' }}
value={p_filtre1}
onChange={(e) => {
setp_filtre1(e.target.value)
setp_filtre1(e.target.value);
}}
>
<MenuItem value="code_session" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }}>Code Session &nbsp;&nbsp;</MenuItem>
<MenuItem value="email" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }} >Email &nbsp;</MenuItem>
<MenuItem value="nom" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }} >Nom &nbsp;</MenuItem>
<MenuItem value="session_id" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }}>Code Session &nbsp;&nbsp;</MenuItem>
<MenuItem value="class_title" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }} >Titre Formation &nbsp;</MenuItem>
<MenuItem value="nom_inscrit" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }} >Nom participant &nbsp;</MenuItem>
</TextField>
</div>
@ -1880,13 +1941,15 @@ const DisplayPartnerStagiaires = (props) => {
options={filters}
value={p_filtre2}
onChange={(e) => {
setp_filtre2(e.target.value)
setp_filtre2(e.target.value);
}}
>
<MenuItem value="email" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }} >Email &nbsp;</MenuItem>
<MenuItem value="nom" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }} >Nom &nbsp;</MenuItem>
<MenuItem value="session_id" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }}>Code Session &nbsp;&nbsp;</MenuItem>
<MenuItem value="class_title" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }} >Titre Formation &nbsp;</MenuItem>
<MenuItem value="external_code" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }}>Code externe formation &nbsp;&nbsp;</MenuItem>
<MenuItem value="title" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }} >Titre Formation &nbsp;</MenuItem>
<MenuItem value="certif" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }} >Certifiée &nbsp;</MenuItem>
</TextField>
</div>
@ -1961,10 +2024,11 @@ const DisplayPartnerStagiaires = (props) => {
setp_filtre3(e.target.value)
}}
>
<MenuItem value="email" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }} >Email &nbsp;</MenuItem>
<MenuItem value="nom" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }} >Nom &nbsp;</MenuItem>
<MenuItem value="session_id" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }}>Code Session &nbsp;&nbsp;</MenuItem>
<MenuItem value="class_title" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }} >Titre Formation &nbsp;</MenuItem>
<MenuItem value="external_code" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }}>Code externe formation &nbsp;&nbsp;</MenuItem>
<MenuItem value="title" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }} >Titre Formation &nbsp;</MenuItem>
<MenuItem value="certif" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }} >Certifiée &nbsp;</MenuItem>
</TextField>
</div>
@ -1998,6 +2062,17 @@ const DisplayPartnerStagiaires = (props) => {
/>}
</div>
{String(p_filtre2).length > 3 && <div className='filter_bton_add' >
<Tooltip id="my-tooltip03" style={{ "fontSize": "12px" }} />
<a data-tooltip-id="my-tooltip03" data-tooltip-content="Ajouter une nouvelle ligne de filtre">
&nbsp; <MdAddCircleOutline
onClick={(e) => {
setp_filtre4("1");
}}
/>
</a>
</div>}
{String(p_filtre3).length > 3 && <div className='filter_bton_add'>
<Tooltip id="my-tooltip05" style={{ "fontSize": "12px" }} />
<a data-tooltip-id="my-tooltip05" data-tooltip-content="Supprimer cette ligne de filtre">
@ -2009,6 +2084,75 @@ const DisplayPartnerStagiaires = (props) => {
</div>}
</div>
}
{p_filtre4 &&
<div className="div_row" style={{ "marginBottom": "5px" }}>
<div className="div_row_gauche texte_area_filter">
<TextField
name="filtre4"
label="Choisir un champ"
select
sx={{ m: 1, width: '100%' }}
options={filters}
value={p_filtre4}
onChange={(e) => {
setp_filtre4(e.target.value)
}}
>
<MenuItem value="email" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }} >Email &nbsp;</MenuItem>
<MenuItem value="nom" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }} >Nom &nbsp;</MenuItem>
<MenuItem value="session_id" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }}>Code Session &nbsp;&nbsp;</MenuItem>
<MenuItem value="class_title" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }} >Titre Formation &nbsp;</MenuItem>
</TextField>
</div>
<div className="div_row_droite texte_area_filter_value" style={{ "marginTop": "0.5rem" }}>
{String(p_filtre4).length > 3 &&
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required
name="filtre4_value"
id="filtre4_value"
InputLabelProps={{
shrink: true,
}}
disabled={false}
className="disabled_style"
value={p_filtre4_value}
onChange={(e) => setp_filtre2_value(e.target.value)}
InputProps={{
endAdornment: (
<InputAdornment position="end">
<AiFillCloseCircle
style={{ 'cursor': "pointer", "color": "orangered" }}
onClick={(e) => {
setp_filtre4_value("");
}} />
</InputAdornment>
),
}}
/>}
</div>
{String(p_filtre2).length > 3 && <div className='filter_bton_add'>
<Tooltip id="my-tooltip04" style={{ "fontSize": "12px" }} />
<a data-tooltip-id="my-tooltip04" data-tooltip-content="Supprimer cette ligne de filtre">
&nbsp; <MdRemoveCircleOutline
onClick={(e) => {
setp_filtre4();
setp_filtre4_value();
}}
/>
</a>
</div>}
</div>
}
{<div className="div_row" style={{ "border": "None", "color": "orange", "textAlign": "center" }}>
<div className="div_row_gauche" style={{ "textAlign": 'left', 'marginLeft': '15px' }}>
@ -2093,6 +2237,7 @@ const DisplayPartnerStagiaires = (props) => {
rows={rowss.map((item, index) => (
{
id: index,
_id: JSON.parse(item)._id,
class_internal_url: JSON.parse(item).class_internal_url,
session_id: JSON.parse(item).session_id,
email: JSON.parse(item).email,
@ -2436,6 +2581,7 @@ const DisplayPartnerStagiaires = (props) => {
onChange={(e) => {
setp_detail_session_class(e.target.value);
setparticipant_data_changed("1");
Dialog_1_handle_change_participant_session(" Attention, vous allez modifier la session d'affectation du participant");
}
}

View File

@ -52,7 +52,8 @@ function GestionAdministrative(props) {
const columns_preinscrit = [
{ field: 'id', headerName: 'id', hide: true },
{ field: 'email', headerName: 'email', width: 200, hideable: false, flex: 1 },
{ field: '_id', headerName: '_id', hide: true },
{ field: 'email', headerName: 'email', width: 150, hideable: false, },
{ field: 'nom', headerName: 'nom', width: 150, hide: false, editable: true },
{ field: 'prenom', headerName: 'prenom', width: 150, hide: false, editable: true },
{ field: 'employeur', headerName: 'Employeur', width: 200, hide: false, editable: true },
@ -308,6 +309,7 @@ function GestionAdministrative(props) {
const columns_inscrit = [
{ field: 'id', headerName: 'id', hide: true },
{ field: '_id', headerName: '_id', hide: true },
{ field: 'email', headerName: 'emails', width: 200, hideable: false, flex: 1, minWidth: 150, maxWidth: 300 },
{ field: 'nom', headerName: 'nom', width: 150, hide: false, editable: true, resizable: true },
{ field: 'prenom', headerName: 'prenom', width: 150, hide: false, editable: true },
@ -377,6 +379,7 @@ function GestionAdministrative(props) {
const columns_list_emargement = [
{ field: 'id', headerName: 'id', hide: true },
{ field: '_id', headerName: '_id', hide: true },
{ field: 'date', headerName: 'date', width: 100, hideable: false, flex: 1 },
{ field: 'email', headerName: 'email', width: 250, hideable: false, flex: 1 },
{ field: 'nom', headerName: 'nom', width: 150, hide: false, editable: true },
@ -657,6 +660,8 @@ function GestionAdministrative(props) {
var nom = cellValues.row.nom;
var email = cellValues.row.email;
var prenom = cellValues.row.prenom;
var object_id = cellValues.row._id;
var opco = cellValues.row.opco;
if (String(opco) === "undefined") {
opco = ""
@ -674,7 +679,7 @@ function GestionAdministrative(props) {
}
UpdateStagiaireData(nom, prenom, email, status, montant, opco, modefinancement, employeur);
UpdateStagiaireData(nom, prenom, email, status, montant, opco, modefinancement, employeur, "", object_id);
}
function handleClick_update_data(event, cellValues) {
@ -687,6 +692,8 @@ function GestionAdministrative(props) {
var nom = cellValues.row.nom;
var email = cellValues.row.email;
var prenom = cellValues.row.prenom;
var object_id = cellValues.row._id;
var opco = cellValues.row.opco;
if (String(opco) === "undefined") {
opco = ""
@ -706,7 +713,7 @@ function GestionAdministrative(props) {
var comment = "";
UpdateStagiaireData(nom, prenom, email, status, montant, opco, modefinancement, employeur, comment);
UpdateStagiaireData(nom, prenom, email, status, montant, opco, modefinancement, employeur, comment, object_id);
}
function handleClick_refuse(event, cellValues) {
@ -721,6 +728,7 @@ function GestionAdministrative(props) {
var nom = cellValues.row.nom;
var email = cellValues.row.email;
var prenom = cellValues.row.prenom;
var object_id = cellValues.row._id;
var opco = cellValues.row.opco;
if (String(opco) === "undefined") {
@ -738,7 +746,7 @@ function GestionAdministrative(props) {
employeur = ""
}
UpdateStagiaireData(nom, prenom, email, status, montant, opco, modefinancement, employeur, motif_refus);
UpdateStagiaireData(nom, prenom, email, status, montant, opco, modefinancement, employeur, motif_refus, object_id);
}
const [submenu, setsubmenu] = useState("preinscrit");
@ -849,7 +857,7 @@ function GestionAdministrative(props) {
const [UpdateStagiaireData_api, setUpdateStagiaireData_api] = useState();
const [UpdateStagiaireData_message, setUpdateStagiaireData_message] = useState();
const [UpdateStagiaireData_result, setUpdateStagiaireData_result] = useState();
function UpdateStagiaireData(nom, prenom, email, status, price, opco, modefinancement, employeur, comment) {
function UpdateStagiaireData(nom, prenom, email, status, price, opco, modefinancement, employeur, comment, object_id) {
setSendInscriptionCancell_api();
var form = new FormData();
@ -872,12 +880,13 @@ function GestionAdministrative(props) {
form.append("opco", opco);
form.append("modefinancement", modefinancement);
form.append("comment", comment);
form.append("_id", object_id);
var myurl = process.env.REACT_APP_API_URL + "myclass/api/UpdateStagiairetoClass/";
axios.post(myurl, form).then(res => {
console.log(" In UpdateStagiaireData res.data.status = " + res.data.status);
console.log(" In UpdateStagiaireData res.data.message r_class = " + res.data.message);
//console.log(" In UpdateStagiaireData res.data.status = " + res.data.status);
//console.log(" In UpdateStagiaireData res.data.message r_class = " + res.data.message);
if (String(res.data.status) === String("true")) {
setUpdateStagiaireData_api("true");
@ -3485,6 +3494,9 @@ function GestionAdministrative(props) {
var nom = line.nom;
var prenom = line.prenom;
var object_id = line.row._id;
var opco = line.opco;
if (String(opco) === "undefined") {
opco = ""
@ -3503,10 +3515,10 @@ function GestionAdministrative(props) {
}
if (String(actionmass_preinsc_val) === "valider") {
UpdateStagiaireData(nom, prenom, email, status, montant, opco, modefinancement, employeur);
UpdateStagiaireData(nom, prenom, email, status, montant, opco, modefinancement, employeur, "", object_id);
}
else if (String(actionmass_preinsc_val) === "refuser") {
UpdateStagiaireData(nom, prenom, email, status, montant, opco, modefinancement, employeur, motif);
UpdateStagiaireData(nom, prenom, email, status, montant, opco, modefinancement, employeur, motif, object_id);
}
//console.log(" retval de ", email + " = retval_ch =", retval_ch);
@ -4966,6 +4978,7 @@ function GestionAdministrative(props) {
rows={rowss.map((item, index) => (
{
id: index,
_id: JSON.parse(item)._id,
nom: JSON.parse(item).nom,
prenom: JSON.parse(item).prenom,
employeur: JSON.parse(item).employeur,
@ -5080,6 +5093,7 @@ function GestionAdministrative(props) {
rows={rowss_insc.map((item, index) => (
{
id: index,
_id: JSON.parse(item)._id,
nom: JSON.parse(item).nom,
prenom: JSON.parse(item).prenom,
employeur: JSON.parse(item).employeur,

View File

@ -817,6 +817,7 @@ Cette fonction recuperer les stats des TOP 5 formations sur la periode saisie pa
<Button onClick={handleClose_buton}>Subscribe</Button>
</DialogActions>
</Dialog>
</div>
<Timeline position="right">
<TimelineItem>