From 211a168bd0871df09303fae4d521121a5741df00 Mon Sep 17 00:00:00 2001 From: trochas Date: Mon, 29 Sep 2025 12:48:09 +0200 Subject: [PATCH] =?UTF-8?q?show=20fini,=20formulaire=20pour=20cr=C3=A9er?= =?UTF-8?q?=20une=20question=20PT?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- src/main/java/metier/Choix.java | 4 +- src/main/java/metier/Quizz.java | 4 ++ src/main/java/servlet/QuestionInfo.java | 71 +++++++++++++++++++++++++ src/main/java/servlet/SessionInfo.java | 4 ++ src/main/java/servlet/Show.java | 48 +++++++++++++++-- src/main/webapp/Question.html | 41 ++++++++++++++ src/main/webapp/Quizz.html | 1 + src/main/webapp/Session.html | 2 + src/main/webapp/index.html | 3 ++ 10 files changed, 173 insertions(+), 7 deletions(-) create mode 100644 src/main/java/servlet/QuestionInfo.java create mode 100644 src/main/webapp/Question.html diff --git a/README.md b/README.md index 9d969aa..7eddf6a 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ classDiagram -codePIN : int -quizzs : List<Quizz> -utilisateurs : List<Utilisateur> - -theme : int + -theme : String } class Quizz{ -session: Session diff --git a/src/main/java/metier/Choix.java b/src/main/java/metier/Choix.java index 62c7912..3bc550a 100644 --- a/src/main/java/metier/Choix.java +++ b/src/main/java/metier/Choix.java @@ -1,6 +1,6 @@ package metier; -import java.util.ArrayList; +import java.util.List; import jakarta.persistence.Entity; import jakarta.persistence.PrimaryKeyJoinColumn; @@ -14,7 +14,7 @@ import lombok.Setter; @NoArgsConstructor @PrimaryKeyJoinColumn(name = "Choix_Id") public class Choix extends Reponse{ - ArrayList choix; + List choix; @Override public String valHTML(){ diff --git a/src/main/java/metier/Quizz.java b/src/main/java/metier/Quizz.java index c0e8e68..7206ac0 100644 --- a/src/main/java/metier/Quizz.java +++ b/src/main/java/metier/Quizz.java @@ -27,4 +27,8 @@ public class Quizz implements Serializable { @OneToMany(mappedBy = "quizz") private List questions=new ArrayList(); + + public void addQuestion(Question question) { + this.questions.add(question); + } } \ No newline at end of file diff --git a/src/main/java/servlet/QuestionInfo.java b/src/main/java/servlet/QuestionInfo.java new file mode 100644 index 0000000..af5e9bd --- /dev/null +++ b/src/main/java/servlet/QuestionInfo.java @@ -0,0 +1,71 @@ +package servlet; + +import java.io.IOException; +import jakarta.servlet.ServletException; +import jakarta.servlet.annotation.WebServlet; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import DAO.*; +import metier.*; +import java.util.List; +import java.util.Arrays; + +@WebServlet(name="question", + urlPatterns={"/QuestionInfo"}) +public class QuestionInfo extends HttpServlet { + + + @Override + protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + req.getRequestDispatcher("/Question.html").forward(req, resp); + } + + @Override + protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + QuizzDAO qDAO = new QuizzDAO(); + QuestionDAO questionDAO = new QuestionDAO(); + String ennonce = req.getParameter("question"); + String type = req.getParameter("type"); + String choixPossible = req.getParameter("choixPossible"); + String reponse = req.getParameter("reponse"); + String idQuizz = req.getParameter("idQuizz"); + + Question question = new Question(); + Quizz quizz = qDAO.findById(Integer.parseInt(idQuizz)); + if(quizz==null){ + resp.getWriter().println("\n\n" + + "

Quizz non trouvable

" + + ""); + return ; + } + quizz.addQuestion(question); + question.setQuestion(ennonce); + + + List listRep = Arrays.asList(reponse.split("\n")); + + + if(type.equals("choix")){ + Choix choix = new Choix(); + question.setReponse(choix); + List listChoix = Arrays.asList(choixPossible.split("\n")); + choix.setChoix(listChoix); + choix.setReponses(listRep); + } + else if (type.equals("courte")){ + ReponseCourte reponseCourte = new ReponseCourte(); + question.setReponse(reponseCourte); + reponseCourte.setReponses(listRep); + } + else{ + resp.getWriter().println("\n\n" + + "

Type de question non trouvé

" + + ""); + return ; + } + + questionDAO.create(question); + + } +} \ No newline at end of file diff --git a/src/main/java/servlet/SessionInfo.java b/src/main/java/servlet/SessionInfo.java index 84af8fc..55af764 100644 --- a/src/main/java/servlet/SessionInfo.java +++ b/src/main/java/servlet/SessionInfo.java @@ -27,10 +27,14 @@ public class SessionInfo extends HttpServlet { protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // Créer une nouvelle session String theme = req.getParameter("theme"); + String codePin = req.getParameter("codePIN"); Session s = new Session(); + s.setCodePIN(Integer.parseInt(codePin)); s.setTheme(theme); sessionDAO.create(s); + resp.getWriter().println("

Session creee avec id: " + + s.getId() + "

"); resp.getWriter().println("

Session creee avec code PIN: " + s.getCodePIN() + "

"); } diff --git a/src/main/java/servlet/Show.java b/src/main/java/servlet/Show.java index 3ccb501..210a985 100644 --- a/src/main/java/servlet/Show.java +++ b/src/main/java/servlet/Show.java @@ -14,8 +14,8 @@ import jakarta.servlet.http.HttpServletResponse; @WebServlet(name="Show", urlPatterns={"/Show"}) public class Show extends HttpServlet { - Utilisateur u; - QuizzDAO quizzDAI = new QuizzDAO(); + QuizzDAO quizzDAO = new QuizzDAO(); + SessionDAO sessionDAO = new SessionDAO(); UtilisateurDAO utilisateurDAO = new UtilisateurDAO(); @Override @@ -52,14 +52,15 @@ public class Show extends HttpServlet { result += ""+ ""; - result += "\n"; //QUIZZ - List listQuizz = quizzDAI.findAll(); + List listQuizz = quizzDAO.findAll(); result += "

Quizz :

"; for (Quizz quizz : listQuizz) { result += "quizz n°" + quizz.getId() + "
"; + result += "Admin" + quizz.getUtilisateur().getEmail() + " (id: " + quizz.getUtilisateur().getId() + ")
"; + result += "nb Question :" + quizz.getQuestions().size() +"
"; for (Question question : quizz.getQuestions()) { result += question.getQuestion() + "
"; @@ -73,6 +74,45 @@ public class Show extends HttpServlet { } } + //SESSION + List listSession = sessionDAO.findAll(); + result += "

Session :

"; + result += + ""+ + ""+ + ""+ + ""+ + ""+ + ""+ + ""; + + for(Session session : listSession){ + result+= + ""+ + ""+""+""; + String quizzsID = ""; + for(Quizz quizz : session.getQuizzs()){ + quizzsID += quizz.getId() + " ; "; + } + String UtilisateurID = ""; + for(Utilisateur utilisateur : session.getUtilisateurs()){ + UtilisateurID += utilisateur.getId() + " ; "; + } + result += ""+""; + result+=""; + } + + result += + ""+ + "
IDThemeCode PINQizzsParticipants
"+session.getId()+""+session.getTheme()+""+session.getCodePIN()+""+quizzsID+""+UtilisateurID+"
"; + + + + + + //HTML END + result += "\n"; + response.getWriter().write(result); } } diff --git a/src/main/webapp/Question.html b/src/main/webapp/Question.html new file mode 100644 index 0000000..d8f79c0 --- /dev/null +++ b/src/main/webapp/Question.html @@ -0,0 +1,41 @@ + + + + +

Creer une Question

+
+ + Ennoncé de la question :
+ Type : +
+
+ Choix possible (séparez avec des retour à la ligne):
+
+
+ Réponse autorisée (séparez avec des retour à la ligne):
+
+ ID Quizz:
+ +
+ + + + + + + + \ No newline at end of file diff --git a/src/main/webapp/Quizz.html b/src/main/webapp/Quizz.html index a4f5568..cd3a1b2 100644 --- a/src/main/webapp/Quizz.html +++ b/src/main/webapp/Quizz.html @@ -1,4 +1,5 @@ +
diff --git a/src/main/webapp/Session.html b/src/main/webapp/Session.html index 310e94d..b0d3f63 100644 --- a/src/main/webapp/Session.html +++ b/src/main/webapp/Session.html @@ -1,10 +1,12 @@ +

Creer une session

Theme: + CodePin
diff --git a/src/main/webapp/index.html b/src/main/webapp/index.html index 7a53f09..b42c7df 100644 --- a/src/main/webapp/index.html +++ b/src/main/webapp/index.html @@ -7,7 +7,10 @@

Hello World!

myform +session Quizz +Question + show