{"version":3,"sources":["reportWebVitals.js","ScoDoc/ScoNavBar.js","ScoDoc/SearchStudent.js","ScoDoc/Scolarite.js","ScoDoc/ChoixDept.js","ScoDoc/Login.js","ScoDoc/GestionSemestre/Accueil.js","ScoDoc/GestionSemestre/Absences/SaisieAbs.js","ScoDoc/GestionSemestre/Absences/SupprAbs.js","ScoDoc/GestionSemestre/Absences/JustAbs.js","ScoDoc/GestionSemestre/Absences.js","ScoDoc/GestionSemestre/Eleves.js","ScoDoc/GestionSemestre/Bulletin.js","ScoDoc/GestionSemestre.js","ScoDoc/Etudiant.js","main.js","index.js"],"names":["reportWebVitals","onPerfEntry","Function","then","getCLS","getFID","getFCP","getLCP","getTTFB","ScoNavBar","props","state","logout","BASE_URL","window","$api_url","fetch","res","setState","catch","console","log","Navbar","bg","expand","Container","Brand","href","alt","src","width","height","className","Toggle","aria-controls","Collapse","id","Nav","Link","Button","variant","onClick","this","push","to","Component","SearchStudent","students","search_status","handleChangeSearch","bind","searchStudent","e","search","target","value","dept","location","split","method","credentials","response","json","data","length","toast","searched","Col","map","student","index","Row","label","type","onChange","result","Scolarite","semestres","dismissToast","getData","verify","status","Accordion","defaultActiveKey","Card","Header","as","eventKey","Body","sem","etat","formsemestre_id","titre","modalite","semestre_id","anneescolaire","date_debut","date_fin","ChoixDept","depts","Login","login","pass","handleChangeLogin","handleChangePass","checkCredentials","preventDefault","headers","btoa","isMobile","document","cookie","placeholder","Accueil","semestre","responsables","SaisieAbs","openModal","isOpen","closeModal","onFormSubmit","formData","FormData","formDataObj","Object","fromEntries","entries","reqstr","etudid","hasOwnProperty","dateDebut","dateFin","postData","error","form","prevProps","open","body","Modal","show","onHide","closeButton","Title","Form","onSubmit","Group","ControlId","Label","Control","name","Check","inline","rows","Footer","SupprAbs","date","demijournee","JustAbs","Date","toISOString","substr","defaultValue","readOnly","checked","Absences","isDelOpen","isJustOpen","abs","absjust","key","setTimeout","getAbs","getAbsJust","size","style","datedmy","matin","motif","exams","ampm","Eleves","dat","x","i","slice","filter","etud","nom_disp","prenom","Bulletin","bltn","datue","loaded","ls","elm","decision_ue","acronyme","blob","file","URL","createObjectURL","assign","Table","responsive","colSpan","Dropdown","note","Menu","Item","min","max","rang","ninscrits","ue","module","mod","replace","code","coefficient","getPdf","GestionSemestre","selectOptions","joined","concat","options","handleSelectChange","Tabs","Tab","title","Etudiant","formation","insemestre","nomprenom","photo_url","telephone","telephonemobile","email","emailperso","domicile","codepostaldomicile","villedomicile","bac","specialite","nomlycee","codepostallycee","villelycee","titreannee","Main","exact","path","component","ReactDOM","render","getElementById"],"mappings":"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","file":"static/js/main.9d1150c9.chunk.js","sourcesContent":["const reportWebVitals = onPerfEntry => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import React, {Component} from \"react\";\r\nimport {Nav, Navbar, Button, Container} from 'react-bootstrap'\r\nimport { Redirect } from 'react-router-dom';\r\nimport './Style.css'\r\n\r\nclass ScoNavBar extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n logout: false\r\n };\r\n }\r\n\r\n logout() {\r\n let BASE_URL = window.$api_url\r\n\r\n fetch(BASE_URL + \"acl_users/logout\")\r\n .then(res => {this.setState({logout: true})})\r\n .catch(console.log)\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n \r\n {' '}\r\n ScoDoc\r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.logout === true &&\r\n \r\n }\r\n \r\n )\r\n }\r\n}\r\n\r\nexport default ScoNavBar","import React, {Component} from \"react\";\r\nimport {Link} from \"react-router-dom\";\r\nimport {Row, Col} from \"react-bootstrap\"\r\n\r\nclass SearchStudent extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n students: [],\r\n // Status possibles:\r\n // 0: Vide - 1: Pas de resultat - 2: Un ou plusieurs resultats\r\n search_status: 0,\r\n };\r\n this.handleChangeSearch = this.handleChangeSearch.bind(this)\r\n this.searchStudent = this.searchStudent.bind(this);\r\n }\r\n\r\n\r\n handleChangeSearch(e) {\r\n this.setState({ search: e.target.value });\r\n }\r\n\r\n searchStudent() {\r\n let dept = window.location.href.split('/')[6]\r\n let BASE_URL = window.$api_url\r\n fetch(BASE_URL + dept +\r\n '/Scolarite/Notes/search_etud_by_name?term=' + this.state.search +'&format=json', {\r\n method: \"GET\",\r\n credentials: \"include\",\r\n })\r\n .then(response =>\r\n response.json().then(data => ({data: data}))\r\n .then(res => {\r\n this.setState({ students: res.data });\r\n\r\n if (this.state.students.length === 0) {\r\n this.setState({search_status: 1, toast: true});\r\n } else {\r\n this.setState({search_status: 2, toast: false});\r\n }\r\n }))\r\n this.setState({searched: true})\r\n }\r\n\r\n result() {\r\n if (this.state.toast === true) {\r\n return (\r\n
\r\n Aucun élève trouvé\r\n
\r\n )\r\n } else if (this.state.search_status === 2) {\r\n return (\r\n \r\n {this.state.students.map((student, index) => {\r\n return (\r\n \r\n \r\n {student.label}\r\n \r\n \r\n );\r\n })}\r\n \r\n )\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n {this.result()}\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default SearchStudent","import React, {Component} from \"react\";\r\nimport {Link} from \"react-router-dom\";\r\nimport './Style.css'\r\nimport ScoNavBar from \"./ScoNavBar\";\r\nimport SearchStudent from './SearchStudent'\r\nimport {Accordion, Card, Button} from 'react-bootstrap'\r\n\r\nclass Scolarite extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n semestres: [],\r\n students: [],\r\n toast: false\r\n };\r\n this.dismissToast = this.dismissToast.bind(this);\r\n this.getData = this.getData.bind(this);\r\n }\r\n\r\n componentWillMount() {\r\n let dept = window.location.href.split('/')[6]\r\n let BASE_URL = window.$api_url\r\n fetch(BASE_URL + dept + '/Scolarite/Notes/formsemestre_list?format=json', {\r\n method: 'GET',\r\n verify: false,\r\n credentials: 'include',\r\n })\r\n .then(response =>\r\n response.json().then(data => ({\r\n data: data,\r\n status: response.status\r\n })\r\n ).then(res => {\r\n this.setState({ semestres: res.data });\r\n }));\r\n }\r\n\r\n getData () {\r\n return this.state.semestres\r\n }\r\n\r\n dismissToast() {\r\n this.setState({toast: false})\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n
\r\n

Scolarité

\r\n
\r\n\r\n \r\n \r\n \r\n \r\n Semestres en cours\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {this.state.semestres.map((sem, index) => {\r\n if(sem.etat === \"1\")\r\n return (\r\n
\r\n \r\n

{sem.titre} [{sem.modalite}]

\r\n

Semestre {sem.semestre_id} - Année {sem.anneescolaire} [{sem.date_debut} - {sem.date_fin}]

\r\n \r\n
\r\n )\r\n })}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n Semestres passés\r\n \r\n \r\n \r\n \r\n {this.state.semestres.map((sem, index) => {\r\n if(sem.etat !== \"1\")\r\n return (\r\n
\r\n \r\n

{sem.titre} [{sem.modalite}]

\r\n

Semestre {sem.semestre_id} - Année {sem.anneescolaire} [{sem.date_debut} - {sem.date_fin}]

\r\n \r\n
\r\n )\r\n })}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n Recherche étudiant\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default Scolarite;","import React, {Component} from \"react\";\r\nimport {Link} from \"react-router-dom\";\r\nimport './Style.css'\r\n\r\nclass ChoixDept extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n // Liste des départements disponibles pour l'utilisateur\r\n depts: [],\r\n };\r\n }\r\n\r\n componentWillMount() {\r\n let BASE_URL = window.$api_url\r\n fetch(BASE_URL + 'list_depts?format=json', {\r\n method: 'GET',\r\n verify: false,\r\n credentials: 'include',\r\n })\r\n .then(response =>\r\n // Traitement des données JSON\r\n response.json().then(data => ({\r\n data: data,\r\n status: response.status\r\n })\r\n ).then(res => {\r\n this.setState({ depts: res.data })\r\n }));\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n

Choix du département

\r\n
\r\n
\r\n {this.state.depts.map((dept, index) => {\r\n return (\r\n
\r\n \r\n Département {dept}\r\n \r\n
\r\n )\r\n },)}\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default ChoixDept","import React, {Component} from \"react\";\r\nimport { isMobile } from 'react-device-detect';\r\nimport './Style.css'\r\nimport ChoixDept from \"./ChoixDept\";\r\nimport ScoNavBar from \"./ScoNavBar\";\r\n\r\nclass Login extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n login: \"\",\r\n pass: \"\",\r\n status: 0,\r\n };\r\n this.handleChangeLogin = this.handleChangeLogin.bind(this);\r\n this.handleChangePass = this.handleChangePass.bind(this);\r\n this.checkCredentials = this.checkCredentials.bind(this)\r\n }\r\n\r\n handleChangeLogin(e) {\r\n this.setState({ login: e.target.value });\r\n }\r\n\r\n handleChangePass(e) {\r\n this.setState({ pass: e.target.value });\r\n }\r\n\r\n checkCredentials(e) {\r\n e.preventDefault();\r\n\r\n let login = this.state.login\r\n let pass = this.state.pass\r\n\r\n let BASE_URL = window.$api_url\r\n\r\n fetch(BASE_URL, {\r\n method: 'GET',\r\n verify: false,\r\n credentials: 'include',\r\n headers: {\r\n 'Content-Type': 'application/x-www-form-urlencoded',\r\n 'Authorization': 'Basic ' + btoa(login + \":\" + pass)\r\n },\r\n })\r\n .then(res => {\r\n this.setState({ status: res[\"status\"] });\r\n })\r\n .catch(console.log)\r\n }\r\n\r\n\r\n render() {\r\n return (\r\n
\r\n {!isMobile &&\r\n // TODO: Redirection mobile/desktop\r\n \r\n }\r\n {(this.state.status !== 0 && this.state.status !== 200) &&\r\n
\r\n
\r\n

{\"⚠️\"} Login ou mot de passe incorrect

\r\n
\r\n
\r\n }\r\n {document.cookie === \"\" &&\r\n
\r\n
\r\n

Connexion a ScoDoc

\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n {document.cookie !== \"\" &&\r\n \r\n }{document.cookie !== \"\" &&\r\n \r\n }\r\n
\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default Login","import React, {Component} from \"react\";\r\nimport '../Style.css'\r\n\r\nclass Accueil extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n semestre: {},\r\n };\r\n }\r\n\r\n componentWillMount() {\r\n let dept = window.location.href.split('/')[6]\r\n let sem = window.location.href.split('/')[8]\r\n let BASE_URL = window.$api_url\r\n fetch(BASE_URL + dept +\r\n '/Scolarite/Notes/formsemestre_list?format=json&formsemestre_id=' + sem, {\r\n method: 'GET',\r\n verify: false,\r\n credentials: 'include',\r\n })\r\n .then(response =>\r\n response.json().then(data => ({\r\n data: data,\r\n })\r\n ).then(res => {\r\n this.setState({ semestre: res.data[0]});\r\n }));\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n

{this.state.semestre.titre}
\r\n Semestre {this.state.semestre.semestre_id} en {this.state.semestre.modalite}
\r\n (Responsable: {this.state.semestre.responsables})

\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default Accueil","import React, {Component} from \"react\";\r\nimport {Button, Col, Form, Modal} from \"react-bootstrap\";\r\nimport Absences from '../Absences'\r\n\r\nclass SaisieAbs extends Component {\r\n constructor(props){\r\n super(props)\r\n this.state = {\r\n isOpen: false,\r\n form: {},\r\n error: false,\r\n etudid: \"\"\r\n }\r\n }\r\n\r\n openModal = () => this.setState({ isOpen: true });\r\n closeModal = () => this.setState({ isOpen: false });\r\n\r\n componentDidUpdate(prevProps) {\r\n if (prevProps.open !== this.props.open) {\r\n this.setState({etudid: this.props.etudid})\r\n if (this.props.open === true) {\r\n this.setState({isOpen: true})\r\n }\r\n }\r\n }\r\n\r\n onFormSubmit = e => {\r\n // Traitement du formulaire\r\n // Empeche le bouton de rediriger ou actualiser la page\r\n e.preventDefault()\r\n // Recuperation des valeurs\r\n const formData = new FormData(e.target), formDataObj = Object.fromEntries(formData.entries())\r\n\r\n let reqstr = \"etudid=\" + this.state.etudid + \"&datedebut=\"\r\n\r\n if (formDataObj.hasOwnProperty('dateDebut') && formDataObj['dateDebut'] !== \"\") {\r\n let dateDebut = formDataObj['dateDebut'].split(\"-\")\r\n dateDebut = dateDebut[2] + \"/\" + dateDebut[1] + \"/\" + dateDebut[0]\r\n reqstr += dateDebut\r\n if (formDataObj.hasOwnProperty('dateFin') && formDataObj['dateFin'] !== \"\") {\r\n let dateFin = formDataObj['dateFin'].split(\"-\")\r\n dateFin = dateFin[2] + \"/\" + dateFin[1] + \"/\" + dateFin[0]\r\n reqstr += \"&datefin=\" + dateFin\r\n } else {\r\n reqstr += \"&datefin=\" + dateDebut\r\n }\r\n if (formDataObj.hasOwnProperty('duree')) {\r\n reqstr += \"&demijournee=\" + formDataObj['duree']\r\n }\r\n if (formDataObj.hasOwnProperty('estjust') && formDataObj.hasOwnProperty('motif') && formDataObj['motif'] !== \"\") {\r\n reqstr += \"&estjust=True&description=\" + formDataObj['motif']\r\n }\r\n this.postData(reqstr)\r\n } else {\r\n this.setState({error: true})\r\n }\r\n }\r\n\r\n postData(data) {\r\n let dept = window.location.href.split('/')[6]\r\n let BASE_URL = window.$api_url\r\n fetch(BASE_URL + dept + \"/Scolarite/Absences/doSignaleAbsence\", {\r\n method: 'POST',\r\n verify: false,\r\n credentials: 'include',\r\n headers: {'Content-Type': 'application/x-www-form-urlencoded'},\r\n body: data\r\n })\r\n .then(response => {\r\n if (response.status === 200) {\r\n // Fermeture du modal\r\n this.closeModal()\r\n }\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n <>\r\n \r\n \r\n Saisie d'absence\r\n \r\n\r\n \r\n {this.state.error &&\r\n Erreur: La date de début ne doit pas être vide\r\n }\r\n
\r\n \r\n \r\n Date début\r\n \r\n \r\n \r\n Date fin (Optionnel)\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Motif\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n\r\n \r\n \r\n
\r\n \r\n )\r\n }\r\n}\r\n\r\nexport default SaisieAbs","import React, {Component} from \"react\";\r\nimport {Button, Modal} from \"react-bootstrap\";\r\n\r\nclass SupprAbs extends Component {\r\n constructor(props){\r\n super(props)\r\n this.state = {\r\n isOpen: false,\r\n etudid: \"\",\r\n }\r\n }\r\n\r\n openModal = () => this.setState({ isOpen: true });\r\n closeModal = () => this.setState({ isOpen: false });\r\n\r\n componentDidUpdate(prevProps) {\r\n if (prevProps.open !== this.props.open) {\r\n this.setState({etudid: this.props.etudid})\r\n if (this.props.open === true) {\r\n this.setState({isOpen: true})\r\n }\r\n }\r\n }\r\n\r\n postData() {\r\n let dept = window.location.href.split('/')[6]\r\n let BASE_URL = window.$api_url\r\n let data = \"datedebut=\" + this.props.data.date + \"&datefin=\" + this.props.data.date +\r\n \"&demijournee=\" + this.props.data.demijournee + \"&etudid=\" + this.state.etudid\r\n fetch(BASE_URL + dept + \"/Scolarite/Absences/doAnnuleAbsence\", {\r\n method: 'POST',\r\n verify: false,\r\n credentials: 'include',\r\n headers: {'Content-Type': 'application/x-www-form-urlencoded'},\r\n body: data\r\n })\r\n // Fermeture du modal\r\n this.setState({isOpen: false})\r\n }\r\n\r\n render() {\r\n return (\r\n <>\r\n \r\n \r\n Suppression d'absence\r\n \r\n \r\n

Etes-vous sûr.e de vouloir supprimer cette absence ?

\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n )\r\n }\r\n}\r\n\r\nexport default SupprAbs","import React, {Component} from \"react\";\r\nimport {Button, Col, Form, Modal} from \"react-bootstrap\";\r\n\r\nclass JustAbs extends Component {\r\n constructor(props){\r\n super(props)\r\n this.state = {\r\n isOpen: false,\r\n etudid: \"\",\r\n date: \"\"\r\n }\r\n }\r\n\r\n openModal = () => this.setState({ isOpen: true });\r\n closeModal = () => this.setState({ isOpen: false });\r\n\r\n componentDidUpdate(prevProps) {\r\n if (prevProps.open !== this.props.open) {\r\n this.setState({etudid: this.props.etudid})\r\n if (this.props.open === true) {\r\n this.setState({isOpen: true})\r\n }\r\n // Recuperation et conversion de la date par defaut de l'absence (Format ISO demandé par les form Bootstrap)\r\n let date = this.props.data.date.split(\"/\")\r\n date = new Date(date[2] + \"-\" + date[1] + \"-\" + date[0])\r\n date = date.toISOString().substr(0,10);\r\n this.setState({date: date})\r\n }\r\n }\r\n\r\n postData(data) {\r\n let dept = window.location.href.split('/')[6]\r\n let BASE_URL = window.$api_url\r\n fetch(BASE_URL + dept + \"/Scolarite/Absences/doJustifAbsence\", {\r\n method: 'POST',\r\n verify: false,\r\n credentials: 'include',\r\n headers: {'Content-Type': 'application/x-www-form-urlencoded'},\r\n body: data\r\n })\r\n // Fermeture du modal\r\n this.setState({isOpen: false})\r\n }\r\n\r\n onFormSubmit = e => {\r\n // Traitement du formulaire\r\n // Empeche le bouton de rediriger ou actualiser la page\r\n e.preventDefault()\r\n // Recuperation des valeurs\r\n const formData = new FormData(e.target), formDataObj = Object.fromEntries(formData.entries())\r\n\r\n let reqstr = \"etudid=\" + this.state.etudid + \"&datedebut=\" + this.props.data.date\r\n\r\n if (formDataObj.hasOwnProperty('dateFin') && formDataObj['dateFin'] !== \"\") {\r\n let dateFin = formDataObj['dateFin'].split(\"-\")\r\n dateFin = dateFin[2] + \"/\" + dateFin[1] + \"/\" + dateFin[0]\r\n reqstr += \"&datefin=\" + dateFin\r\n } else {\r\n reqstr += \"&datefin=\" + this.props.data.date\r\n } if (formDataObj.hasOwnProperty('duree')) {\r\n reqstr += \"&demijournee=\" + formDataObj['duree']\r\n } else {\r\n reqstr += \"&demijournee=\" + this.props.data.demijournee\r\n } if (formDataObj.hasOwnProperty('motif') && formDataObj['motif'] !== \"\") {\r\n reqstr += \"&description=\" + formDataObj['motif']\r\n }\r\n this.postData(reqstr)\r\n }\r\n\r\n render() {\r\n return (\r\n <>\r\n \r\n \r\n Suppression d'absence\r\n \r\n \r\n
\r\n \r\n \r\n Date début\r\n \r\n \r\n \r\n Date fin (Optionnel)\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Motif\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n )\r\n }\r\n}\r\n\r\nexport default JustAbs","import React, {Component} from \"react\";\r\nimport {Button, Col} from 'react-bootstrap'\r\nimport '../Style.css'\r\nimport SaisieAbs from \"./Absences/SaisieAbs\";\r\nimport SupprAbs from \"./Absences/SupprAbs\";\r\nimport JustAbs from \"./Absences/JustAbs\";\r\n\r\nclass Absences extends Component {\r\n constructor(props){\r\n super(props)\r\n this.state = {\r\n // Gestion des fenetres modales\r\n // Ajout d'absences\r\n isOpen: false,\r\n // Suppression\r\n isDelOpen: false,\r\n // Justification\r\n isJustOpen: false,\r\n // Données de la liste des absences\r\n abs: [],\r\n absjust: [],\r\n // Données d'une absence selectionnée\r\n data: {}\r\n }\r\n }\r\n\r\n // Recuperation des données en cas de changement de props (dans notre cas, changement d'élève)\r\n componentDidUpdate(prevProps) {\r\n if (prevProps.id !== this.props.id) {\r\n this.getData();\r\n }\r\n }\r\n\r\n // Recuperation des données lors du chargement de la page si un étudiant est selectionné\r\n componentDidMount() {\r\n if (this.props.id !== \"\") {this.getData()}\r\n }\r\n\r\n openModal(key, data) {\r\n this.setState({[key]: true}, () => setTimeout(() => {\r\n this.setState({[key]: false})\r\n }, 500))\r\n if (data) {this.setState({data: data})}\r\n }\r\n\r\n getData() {\r\n this.getAbs()\r\n this.getAbsJust()\r\n }\r\n\r\n getAbs() {\r\n let dept = window.location.href.split('/')[6]\r\n let BASE_URL = window.$api_url\r\n if (this.state.id !== \"\") {\r\n fetch(BASE_URL + dept + \"/Scolarite/Absences/ListeAbsEtud?format=json&absjust_only=0&etudid=\" + this.props.id, {\r\n method: 'GET',\r\n verify: false,\r\n credentials: 'include',\r\n })\r\n .then(response =>\r\n // Traitement des données JSON\r\n response.json().then(data => ({\r\n data: data,\r\n })\r\n ).then(res => {\r\n // Recuperation de la liste des absences\r\n this.setState({abs: res.data})\r\n })\r\n );\r\n }\r\n }\r\n\r\n getAbsJust() {\r\n let dept = window.location.href.split('/')[6]\r\n let BASE_URL = window.$api_url\r\n if (this.state.id !== \"\") {\r\n fetch(BASE_URL + dept + \"/Scolarite/Absences/ListeAbsEtud?format=json&absjust_only=1&etudid=\" + this.props.id, {\r\n method: 'GET',\r\n verify: false,\r\n credentials: 'include',\r\n })\r\n .then(response =>\r\n // Traitement des données JSON\r\n response.json().then(data => ({\r\n data: data,\r\n })\r\n ).then(res => {\r\n // Recuperation de la liste des absences\r\n this.setState({absjust: res.data})\r\n })\r\n );\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n {this.props.id !== \"\" &&\r\n // Gestion du modal de saisie\r\n \r\n } {this.props.id !== \"\" &&\r\n // Gestion du modal de suppression\r\n \r\n } {this.props.id !== \"\" &&\r\n // Gestion du modal de justification\r\n \r\n }\r\n

