Skip to content

Commit

Permalink
Update Admin + Questionnaire (#20)
Browse files Browse the repository at this point in the history
* maj comptes admin + dr

* mise à jour 29/05

* maj

* maj 29/05

* maj email style

* mise à jour 29/05

* maj comptes admin + dr (#1)

* maj 03/06 >> besoins + ajout titre par jour

* maj visuel session

* maj comptes DR

* maj session programme + dr

* maj emails

* Update 3/06 - 14h14 (#4) (#5)

* maj comptes admin + dr

* mise à jour 29/05

* maj

* maj 29/05

* maj email style

* mise à jour 29/05

* maj comptes admin + dr (#1)

* maj 03/06 >> besoins + ajout titre par jour

* maj visuel session

* maj comptes DR

* maj session programme + dr

---------

Co-authored-by: lollybet_antony <[email protected]>

* last maj 17/06

* maj questionnaire

* maj espace perso

* maj

* maj espace perso

* maj espace perso

* Espace perso (#17)

* Maj questionnaire (#8)

* maj comptes admin + dr

* mise à jour 29/05

* maj

* maj 29/05

* maj email style

* mise à jour 29/05

* maj comptes admin + dr (#1)

* maj 03/06 >> besoins + ajout titre par jour

* maj visuel session

* maj comptes DR

* maj session programme + dr

* maj emails

* Update 3/06 - 14h14 (#4) (#5)

* maj comptes admin + dr

* mise à jour 29/05

* maj

* maj 29/05

* maj email style

* mise à jour 29/05

* maj comptes admin + dr (#1)

* maj 03/06 >> besoins + ajout titre par jour

* maj visuel session

* maj comptes DR

* maj session programme + dr

---------

Co-authored-by: lollybet_antony <[email protected]>

* last maj 17/06

* maj questionnaire

---------

Co-authored-by: lollybet_antony <[email protected]>

* Maj espace perso (#9)

* maj comptes admin + dr

* mise à jour 29/05

* maj

* maj 29/05

* maj email style

* mise à jour 29/05

* maj comptes admin + dr (#1)

* maj 03/06 >> besoins + ajout titre par jour

* maj visuel session

* maj comptes DR

* maj session programme + dr

* maj emails

* Update 3/06 - 14h14 (#4) (#5)

* maj comptes admin + dr

* mise à jour 29/05

* maj

* maj 29/05

* maj email style

* mise à jour 29/05

* maj comptes admin + dr (#1)

* maj 03/06 >> besoins + ajout titre par jour

* maj visuel session

* maj comptes DR

* maj session programme + dr

---------

Co-authored-by: lollybet_antony <[email protected]>

* last maj 17/06

* maj questionnaire

* maj espace perso

---------

Co-authored-by: lollybet_antony <[email protected]>

* Maj espace perso (#10)

* maj comptes admin + dr

* mise à jour 29/05

* maj

* maj 29/05

* maj email style

* mise à jour 29/05

* maj comptes admin + dr (#1)

* maj 03/06 >> besoins + ajout titre par jour

* maj visuel session

* maj comptes DR

* maj session programme + dr

* maj emails

* Update 3/06 - 14h14 (#4) (#5)

* maj comptes admin + dr

* mise à jour 29/05

* maj

* maj 29/05

* maj email style

* mise à jour 29/05

* maj comptes admin + dr (#1)

* maj 03/06 >> besoins + ajout titre par jour

* maj visuel session

* maj comptes DR

* maj session programme + dr

---------

Co-authored-by: lollybet_antony <[email protected]>

* last maj 17/06

* maj questionnaire

* maj espace perso

---------

Co-authored-by: lollybet_antony <[email protected]>

* Update espace perso (#12)

* maj comptes admin + dr

* mise à jour 29/05

* maj

* maj 29/05

* maj email style

* mise à jour 29/05

* maj comptes admin + dr (#1)

* maj 03/06 >> besoins + ajout titre par jour

* maj visuel session

* maj comptes DR

* maj session programme + dr

* maj emails

* Update 3/06 - 14h14 (#4) (#5)

* maj comptes admin + dr

* mise à jour 29/05

* maj

* maj 29/05

* maj email style

* mise à jour 29/05

* maj comptes admin + dr (#1)

* maj 03/06 >> besoins + ajout titre par jour

* maj visuel session

* maj comptes DR

* maj session programme + dr

---------

Co-authored-by: lollybet_antony <[email protected]>

* last maj 17/06

* maj questionnaire

* maj espace perso

---------

Co-authored-by: lollybet_antony <[email protected]>

* Update from repo a (#13)

* maj comptes admin + dr

* mise à jour 29/05

* maj

* maj 29/05

* maj email style

* mise à jour 29/05

* maj comptes admin + dr (#1)

* maj 03/06 >> besoins + ajout titre par jour

* maj visuel session

* maj comptes DR

* maj session programme + dr

* maj emails

* Update 3/06 - 14h14 (#4) (#5)

* maj comptes admin + dr

* mise à jour 29/05

* maj

* maj 29/05

* maj email style

* mise à jour 29/05

* maj comptes admin + dr (#1)

* maj 03/06 >> besoins + ajout titre par jour

* maj visuel session

* maj comptes DR

* maj session programme + dr

---------

Co-authored-by: lollybet_antony <[email protected]>

* last maj 17/06

* maj questionnaire

* maj espace perso

* maj

---------

Co-authored-by: lollybet_antony <[email protected]>

* Maj test espace perso (#14)

* maj comptes admin + dr

* mise à jour 29/05

* maj

* maj 29/05

* maj email style

* mise à jour 29/05

* maj comptes admin + dr (#1)

* maj 03/06 >> besoins + ajout titre par jour

* maj visuel session

* maj comptes DR

* maj session programme + dr

* maj emails

* Update 3/06 - 14h14 (#4) (#5)

* maj comptes admin + dr

* mise à jour 29/05

* maj

* maj 29/05

* maj email style

* mise à jour 29/05

* maj comptes admin + dr (#1)

* maj 03/06 >> besoins + ajout titre par jour

* maj visuel session

* maj comptes DR

* maj session programme + dr

---------

Co-authored-by: lollybet_antony <[email protected]>

* last maj 17/06

* maj questionnaire

* maj espace perso

* maj

* maj espace perso

---------

Co-authored-by: lollybet_antony <[email protected]>

* MAJ ESPACE PERSO (#15)

* maj comptes admin + dr

* mise à jour 29/05

* maj

* maj 29/05

* maj email style

* mise à jour 29/05

* maj comptes admin + dr (#1)

* maj 03/06 >> besoins + ajout titre par jour

* maj visuel session

* maj comptes DR

* maj session programme + dr

* maj emails

* Update 3/06 - 14h14 (#4) (#5)

* maj comptes admin + dr

* mise à jour 29/05

* maj

* maj 29/05

* maj email style

* mise à jour 29/05

* maj comptes admin + dr (#1)

* maj 03/06 >> besoins + ajout titre par jour

* maj visuel session

* maj comptes DR

* maj session programme + dr

---------

Co-authored-by: lollybet_antony <[email protected]>

* last maj 17/06

* maj questionnaire

* maj espace perso

* maj

* maj espace perso

* maj espace perso

---------

Co-authored-by: lollybet_antony <[email protected]>

* Update from repo a (#16)

* maj comptes admin + dr

* mise à jour 29/05

* maj

* maj 29/05

* maj email style

* mise à jour 29/05

* maj comptes admin + dr (#1)

* maj 03/06 >> besoins + ajout titre par jour

* maj visuel session

* maj comptes DR

* maj session programme + dr

* maj emails

* Update 3/06 - 14h14 (#4) (#5)

* maj comptes admin + dr

* mise à jour 29/05

* maj

* maj 29/05

* maj email style

* mise à jour 29/05

* maj comptes admin + dr (#1)

* maj 03/06 >> besoins + ajout titre par jour

* maj visuel session

* maj comptes DR

* maj session programme + dr

---------

Co-authored-by: lollybet_antony <[email protected]>

* last maj 17/06

* maj questionnaire

* maj espace perso

* maj

* maj espace perso

* maj espace perso

---------

Co-authored-by: lollybet_antony <[email protected]>

---------

Co-authored-by: lollybet_antony <[email protected]>

* update perso

* Ajout de console.log pour debug

* maj admin + questionnaire

---------

Co-authored-by: lollybet_antony <[email protected]>
  • Loading branch information
AntonyKLINGER and lollybet_antony authored Jun 21, 2024
1 parent c145bba commit d8a7fee
Show file tree
Hide file tree
Showing 5 changed files with 101 additions and 49 deletions.
5 changes: 3 additions & 2 deletions components/Comptes.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import Alert from '@/components/Alert'
import { Notif } from '@/components/Notif'
import styles from '@/styles/Admin.module.css'

export default function Comptes() {
export default function Comptes({ user }) {

const [alert, setAlert] = useState(null)
const [notif, setNotif] = useState(null)
Expand Down Expand Up @@ -179,6 +179,7 @@ export default function Comptes() {

}


const closeSettings = () => {
setOpenSettings(false);
setSelectedAccount(null);
Expand Down Expand Up @@ -334,7 +335,7 @@ export default function Comptes() {
<div className="flex gap10 aligncenter">
<span>{acc.type}</span>
<button onClick={() => openAllSettings(acc)} className="btn__light">Modules/Régions</button>
{acc.type != 'DR' && (
{user.type == 'Administrateur' && (
<button onClick={() => preDeleteAccount(acc.id)}>Supprimer</button>
)}
</div>
Expand Down
108 changes: 74 additions & 34 deletions components/RencontreDetail.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ import Rating from '@mui/material/Rating';
import styles from '@/styles/Account.module.css';

export default function RencontreDetail({ id, setOpen, userId, user }) {
console.log(id, setOpen, userId, user);

const [alert, setAlert] = useState(null);
const [notif, setNotif] = useState(null);
Expand All @@ -22,7 +21,6 @@ export default function RencontreDetail({ id, setOpen, userId, user }) {
const [responses, setResponses] = useState({});
const [hasResponded, setHasResponded] = useState(false);


const [modules, setModules] = useState([])

const getModules = async () => {
Expand All @@ -31,6 +29,8 @@ export default function RencontreDetail({ id, setOpen, userId, user }) {
setModules(json)
}

console.log(responses)

useEffect(() => {
getModules()
}, [])
Expand Down Expand Up @@ -134,20 +134,41 @@ export default function RencontreDetail({ id, setOpen, userId, user }) {
{
id: 10,
text: "Il existe d’autres Rencontres Territoire Engagé Transition Ecologique. Quelles sont les thématiques susceptibles de vous intéresser ?",
options: modules.map(module => ({ value: module.nom, label: module.nom }))
options: modules.map(module => ({ value: module.nom, label: module.nom })),
type: "checkbox"
}
];

const handleOptionChange = (questionId, value) => {
const handleOptionChange = (questionId, value, checked) => {
setOtherInputs(prevState => ({
...prevState,
[questionId]: value === 'autre',
}));
setResponses(prevState => ({
...prevState,
[questionId]: value,
}));

if (questions.find(q => q.id === questionId).type === 'checkbox') {
setResponses(prevState => {
const newValues = prevState[questionId] ? [...prevState[questionId]] : [];
if (checked) {
newValues.push(value);
} else {
const index = newValues.indexOf(value);
if (index > -1) {
newValues.splice(index, 1);
}
}
return {
...prevState,
[questionId]: newValues,
};
});
} else {
setResponses(prevState => ({
...prevState,
[questionId]: value,
}));
}
};


const handleTextareaChange = (questionId, value) => {
setResponses(prevState => ({
Expand Down Expand Up @@ -442,7 +463,7 @@ export default function RencontreDetail({ id, setOpen, userId, user }) {
)}
{passed && !hasResponded && (
<>
<span className={styles.Subtitle}>Donnez votre avis sur la rencontre :</span>
{/* <span className={styles.Subtitle}>Donnez votre avis sur la rencontre :</span>
<div className="mTop15">
<Rating
name="simple-controlled"
Expand All @@ -458,7 +479,7 @@ export default function RencontreDetail({ id, setOpen, userId, user }) {
<div className='mTop20 flex alignright'>
<button onClick={addReview} className="btn__normal btn__dark">Valider mon avis</button>
</div>
)}
)} */}

<span className={styles.Subtitle}>Nous vous remercions de prendre 5 minutes pour répondre à ce questionnaire de satisfaction. Vos réponses permettront d’améliorer l’offre des Rencontres Territoire Engagé Transition Ecologique de l’ADEME.</span>
<form onSubmit={handleSubmit}>
Expand All @@ -478,43 +499,62 @@ export default function RencontreDetail({ id, setOpen, userId, user }) {
></textarea>
</p>
) : (
question.options.map((option, index) => (
<div key={index}>
<p className={styles.asker}>
<input
type="radio"
name={`question_${question.id}`}
id={`question_${question.id}_${option.value}`}
value={option.value}
onChange={() => handleOptionChange(question.id, option.value)}
/>
<label htmlFor={`question_${question.id}_${option.value}`}>{option.label}</label>
</p>
{option.value === 'autre' && otherInputs[question.id] && (
question.type === "checkbox" ? (
question.options.map((option, index) => (
<div key={index}>
<p className={styles.asker}>
<input
type="checkbox"
name={`question_${question.id}`}
id={`question_${question.id}_${option.value}`}
value={option.value}
checked={(responses[question.id] || []).includes(option.value)}
onChange={(e) => handleOptionChange(question.id, option.value, e.target.checked)}
/>
<label htmlFor={`question_${question.id}_${option.value}`}>{option.label}</label>
</p>
</div>
))
) : (
question.options.map((option, index) => (
<div key={index}>
<p className={styles.asker}>
<input
type="text"
name={`question_${question.id}_autre`}
id={`question_${question.id}_autre`}
placeholder="Veuillez préciser"
value={responses[`${question.id}_autre`] || ''}
className={styles.textF}
onChange={(e) => handleOtherInputChange(question.id, e.target.value)}
type="radio"
name={`question_${question.id}`}
id={`question_${question.id}_${option.value}`}
value={option.value}
onChange={() => handleOptionChange(question.id, option.value)}
/>
<label htmlFor={`question_${question.id}_${option.value}`}>{option.label}</label>
</p>
)}
</div>
))
{option.value === 'autre' && otherInputs[question.id] && (
<p className={styles.asker}>
<input
type="text"
name={`question_${question.id}_autre`}
id={`question_${question.id}_autre`}
placeholder="Veuillez préciser"
value={responses[`${question.id}_autre`] || ''}
className={styles.textF}
onChange={(e) => handleOtherInputChange(question.id, e.target.value)}
/>
</p>
)}
</div>
))
)
)}
</div>
))}
<button className="btn__normal btn__dark mBot20 mTop10" type="submit">Soumettre</button>
</form>

</>
)}
{hasResponded && (
<div className="mTop30 mBot20">
<span className={styles.Subtitle}>Vous avez déjà répondu à ce questionnaire. Merci pour votre participation.</span>
<span className={styles.Subtitle}>Merci pour votre participation.</span>
</div>
)}
{alert != null && (
Expand Down
33 changes: 22 additions & 11 deletions components/Reviews.jsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { useState, useEffect } from 'react'
import React, { useState, useEffect } from 'react'
import Review from '@/components/Review'
import styles from '@/styles/Reviews.module.css'

Expand Down Expand Up @@ -57,33 +57,32 @@ export default function Reviews({ session, setOpen }){
getQuizz()
}, [])

console.log(quizz)


return (
<>
<div className={styles.Reviews}>
<span onClick={() => setOpen(null)} className={styles.Back}>Retour aux sessions</span>
<div className="flex aligncenter space-between w100 gap40 mTop30">
<span className={`${styles.Title} w60`}>{session.moduleName} <br />Avis sur la session du {formatDate(session.dateDebut)}, {session.region}</span>
<div className="flex aligncenter gap10">
{/* <div className="flex aligncenter gap10">
<span className={styles.Number}><span className="material-icons">reviews</span>{number} avis</span>
<span className={styles.Number}><span className="material-icons">insights</span>{moyenne > 0 ? moyenne : '-'}/5 de moyenne</span>
</div>

*/}
</div>
<div className="mTop30">
{reviews.length > 0 ? (
{/* {reviews.length > 0 ? (
<>
{reviews.map((review, index) => {
return <Review key={index} data={review} />
})}
</>
) : (
<span>Aucun avis pour cette session.</span>
)}
)} */}

<h3 className="mTop20">Questionnaires de satisfaction :</h3>

{quizz.length > 0 ? (
<>
{quizz.map((question, index) => {
Expand All @@ -96,10 +95,21 @@ export default function Reviews({ session, setOpen }){
<td>{question.User.nom} {question.User.prenom}</td>
</tr>
{Object.entries(responses).map(([questionId, response], idx) => (
<tr key={idx}>
<td>{questionLabels[questionId] || `Question ${questionId}`}</td>
<td>{response}</td>
</tr>
<React.Fragment key={idx}>
{Array.isArray(response) ? (
response.map((resp, respIdx) => (
<tr key={respIdx}>
<td>{questionLabels[questionId] || `Question ${questionId}`} ({respIdx + 1})</td>
<td>{resp}</td>
</tr>
))
) : (
<tr>
<td>{questionLabels[questionId] || `Question ${questionId}`}</td>
<td>{response}</td>
</tr>
)}
</React.Fragment>
))}
</tbody>
</table>
Expand All @@ -109,6 +119,7 @@ export default function Reviews({ session, setOpen }){
) : (
<span className="block mTop20">Aucun questionnaire de satisfaction.</span>
)}

</div>
</div>
</>
Expand Down
2 changes: 1 addition & 1 deletion pages/admin.js
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ export default function Admin({ user }){
<Modules user={userInfo} setPage={setPage} />
)}
{page == 1 && (
<Comptes />
<Comptes user={userInfo} />
)}
{page == 2 && (
<AllSessions user={userInfo} page={page} setPage={setPage} />
Expand Down
2 changes: 1 addition & 1 deletion styles/globals.css
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ p{

.btn__dark{
color:#FFF;
background: var(--primary);
background: var(--primary) !important;
transition:.2s ease;
}

Expand Down

0 comments on commit d8a7fee

Please sign in to comment.