From 03fdf790bb2624798bfb1c2581bf35af012a19d2 Mon Sep 17 00:00:00 2001 From: cherif Date: Wed, 27 Dec 2023 13:00:38 +0100 Subject: [PATCH] 27/12/2023 - 13h --- src/components/Apprenant.js | 40 ++- src/components/DisplayPartnerStagiaires.js | 101 ++++-- src/components/Partner.js | 333 +++++++++--------- src/components/QuisSommesNous_V2.js | 47 +-- .../_displaypartnertrainingpagination.scss | 2 +- 5 files changed, 309 insertions(+), 214 deletions(-) diff --git a/src/components/Apprenant.js b/src/components/Apprenant.js index 40f15ac..92f688c 100644 --- a/src/components/Apprenant.js +++ b/src/components/Apprenant.js @@ -1468,6 +1468,32 @@ const Apprenant = (props) => { } + function handleClick_edit_apprenant_From_Props(selected_id, selected_email) { + + console.log(" selected_id = ", selected_id, " -- selected_email = ", selected_email) + Clear_Detail_Apprenant_Fields(); + + + setadd_One_Apprenant(''); + setdisplay_detail_apprenant('1'); + + //setgridline_id(selected_row_id); + + setselected_apprenant_id(selected_id); + setselected_apprenant_email(selected_email); + + + Get_Current_Apprenant_Data(selected_id); + + + Get_Apprenant_Images(selected_id); + Get_List_Of_All_PJ(selected_id); + + Get_Appenant_List_Inscription(selected_id); + + } + + const sleep = (milliseconds) => { return new Promise(resolve => setTimeout(resolve, milliseconds)) } @@ -2036,17 +2062,10 @@ const Apprenant = (props) => { Getall_TrainingSession(); - window.scrollTo({ - top: 0, - behavior: "smooth", - }); - - /* - if (String(props.object_key).length > 3) { - + + if (props.object_key && props.subdata && String(props.object_key).length > 3) { setLoading(true); - GetCurrentSession(props.object_key, props.class_internal_url); - Display_session_From_Props(props.object_key, props.class_internal_url); + handleClick_edit_apprenant_From_Props(props.object_key, props.subdata); setLoading(false); } else { window.scrollTo({ @@ -2054,7 +2073,6 @@ const Apprenant = (props) => { behavior: "smooth", }); } -*/ }, []) diff --git a/src/components/DisplayPartnerStagiaires.js b/src/components/DisplayPartnerStagiaires.js index 7482f0b..d93ef77 100644 --- a/src/components/DisplayPartnerStagiaires.js +++ b/src/components/DisplayPartnerStagiaires.js @@ -44,7 +44,7 @@ import { IoMdAddCircle, IoIosRemoveCircleOutline } from "react-icons/io"; import { AiTwotoneSave } from "react-icons/ai"; import Module_Absence from "./Module_Absence"; import { RiMoreFill } from "react-icons/ri"; - +import { FcEditImage } from "react-icons/fc"; import { useHistory } from "react-router-dom"; import Module_Historique_Action from "./Module_Historique_Action"; import ToggleSwitch from "./ToggleSwitch"; @@ -630,10 +630,9 @@ const DisplayPartnerStagiaires = (props) => { function GetAttendee_Data_from_props(subdata, stagiaire_id) { - console.log(" ### subdata = ", subdata); + var tab_sudata = String(subdata).split('&'); - console.log(" ### tab_sudata = ", tab_sudata); - console.log(" ### stagiaire_id = ", stagiaire_id); + setselected_code_session(tab_sudata[0]); @@ -799,6 +798,9 @@ const DisplayPartnerStagiaires = (props) => { const [selected_id, setselected_id] = useState(""); + + const [selected_id_status, setselected_id_status] = useState(""); + function handleClick_edit_session_From_Line(selected_row_id) { @@ -820,6 +822,8 @@ const DisplayPartnerStagiaires = (props) => { setselected_participant_email(line.email); setselectedattendeeemail(line.email); + setselected_id_status(line.status); + setselected_class_title(line.title); setselected_id(line._id); @@ -1612,7 +1616,41 @@ const DisplayPartnerStagiaires = (props) => { } + + function open_apprenant_dossier() { + if (selected_id_status && String(selected_id_status) === "1" && p_detail_apprenant_id && String(p_detail_apprenant_id).trim().length > 3) { + + /*var a = document.createElement("a"); + a.href = process.env.REACT_APP_FRONT_URL + "Partner/mes_apprenants/" + String(p_detail_apprenant_id) + "/" + String(selected_participant_email); + var evt = document.createEvent("MouseEvents"); + //the tenth parameter of initMouseEvent sets ctrl key + evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, true, false, false, false, 0, null); + a.dispatchEvent(evt);*/ + + window.open( + process.env.REACT_APP_FRONT_URL + "Partner/mes_apprenants/" + String(p_detail_apprenant_id) + "/" + String(selected_participant_email), + '_blank' + ); + } + + + } + function EnableAttendeeDetailFields() { + /** + * Important : + * Si l'inscription est deja validé, alors il devient impossible de modifier les données de l'inscrit depuis cet écran + * Il faut aller dans les apprenants pour modifier l'apprenant. + */ + if (selected_id_status && String(selected_id_status) === "1") { + + var message = "Cette inscription a déjà été validée. Pour modifier les données de l'apprenant, merci de passer par le menu 'mes apprenants' "; + setDialog_1_message(message); + setDialog_1_open(true); + return; + } + + setparticipant_data_edit_mode("1"); document.getElementsByName("detail_session_class")[0].disabled = false; @@ -2194,6 +2232,8 @@ const DisplayPartnerStagiaires = (props) => { const [p_detail_client_rattachement_nom, setp_detail_client_rattachement_nom] = useState(); const [p_detail_client_rattachement_id, setp_detail_client_rattachement_id] = useState(); + const [p_detail_apprenant_id, setp_detail_apprenant_id] = useState(); + const [p_detail_tuteur1_nom, setp_detail_tuteur1_nom] = useState(""); const [p_detail_tuteur1_prenom, setp_detail_tuteur1_prenom] = useState(""); const [p_detail_tuteur1_email, setp_detail_tuteur1_email] = useState(""); @@ -2360,6 +2400,11 @@ const DisplayPartnerStagiaires = (props) => { if (mylocalattendee.nom) setp_detail_nom(mylocalattendee.nom); + if (mylocalattendee.apprenant_id) + setp_detail_apprenant_id(mylocalattendee.apprenant_id); + else + setp_detail_apprenant_id(""); + if (mylocalattendee.prenom) setp_detail_prenom(mylocalattendee.prenom); @@ -5981,6 +6026,7 @@ const DisplayPartnerStagiaires = (props) => { onRowDoubleClick={(newSelectionModel) => { setgridline_id(newSelectionModel.row.id); + setselected_id_status(newSelectionModel.row.status); handleClick_edit_session_From_Line(newSelectionModel.row.id); }} @@ -6164,8 +6210,8 @@ const DisplayPartnerStagiaires = (props) => { {((selected_id && String(selected_id).length > 2) || (String(addOneParticipant) === "1")) &&
- - + {/* + */}
} @@ -7330,8 +7376,17 @@ const DisplayPartnerStagiaires = (props) => { {String(participant_data_edit_mode) !== "1" &&
- + {String(selected_id_status) !== "1" && } + + {selected_id_status && String(selected_id_status) === "1" && p_detail_apprenant_id && + String(p_detail_apprenant_id).trim().length > 3 && }
} @@ -7436,12 +7491,13 @@ const DisplayPartnerStagiaires = (props) => { -
{ - setquel_tuteur("1"); - setDialog_tuteur_1_open(true); - }}> Voir plus + {!p_detail_apprenant_id || + String(p_detail_apprenant_id).trim().length <= 0 &&
{ + setquel_tuteur("1"); + setDialog_tuteur_1_open(true); + }}> Voir plus -
+
} @@ -7538,12 +7594,13 @@ const DisplayPartnerStagiaires = (props) => { -
{ - setquel_tuteur("2"); - setDialog_tuteur_1_open(true); - }}> Voir plus + {!p_detail_apprenant_id || + String(p_detail_apprenant_id).trim().length <= 0 &&
{ + setquel_tuteur("2"); + setDialog_tuteur_1_open(true); + }}> Voir plus -
+
} @@ -7948,7 +8005,7 @@ const DisplayPartnerStagiaires = (props) => { } - {String(submenu) === "sessions" && selected_code_session &&
+ {/*String(submenu) === "sessions" && selected_code_session &&
Formation
@@ -8296,16 +8353,16 @@ const DisplayPartnerStagiaires = (props) => {
-
} +
*/} - {String(submenu) === "absence" && String(display_detail_absence) === "1" &&
+ {/*String(submenu) === "absence" && String(display_detail_absence) === "1" &&
-
} +
*/} {String(submenu) === "historique" && String(display_detail_historique) === "1" &&
diff --git a/src/components/Partner.js b/src/components/Partner.js index 07f8cb3..6ce5cfe 100644 --- a/src/components/Partner.js +++ b/src/components/Partner.js @@ -59,7 +59,7 @@ import Mon_Tableau_De_Bord from "./Mon_Tableau_De_Bord"; import Dashbord_Formation from "./Dashbord_Formation"; import Partner_Prix_Achat from "./Partner_Prix_Achat"; import Apprenant from "./Apprenant"; - +import { PiSlideshowFill, PiSlideshowThin } from "react-icons/pi"; import Dialog from '@mui/material/Dialog'; import DialogActions from '@mui/material/DialogActions'; @@ -68,7 +68,8 @@ import DialogContentText from '@mui/material/DialogContentText'; import DialogTitle from '@mui/material/DialogTitle'; import { ImWarning } from "react-icons/im"; //import { FcHome} from "react-icons/fc"; - +import 'react-tooltip/dist/react-tooltip.css' +import { Tooltip } from 'react-tooltip' import Dropdown from 'rsuite/Dropdown'; //import 'rsuite/dist/rsuite.min.css'; import { AiOutlineDashboard } from "react-icons/ai"; @@ -1112,8 +1113,18 @@ const Partner = (props) => { {left_menu === true &&
@@ -1330,7 +1341,8 @@ const Partner = (props) => {
- +
} + {left_menu === true &&
{String(firstConnexion) === "1" && String(part_is_partner_admin_account) === "1" &&
@@ -1367,9 +1379,9 @@ const Partner = (props) => {
} -
- } - {left_menu === true &&
+ + + {String(menu) === "checkout" &&
@@ -1579,7 +1591,8 @@ const Partner = (props) => { {String(menu) === "mes_apprenants" &&
- +
} @@ -1669,112 +1682,172 @@ const Partner = (props) => {
} + {/* div_gauche div_gauche_reduit */} {left_menu === false &&
+

+ + + {String(menu) !== "infopartner" &&
 
} + {String(menu) === "infopartner" &&
 
} +
+
- {String(menu) !== "infopartner" &&
 
} - {String(menu) === "infopartner" &&
 
} + + + {String(menu) !== "mon_tableau_de_bord" &&
 
} + {String(menu) === "mon_tableau_de_bord" &&
 
} +
+
+ + + + {String(menu) !== "module_agenda" &&
 
} + {String(menu) === "module_agenda" &&
 
} +
+
+ + + + {String(menu) !== "abonnement" &&
 
} + {String(menu) === "abonnement" &&
 
} +
+
+ + + + {String(menu) !== "facture" &&
 
} + {String(menu) === "facture" &&
 
} +
+
+ +

+ + + + {String(menu) !== "creation" &&
 
} + {String(menu) === "creation" &&
} +
+
+ + + + {String(menu) !== "affichage" &&
 
} + {String(menu) === "affichage" &&
 
} +
+
+ + + + {String(menu) !== "mes_sessions" &&
 
} + {String(menu) === "mes_sessions" &&
 
} +
+
+ + + + {String(menu) !== "mes_stagiaires" &&
 
} + {String(menu) === "mes_stagiaires" &&
 
} +
+
+ + + + {String(menu) !== "mes_apprenants" &&
 
} + {String(menu) === "mes_apprenants" &&
 
} +
+
+ + + + {String(menu) !== "mes_employes" &&
 
} + {String(menu) === "mes_employes" &&
 
} +
+
+ + + + {String(menu) !== "mon_materiel" &&
 
} + {String(menu) === "mon_materiel" &&
 
} +

- {String(menu) !== "mon_tableau_de_bord" &&
 
} - {String(menu) === "mon_tableau_de_bord" &&
 
} + + + {String(menu) !== "statistique" &&
 
} + {String(menu) === "statistique" &&
 
} +

- {String(menu) !== "module_agenda" &&
 
} - {String(menu) === "module_agenda" &&
 
} -
- - {String(menu) !== "abonnement" &&
 
} - {String(menu) === "abonnement" &&
 
} -
- - {String(menu) !== "facture" &&
 
} - {String(menu) === "facture" &&
 
} -
- -
- - {String(menu) !== "creation" &&
 
} - {String(menu) === "creation" &&
} -
- - {String(menu) !== "affichage" &&
 
} - {String(menu) === "affichage" &&
 
} -
- - {String(menu) !== "mes_sessions" &&
 
} - {String(menu) === "mes_sessions" &&
 
} -
- - {String(menu) !== "mes_stagiaires" &&
 
} - {String(menu) === "mes_stagiaires" &&
 
} -
- - {String(menu) !== "mes_apprenants" &&
 
} - {String(menu) === "mes_apprenants" &&
 
} -
- - - {String(menu) !== "mes_employes" &&
 
} - {String(menu) === "mes_employes" &&
 
} -
- - {String(menu) !== "mon_materiel" &&
 
} - {String(menu) === "mon_materiel" &&
 
} -
- - - - {String(menu) !== "statistique" &&
 
} - {String(menu) === "statistique" &&
 
} -
- - - - -
+

+
- {String(menu) !== "mes_clients" &&
   
} - {String(menu) === "mes_clients" &&
    
} + + + {String(menu) !== "mes_clients" &&
 
} + {String(menu) === "mes_clients" &&
 
} +

- {String(menu) !== "pricing" &&
   
} - {String(menu) === "pricing" &&
   
} + + + {String(menu) !== "pricing" &&
 
} + {String(menu) === "pricing" &&
 
} +

- {String(menu) !== "mes_cmd" &&
   
} - {String(menu) === "mes_cmd" &&
    
} + + + {String(menu) !== "mes_cmd" &&
 
} + {String(menu) === "mes_cmd" &&
 
} +

- {String(menu) !== "factures_client" &&
   
} - {String(menu) === "factures_client" &&
    
} + + + {String(menu) !== "factures_client" &&
 
} + {String(menu) === "factures_client" &&
 
} +

- {String(menu) !== "prix_achat" &&
   
} - {String(menu) === "prix_achat" &&
    
} + + + {String(menu) !== "prix_achat" &&
 
} + {String(menu) === "prix_achat" &&
 
} +
-
+

{String(has_partner_lms_url) === "1" &&
{ @@ -1783,86 +1856,31 @@ const Partner = (props) => { partner_lms_url, '_blank' ); - }}>  
} + }}> + + + + +
} {String(has_partner_lms_url) === "1" &&

- {String(menu) !== "statistique" &&
   
} - {String(menu) === "statistique" &&
    
} + + + {String(menu) !== "statistique" &&
 
} + {String(menu) === "statistique" &&
 
} + +
} -
Configuration
- - { - - }} - - onClose={(event) => { - - - }} - - > - - {String(menu) !== "config_document" &&
   
} - {String(menu) === "config_document" &&
   
} -
- - - {String(menu) !== "config_champ_specific" &&
   
} - {String(menu) === "config_champ_specific" &&
    
} -
- - {String(menu) !== "config_technique" &&
   
} - {String(menu) === "config_technique" &&
    
} - -
- - - {String(menu) !== "config_session_steps" &&
   
} - {String(menu) === "config_session_steps" &&
    
} - -
- - - {String(menu) !== "config_jours_heures" &&
   
} - {String(menu) === "config_jours_heures" &&
    
} - -
- - - -
- - - - - { - - }} - - onClose={(event) => { - - - }} - - > - - {String(menu) !== "dashbord_formation" &&
   
} - {String(menu) === "dashbord_formation" &&
   
} -
- - - {String(menu) !== "dashbord_session" &&
   
} - {String(menu) === "dashbord_session" &&
    
} -
- -
+
+ } + + {/* div_droite div_droite_ralonge */} + {left_menu === false &&
{String(firstConnexion) === "1" && String(part_is_partner_admin_account) === "1" &&
@@ -1887,23 +1905,23 @@ const Partner = (props) => {
} - {String(myApiResponse) === String("false") &&
+ {String(myApiResponse) === String("false") &&
Impossible de contacter l'hote distant. Merci de contacter votre administrateur
} {String(menu) === "affichage" && -
+
} -
- } - {left_menu === false &&
+ + + {String(menu) === "checkout" &&
@@ -2113,7 +2131,8 @@ const Partner = (props) => { {String(menu) === "mes_apprenants" &&
- +
} diff --git a/src/components/QuisSommesNous_V2.js b/src/components/QuisSommesNous_V2.js index 5b91476..19a9b49 100644 --- a/src/components/QuisSommesNous_V2.js +++ b/src/components/QuisSommesNous_V2.js @@ -87,22 +87,22 @@ const QuiSommesNous_v2 = () => {
Qui sommes nous ?
- MySy Training est un éditeur de logiciels dédiés à la gestion des établissements de formation : Instituts de formation, Indépendants, Ecoles, Universités, etc.
+ MySy Training est un éditeur de logiciels dédiés à la gestion des établissements de formation : Instituts de formation, Indépendants, Ecoles, Universités, etc.
Nous conseillons, accompagnons nos clients dans la structuration , l’audit et l’organisation de leurs processus et outils.
- Avec une équipe d’une dizaine de personne, nous développons de solutions axées vers l’efficacité et le gain de productivité de nos clients, sans oublier la sécurisation de leurs systèmes.
+ Avec une équipe d’une dizaine de personnes, nous développons des solutions axées sur l’efficacité et le gain de productivité de nos clients, sans oublier la sécurisation de leurs systèmes.

Hébergement sur nos serveurs (Solution en mode SaaS )
- Nous offrons à nos clients la possibilité d’héberger leur système a l’aide de nos solutions qui sont disponibles en mode SaaS (Hébergement sur nos propres serveurs)
+ Nous offrons à nos clients la possibilité d’héberger les solutions que nous leur proposons sur nos propres serveurs. Ils n’ont ainsi rien à gérer. Nos solutions sont disponibles en mode service (SaaS)

Hébergement sur les serveurs du client
- Pour nos clients qui le souhaitent, nous les accompagnons pour héberger nos solutions sur leurs propres serveurs.
+ Pour nos clients qui le souhaitent, nous les accompagnons pour héberger nos solutions sur leurs propres serveurs. Nous les accompagnons tout long de l’installation et la mise en service.
@@ -115,13 +115,13 @@ const QuiSommesNous_v2 = () => {
MySy Gestion Administrative

- processus d’inscription des apprenants, les émargements à distance ou en présentiel et l’évaluation. - Cette solution permet également de gérer les enseignants, le matériel pédagogique, le planning de formation, les agendas, etc.
- Il vous permet également de produire en un clic votre Bilan Pédagogique et Financier (BPF)
+ Permet de gérer le processus d’inscription des apprenants, les émargements à distance ou en présentiel et les évaluations. Cette solution permet également de gérer les enseignants, le matériel pédagogique, le planning de formation, les agendas, etc.
+ Elle vous permet également de produire en un clic votre Bilan Pédagogique et Financier (BPF)
+ Un intranet intégré permet de publier et de partager les formations sur internet.
+ Un tableau de bord vous permet de suivre votre activité pédagogique : Taux de remplissage des sessions, répartition par formateur par années, etc. + - Un intranet intégré permet de publier et de partager les formations sur internet.
- Un tableau de bord vous permet de suivre votre activité pédagogique : Taux de remplissage des sessions, répartition pas formateur par années, etc.
MySy Gestion Administrative @@ -144,10 +144,11 @@ const QuiSommesNous_v2 = () => {
MySy E-Learning (LMS)

- permet d’avoir votre espace de E-learning, de publier les formations en lignes. - A l’aide de son login et mot de passe, chaque apprenant peut suivre la formation en ligne, interagir avec l’enseignant (email, réseaux social) - L'enseignant peut élaborer des travaux dirigés, suivre le temps de réponses des apprenants, corriger les TD.
- Un tableau de bord permet de suivre de manière detaillée chaque apprenant. + + Permet d’avoir votre espace de E-learning, de publier les formations en ligne. A l’aide de son login et mot de passe, chaque apprenant peut suivre la formation en ligne, interagir avec l’enseignant (email, réseaux social).
+ L’enseignant peut élaborer des travaux dirigés, suivre le temps de réponses des apprenants, corriger les TD.
+ Un tableau de bord permet de suivre de manière détaillée chaque apprenant. +
@@ -162,9 +163,9 @@ const QuiSommesNous_v2 = () => {
MySy Gestion relation client

- Permet de gérer vos clients, les activités en cours, à venir, en retards. - Ce module permet d’éditer d’envoyer les devis, de les convertir en commande et de les facturer. - Un tableau de bord vous permet de suivre vos revenus en cours, ceux à venir et de prendre les bonnes décisions de gestion. + Permet de gérer vos clients, les activités en cours, à venir, en retards. + Ce module permet d’éditer, d’envoyer les devis, de les convertir en commande et de les facturer. + Un tableau de bord vous permet de suivre vos revenus en cours, ceux à venir et de prendre les bonnes décisions de gestion
@@ -176,14 +177,14 @@ const QuiSommesNous_v2 = () => {
-   +  
-
+
@@ -205,7 +206,7 @@ const QuiSommesNous_v2 = () => {
  • Gestion absences
  • Émargement électronique
  • Gestion des employés et du matériel pédagogique
  • -
  • Gestion des agendas & réservation de materiel (salles, projecteurs, etc)
  • +
  • Gestion des agendas & réservation de matériel (salles, projecteurs, etc)
  • Tableau de bord de pilotage
  • Intranet intégré pour la publication des formations
  • @@ -233,9 +234,9 @@ const QuiSommesNous_v2 = () => {
  • Evaluations (notes)
  • Gestion planning
  • Forums de discussion
  • -
  • Reseau Social
  • +
  • Réseau Social
  • Profil et droit d'accès par utilisateur
  • -
  • export format SCORM
  • +
  • Export format SCORM
  • @@ -251,12 +252,12 @@ const QuiSommesNous_v2 = () => {
      -
    • Creation clients
    • +
    • Création clients
    • Gestion des différentes contacts client
    • Gestion des activités par collaborateur (tâches en cours, en retards, à venir)
    • Gestion des devis (envoi automatique)
    • Validation automatique des devis
    • -
    • Convertion devis en commandes
    • +
    • Conversion devis en commandes
    • Facturation et envoi automatique
    • Suivi des commandes en cours, des factures à venir
    • Tableau de bord de suivi client
    • diff --git a/src/styles/components/_displaypartnertrainingpagination.scss b/src/styles/components/_displaypartnertrainingpagination.scss index db52239..cfad783 100644 --- a/src/styles/components/_displaypartnertrainingpagination.scss +++ b/src/styles/components/_displaypartnertrainingpagination.scss @@ -1783,7 +1783,7 @@ .bton_add_session { background: #c8cfd5; color: black; - width: 25% !important; + width: 20% !important; } }