Gestion des absences

\r\n {this.props.name !== \"\" &&\r\n
\r\n

Absences de {this.props.name + \" \"}\r\n \r\n \r\n

\r\n {(this.state.abs.length === 0 && this.state.absjust.length === 0 && this.props.name !== \"\") &&\r\n
Aucune absence de l'élève
\r\n }\r\n {this.state.abs.map((abs, index) => {\r\n return (\r\n
\r\n \r\n
{abs.datedmy} | {abs.matin}
\r\n {abs.motif !== \"\" &&\r\n Motif: {abs.motif}\r\n } {abs.exams !== \"\" &&\r\n Exam a rattraper: {abs.exams}\r\n }\r\n \r\n \r\n {abs.motif === \"\" &&\r\n \r\n }\r\n \r\n \r\n
\r\n )\r\n })}\r\n {this.state.absjust.map((abs, index) => {\r\n return (\r\n
\r\n \r\n
{abs.datedmy} | {abs.matin}
\r\n {abs.motif !== \"\" &&\r\n Motif: {abs.motif}\r\n } {abs.exams !== \"\" &&\r\n Exam a rattraper: {abs.exams}\r\n }\r\n \r\n \r\n \r\n \r\n
\r\n )\r\n })}\r\n
\r\n }\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default Absences","import React, {Component} from \"react\";\r\nimport '../Style.css'\r\nimport {Link} from \"react-router-dom\";\r\n\r\nclass Eleves extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n // Liste des élèves inscrits au semestre\r\n students: [],\r\n };\r\n }\r\n\r\n componentWillMount() {\r\n let dept = window.location.href.split('/')[6]\r\n let sem = window.location.href.split('/')[8]\r\n let BASE_URL = window.$api_url\r\n fetch(BASE_URL + dept +\r\n '/Scolarite/Notes/groups_view?with_codes=1&format=json&formsemestre_id=' + sem, {\r\n method: 'GET',\r\n verify: false,\r\n credentials: 'include',\r\n })\r\n .then(response =>\r\n // Traitement des données JSON\r\n response.json().then(data => ({\r\n data: data,\r\n })\r\n ).then(res => {\r\n // Gestion des données sous forme de tableau a deux colonnes\r\n const dat = res.data.map((x,i) => {\r\n return i % 2 === 0 ? res.data.slice(i, i+2) : null;\r\n }).filter(x => x != null);\r\n this.setState({ students: dat});\r\n }));\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n

Liste des élèves

\r\n
\r\n {this.state.students.map((students, index) => {\r\n // Creation du tableau de deux colonnes\r\n return (\r\n
\r\n {students.map((etud, index) => {\r\n return (\r\n
\r\n \r\n {/* Recuperation de la photo de l'etudiant */}\r\n {' '}
\r\n {etud.nom_disp} {etud.prenom}\r\n \r\n
\r\n )\r\n })}\r\n
\r\n )\r\n })}\r\n
\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default Eleves","import React, {Component} from \"react\";\r\nimport {Table, Button, Dropdown} from \"react-bootstrap\"\r\nimport '../Style.css'\r\n\r\nclass Bulletin extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n bltn: {},\r\n datue: {},\r\n loaded: false\r\n };\r\n this.getData = this.getData.bind(this);\r\n }\r\n\r\n getData() {\r\n let dept = window.location.href.split('/')[6]\r\n let sem = window.location.href.split('/')[8]\r\n let BASE_URL = window.$api_url\r\n fetch(BASE_URL + dept + '/Scolarite/Notes/formsemestre_bulletinetud?formsemestre_id=' +\r\n sem +'&etudid=' + this.props.id +'&format=json', {\r\n method: 'GET',\r\n verify: false,\r\n credentials: 'include',\r\n })\r\n .then(response =>\r\n response.json().then(data => ({\r\n data: data,\r\n status: response.status\r\n })\r\n ).then(res => {\r\n // Recuperation des données du bulletin\r\n this.setState({ bltn: res.data }, () => {\r\n // Recuperation d'un tableau CodeUE | NomUE\r\n let ls = {}\r\n for (let elm in this.state.bltn.decision_ue) {\r\n elm = this.state.bltn.decision_ue[elm]\r\n ls[elm.acronyme] = elm.titre\r\n }\r\n this.setState({datue: ls}, () => {\r\n // Marquage du bulletin comme \"chargé\"\r\n this.setState({loaded: true})\r\n })\r\n })\r\n })\r\n );\r\n }\r\n\r\n // Recuperation du bulletin au format PDF\r\n getPdf() {\r\n let BASE_URL = window.$api_url\r\n let dept = window.location.href.split('/')[6]\r\n let sem = window.location.href.split('/')[8]\r\n fetch( BASE_URL + dept + \"/Scolarite/Notes/formsemestre_bulletinetud?\" +\r\n \"formsemestre_id=\" + sem + \"&etudid=\" + this.props.id + \"&format=pdf&version=selectedevals\", {\r\n method: 'GET',\r\n verify: false,\r\n credentials: 'include',\r\n })\r\n .then( res => res.blob() )\r\n .then( blob => {\r\n let file = window.URL.createObjectURL(blob);\r\n window.location.assign(file);\r\n });\r\n }\r\n\r\n // Recuperation des données en cas de changement de props (dans notre cas, changement d'élève)\r\n componentDidUpdate(prevProps) {\r\n if (prevProps.id !== this.props.id) {\r\n this.getData();\r\n }\r\n }\r\n\r\n // Recuperation des données lors du chargement de la page si un étudiant est selectionné\r\n componentDidMount() {\r\n if (this.props.id !== \"\") {this.getData()}\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n
\r\n

Bulletins de notes

\r\n
\r\n {this.state.loaded === true &&\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.bltn.ue.map((ue, index) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {ue.module.map((mod, index) => {\r\n return (\r\n \r\n \r\n \r\n \r\n )\r\n })}\r\n \r\n )\r\n })}\r\n
\r\n Note/20
Moyenne générale\r\n \r\n \r\n {this.state.bltn.note.value}\r\n \r\n\r\n \r\n Min: {this.state.bltn.note.min}\r\n Max: {this.state.bltn.note.max}\r\n Classement: {this.state.bltn.rang.value}/{this.state.bltn.rang.ninscrits}\r\n \r\n \r\n
{ue.acronyme} - {this.state.datue[ue.acronyme]}\r\n \r\n \r\n {ue.note.value}\r\n \r\n\r\n \r\n Min: {ue.note.min}\r\n Max: {ue.note.max}\r\n Classement: {ue.rang}/{this.state.bltn.rang.ninscrits}\r\n \r\n \r\n
{mod.titre.replace(\"'\", \"'\")}\r\n \r\n \r\n {mod.note.value}\r\n \r\n\r\n \r\n Min: {mod.note.min}\r\n Max: {mod.note.max}\r\n Classement: {mod.rang.value}/{this.state.bltn.rang.ninscrits}\r\n Coefficient: {mod.coefficient}\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n }\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default Bulletin","import React, {Component} from \"react\";\r\nimport {Tabs, Tab} from \"react-bootstrap\"\r\nimport Accueil from \"./GestionSemestre/Accueil\";\r\nimport Absences from \"./GestionSemestre/Absences\";\r\nimport Eleves from \"./GestionSemestre/Eleves\";\r\nimport ScoNavBar from \"./ScoNavBar\";\r\nimport Bulletin from \"./GestionSemestre/Bulletin\";\r\nimport Select from \"react-select\";\r\n\r\nclass GestionSemestre extends Component {\r\n constructor(props){\r\n super(props)\r\n this.state = {\r\n selectOptions: [],\r\n id: \"\",\r\n name: '',\r\n }\r\n }\r\n\r\n componentWillMount() {\r\n // Recuperation de la liste des semestres\r\n let dept = window.location.href.split('/')[6]\r\n let sem = window.location.href.split('/')[8]\r\n let BASE_URL = window.$api_url\r\n fetch(BASE_URL + dept +\r\n '/Scolarite/Notes/groups_view?with_codes=1&format=json&formsemestre_id=' + sem, {\r\n method: 'GET',\r\n verify: false,\r\n credentials: 'include',\r\n })\r\n .then(response =>\r\n // Traitement des données JSON\r\n response.json().then(data => ({\r\n data: data,\r\n })\r\n ).then(res => {\r\n // Création d'une liste pour le select\r\n res.data.map((student, index) => {\r\n let joined = this.state.selectOptions.concat({label: student.nom_disp + \" \" + student.prenom, value: student.etudid});\r\n this.setState({selectOptions: joined})\r\n })\r\n })\r\n );\r\n }\r\n\r\n handleSelectChange(e){\r\n this.setState({id:e.value, name:e.label})\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n
\r\n
\r\n {/* Selection de l'étudiant pour les sous-composants */}\r\n
\r\n Choix de l'étudiant\r\n