Skip to content
Snippets Groups Projects
Commit 9d0b1e09 authored by Adrien Fryson's avatar Adrien Fryson
Browse files

fixes

parent 703c941f
No related branches found
No related tags found
No related merge requests found
Showing with 35 additions and 51 deletions
...@@ -33,4 +33,4 @@ public class DeleteMessage extends HttpServlet { ...@@ -33,4 +33,4 @@ public class DeleteMessage extends HttpServlet {
} }
res.sendRedirect(req.getHeader("Referer")); res.sendRedirect(req.getHeader("Referer"));
} }
} }
\ No newline at end of file
...@@ -22,7 +22,8 @@ import modele.FilDeDiscussionDAO; ...@@ -22,7 +22,8 @@ import modele.FilDeDiscussionDAO;
import modele.Message; import modele.Message;
import modele.MessageDao; import modele.MessageDao;
//http GET http://localhost:8080/sae/getFils Cookie:"JSESSIONID=ton_session_id" --> F12>Storage>JSESSIONID // http GET http://localhost:8080/CampusTalk/getFils Cookie:"JSESSIONID=?" --> F12>Storage>JSESSIONID
// curl -X GET http://localhost:8080/CampusTalk/getFils --cookie "JSESSIONID=?"
@WebServlet("/getFils") @WebServlet("/getFils")
public class GetFils extends HttpServlet { public class GetFils extends HttpServlet {
......
...@@ -6,9 +6,6 @@ import jakarta.servlet.annotation.WebServlet; ...@@ -6,9 +6,6 @@ import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import modele.AbonnementDao;
import modele.FilDeDiscussionDAO;
import modele.MessageDao;
import modele.Utilisateur; import modele.Utilisateur;
import modele.UtilisateurDao; import modele.UtilisateurDao;
import org.apache.commons.text.StringEscapeUtils; import org.apache.commons.text.StringEscapeUtils;
......
...@@ -3,7 +3,6 @@ package modele; ...@@ -3,7 +3,6 @@ package modele;
import java.sql.Connection; import java.sql.Connection;
import java.sql.PreparedStatement; import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List; import java.util.List;
import java.util.ArrayList; import java.util.ArrayList;
......
...@@ -3,7 +3,6 @@ package modele; ...@@ -3,7 +3,6 @@ package modele;
import java.sql.Connection; import java.sql.Connection;
import java.sql.PreparedStatement; import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
......
...@@ -3,7 +3,6 @@ package modele; ...@@ -3,7 +3,6 @@ package modele;
import java.sql.Connection; import java.sql.Connection;
import java.sql.PreparedStatement; import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List; import java.util.List;
import java.util.ArrayList; import java.util.ArrayList;
...@@ -35,7 +34,7 @@ public class MessageDao { ...@@ -35,7 +34,7 @@ public class MessageDao {
public List<Message> findAll() { public List<Message> findAll() {
List<Message> messages = new ArrayList<>(); List<Message> messages = new ArrayList<>();
try(Connection con = DS.instance.getConnection()) { try(Connection con = DS.instance.getConnection()) {
PreparedStatement ps = con.prepareStatement("SELECT * FROM message"); PreparedStatement ps = con.prepareStatement("SELECT * FROM message ORDER BY datePublication, id");
ResultSet rs = ps.executeQuery(); ResultSet rs = ps.executeQuery();
while (rs.next()) { while (rs.next()) {
Message message = new Message(); Message message = new Message();
...@@ -57,7 +56,7 @@ public class MessageDao { ...@@ -57,7 +56,7 @@ public class MessageDao {
public List<Message> findByFil(int idFil) { public List<Message> findByFil(int idFil) {
List<Message> messages = new ArrayList<>(); List<Message> messages = new ArrayList<>();
try(Connection con = DS.instance.getConnection()) { try(Connection con = DS.instance.getConnection()) {
PreparedStatement ps = con.prepareStatement("SELECT * FROM message WHERE filId = ?"); PreparedStatement ps = con.prepareStatement("SELECT * FROM message WHERE filId = ? ORDER BY datePublication, id");
ps.setInt(1, idFil); ps.setInt(1, idFil);
ResultSet rs = ps.executeQuery(); ResultSet rs = ps.executeQuery();
while (rs.next()) { while (rs.next()) {
......
...@@ -50,7 +50,7 @@ public class UtilisateurDao { ...@@ -50,7 +50,7 @@ public class UtilisateurDao {
public void update(Utilisateur utilisateur, String oldEmail) { public void update(Utilisateur utilisateur, String oldEmail) {
try(Connection con = DS.instance.getConnection()) { try(Connection con = DS.instance.getConnection()) {
PreparedStatement ps = con.prepareStatement("UPDATE Utilisateur SET nom = ?, email = ?, motdepasse = ? WHERE email = ?"); PreparedStatement ps = con.prepareStatement("UPDATE Utilisateur SET nom = ?, email = ?, motdepasse = MD5(?) WHERE email = ?");
ps.setString(1, utilisateur.getNom()); ps.setString(1, utilisateur.getNom());
ps.setString(2, utilisateur.getEmail()); ps.setString(2, utilisateur.getEmail());
ps.setString(3, utilisateur.getMotDePasse()); ps.setString(3, utilisateur.getMotDePasse());
......
...@@ -8,7 +8,6 @@ ...@@ -8,7 +8,6 @@
<%@ page import="java.util.Set" %> <%@ page import="java.util.Set" %>
<%@ page import="java.util.HashSet" %> <%@ page import="java.util.HashSet" %>
<!DOCTYPE html> <!DOCTYPE html>
<html lang="fr"> <html lang="fr">
<head> <head>
...@@ -18,8 +17,8 @@ ...@@ -18,8 +17,8 @@
<link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet"> <link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet">
<link rel="shortcut icon" href="<%= request.getContextPath() %>/images/logo.png"> <link rel="shortcut icon" href="<%= request.getContextPath() %>/images/logo.png">
</head> </head>
<body class="bg-gray-900 text-white flex"> <body class="bg-gray-900 text-white flex flex-col md:flex-row">
<aside class="w-64 bg-gray-800 text-white h-screen"> <aside class="w-full md:w-64 bg-gray-800 text-white h-auto md:h-screen">
<div class="p-4 text-center"> <div class="p-4 text-center">
<img src="<%= request.getContextPath() %>/images/logo.png" alt="CampusTalk Logo" class="w-16 h-16 mx-auto"> <img src="<%= request.getContextPath() %>/images/logo.png" alt="CampusTalk Logo" class="w-16 h-16 mx-auto">
<h1 class="text-2xl font-bold mt-4">CampusTalk</h1> <h1 class="text-2xl font-bold mt-4">CampusTalk</h1>
......
...@@ -9,8 +9,8 @@ ...@@ -9,8 +9,8 @@
<link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet"> <link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet">
<link rel="shortcut icon" href="<%= request.getContextPath() %>/images/logo.png"> <link rel="shortcut icon" href="<%= request.getContextPath() %>/images/logo.png">
</head> </head>
<body class="bg-gray-900 text-white flex"> <body class="bg-gray-900 text-white flex flex-col md:flex-row">
<aside class="w-64 bg-gray-800 text-white h-screen"> <aside class="w-full md:w-64 bg-gray-800 text-white h-auto md:h-screen">
<div class="p-4 text-center"> <div class="p-4 text-center">
<img src="<%= request.getContextPath() %>/images/logo.png" alt="CampusTalk Logo" class="w-16 h-16 mx-auto"> <img src="<%= request.getContextPath() %>/images/logo.png" alt="CampusTalk Logo" class="w-16 h-16 mx-auto">
<h1 class="text-2xl font-bold mt-4">CampusTalk</h1> <h1 class="text-2xl font-bold mt-4">CampusTalk</h1>
......
...@@ -30,8 +30,8 @@ ...@@ -30,8 +30,8 @@
} }
</style> </style>
</head> </head>
<body class="bg-gray-900 text-white flex h-screen"> <body class="bg-gray-900 text-white flex flex-col md:flex-row h-screen">
<aside class="w-64 bg-gray-800 text-white h-full"> <aside class="w-full md:w-64 bg-gray-800 text-white h-auto md:h-full">
<div class="p-4 text-center"> <div class="p-4 text-center">
<img src="<%= request.getContextPath() %>/images/logo.png" alt="CampusTalk Logo" class="w-16 h-16 mx-auto"> <img src="<%= request.getContextPath() %>/images/logo.png" alt="CampusTalk Logo" class="w-16 h-16 mx-auto">
<h1 class="text-2xl font-bold mt-4">CampusTalk</h1> <h1 class="text-2xl font-bold mt-4">CampusTalk</h1>
......
...@@ -16,8 +16,8 @@ ...@@ -16,8 +16,8 @@
<link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet"> <link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet">
<link rel="shortcut icon" href="<%= request.getContextPath() %>/images/logo.png"> <link rel="shortcut icon" href="<%= request.getContextPath() %>/images/logo.png">
</head> </head>
<body class="bg-gray-900 text-white flex"> <body class="bg-gray-900 text-white flex flex-col md:flex-row">
<aside class="w-64 bg-gray-800 text-white h-screen"> <aside class="w-full md:w-64 bg-gray-800 text-white h-auto md:h-screen">
<div class="p-4 text-center"> <div class="p-4 text-center">
<img src="<%= request.getContextPath() %>/images/logo.png" alt="CampusTalk Logo" class="w-16 h-16 mx-auto"> <img src="<%= request.getContextPath() %>/images/logo.png" alt="CampusTalk Logo" class="w-16 h-16 mx-auto">
<h1 class="text-2xl font-bold mt-4">CampusTalk</h1> <h1 class="text-2xl font-bold mt-4">CampusTalk</h1>
......
...@@ -9,19 +9,19 @@ ...@@ -9,19 +9,19 @@
<link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet"> <link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet">
<link rel="shortcut icon" href="<%= request.getContextPath() %>/images/logo.png"> <link rel="shortcut icon" href="<%= request.getContextPath() %>/images/logo.png">
</head> </head>
<body class="bg-gray-900 text-white flex"> <body class="bg-gray-900 text-white flex flex-col md:flex-row">
<aside class="w-64 bg-gray-800 text-white h-screen"> <aside class="w-full md:w-64 bg-gray-800 text-white h-auto md:h-screen">
<div class="p-4 text-center"> <div class="p-4 text-center">
<img src="<%= request.getContextPath() %>/images/logo.png" alt="CampusTalk Logo" class="w-16 h-16 mx-auto"> <img src="<%= request.getContextPath() %>/images/logo.png" alt="CampusTalk Logo" class="w-16 h-16 mx-auto">
<h1 class="text-2xl font-bold mt-4">CampusTalk</h1> <h1 class="text-2xl font-bold mt-4">CampusTalk</h1>
</div> </div>
<nav class="mt-4"> <!-- <nav class="mt-4">
<a href="<%= request.getContextPath() %>/accueil" class="block py-2.5 px-4 rounded transition duration-200 hover:bg-gray-700">Accueil</a> <a href="<%= request.getContextPath() %>/accueil" class="block py-2.5 px-4 rounded transition duration-200 hover:bg-gray-700">Accueil</a>
<a href="<%= request.getContextPath() %>/listerFil" class="block py-2.5 px-4 rounded transition duration-200 hover:bg-gray-700">Autres Fils de Discussion</a> <a href="<%= request.getContextPath() %>/listerFil" class="block py-2.5 px-4 rounded transition duration-200 hover:bg-gray-700">Autres Fils de Discussion</a>
<a href="<%= request.getContextPath() %>/creerFil" class="block py-2.5 px-4 rounded transition duration-200 hover:bg-gray-700">Créer un Fil</a> <a href="<%= request.getContextPath() %>/creerFil" class="block py-2.5 px-4 rounded transition duration-200 hover:bg-gray-700">Créer un Fil</a>
<a href="<%= request.getContextPath() %>/parametre" class="block py-2.5 px-4 rounded transition duration-200 hover:bg-gray-700">Paramètres</a> <a href="<%= request.getContextPath() %>/parametre" class="block py-2.5 px-4 rounded transition duration-200 hover:bg-gray-700">Paramètres</a>
<a href="<%= request.getContextPath() %>/logout" class="block py-2.5 px-4 rounded transition duration-200 hover:bg-red-700">Se déconnecter</a> <a href="<%= request.getContextPath() %>/logout" class="block py-2.5 px-4 rounded transition duration-200 hover:bg-red-700">Se déconnecter</a>
</nav> </nav> -->
</aside> </aside>
<div class="flex-1 p-6"> <div class="flex-1 p-6">
<div class="max-w-md mx-auto mt-12 p-6 bg-gray-800 rounded-lg shadow-md"> <div class="max-w-md mx-auto mt-12 p-6 bg-gray-800 rounded-lg shadow-md">
......
...@@ -17,8 +17,8 @@ ...@@ -17,8 +17,8 @@
<link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet"> <link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet">
<link rel="shortcut icon" href="<%= request.getContextPath() %>/images/logo.png"> <link rel="shortcut icon" href="<%= request.getContextPath() %>/images/logo.png">
</head> </head>
<body class="bg-gray-900 text-white flex"> <body class="bg-gray-900 text-white flex flex-col md:flex-row">
<aside class="w-64 bg-gray-800 text-white h-screen"> <aside class="w-full md:w-64 bg-gray-800 text-white h-auto md:h-screen">
<div class="p-4 text-center"> <div class="p-4 text-center">
<img src="<%= request.getContextPath() %>/images/logo.png" alt="CampusTalk Logo" class="w-16 h-16 mx-auto"> <img src="<%= request.getContextPath() %>/images/logo.png" alt="CampusTalk Logo" class="w-16 h-16 mx-auto">
<h1 class="text-2xl font-bold mt-4">CampusTalk</h1> <h1 class="text-2xl font-bold mt-4">CampusTalk</h1>
......
...@@ -9,19 +9,19 @@ ...@@ -9,19 +9,19 @@
<link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet"> <link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet">
<link rel="shortcut icon" href="<%= request.getContextPath() %>/images/logo.png"> <link rel="shortcut icon" href="<%= request.getContextPath() %>/images/logo.png">
</head> </head>
<body class="bg-gray-900 text-white flex"> <body class="bg-gray-900 text-white flex flex-col md:flex-row">
<aside class="w-64 bg-gray-800 text-white h-screen"> <aside class="w-full md:w-64 bg-gray-800 text-white h-auto md:h-screen">
<div class="p-4 text-center"> <div class="p-4 text-center">
<img src="<%= request.getContextPath() %>/images/logo.png" alt="CampusTalk Logo" class="w-16 h-16 mx-auto"> <img src="<%= request.getContextPath() %>/images/logo.png" alt="CampusTalk Logo" class="w-16 h-16 mx-auto">
<h1 class="text-2xl font-bold mt-4">CampusTalk</h1> <h1 class="text-2xl font-bold mt-4">CampusTalk</h1>
</div> </div>
<nav class="mt-4"> <!-- <nav class="mt-4">
<a href="<%= request.getContextPath() %>/accueil" class="block py-2.5 px-4 rounded transition duration-200 hover:bg-gray-700">Accueil</a> <a href="<%= request.getContextPath() %>/accueil" class="block py-2.5 px-4 rounded transition duration-200 hover:bg-gray-700">Accueil</a>
<a href="<%= request.getContextPath() %>/listerFil" class="block py-2.5 px-4 rounded transition duration-200 hover:bg-gray-700">Autres Fils de Discussion</a> <a href="<%= request.getContextPath() %>/listerFil" class="block py-2.5 px-4 rounded transition duration-200 hover:bg-gray-700">Autres Fils de Discussion</a>
<a href="<%= request.getContextPath() %>/creerFil" class="block py-2.5 px-4 rounded transition duration-200 hover:bg-gray-700">Créer un Fil</a> <a href="<%= request.getContextPath() %>/creerFil" class="block py-2.5 px-4 rounded transition duration-200 hover:bg-gray-700">Créer un Fil</a>
<a href="<%= request.getContextPath() %>/parametre" class="block py-2.5 px-4 rounded transition duration-200 hover:bg-gray-700">Paramètres</a> <a href="<%= request.getContextPath() %>/parametre" class="block py-2.5 px-4 rounded transition duration-200 hover:bg-gray-700">Paramètres</a>
<a href="<%= request.getContextPath() %>/logout" class="block py-2.5 px-4 rounded transition duration-200 hover:bg-red-700">Se déconnecter</a> <a href="<%= request.getContextPath() %>/logout" class="block py-2.5 px-4 rounded transition duration-200 hover:bg-red-700">Se déconnecter</a>
</nav> </nav> -->
</aside> </aside>
<div class="flex-1 p-6"> <div class="flex-1 p-6">
<div class="max-w-md mx-auto mt-12 p-6 bg-gray-800 rounded-lg shadow-md"> <div class="max-w-md mx-auto mt-12 p-6 bg-gray-800 rounded-lg shadow-md">
......
...@@ -82,54 +82,46 @@ VALUES ...@@ -82,54 +82,46 @@ VALUES
('utilisateur3@exemple.com', 2), ('utilisateur3@exemple.com', 2),
('utilisateur3@exemple.com', 3); ('utilisateur3@exemple.com', 3);
-- Lister tous les utilisateurs : -- -- Lister tous les utilisateurs :
-- SELECT * FROM Utilisateur; -- SELECT * FROM Utilisateur;
-- Lister tous les fils de discussion avec le nom du créateur : -- -- Lister tous les fils de discussion avec le nom du créateur :
-- SELECT f.id, f.nom, u.nom AS nomCreateur -- SELECT f.id, f.nom, u.nom AS nomCreateur
-- FROM FilDeDiscussion f -- FROM FilDeDiscussion f
-- JOIN Utilisateur u ON f.createurEmail = u.email; -- JOIN Utilisateur u ON f.createurEmail = u.email;
-- Lister tous les messages d'un fil de discussion spécifique avec le nom de l'auteur : -- -- Lister tous les messages d'un fil de discussion spécifique avec le nom de l'auteur :
-- SELECT m.contenu, u.nom AS nomAuteur, m.datePublication -- SELECT m.contenu, u.nom AS nomAuteur, m.datePublication
-- FROM Message m -- FROM Message m
-- JOIN Utilisateur u ON m.auteurEmail = u.email -- JOIN Utilisateur u ON m.auteurEmail = u.email
-- WHERE m.filId = 1 -- WHERE m.filId = 1
-- ORDER BY m.datePublication; -- ORDER BY m.datePublication;
-- Lister tous les abonnements d'un utilisateur spécifique : -- -- Lister tous les abonnements d'un utilisateur spécifique :
-- SELECT f.nom AS nomFil, a.dateAbonnement -- SELECT f.nom AS nomFil, a.dateAbonnement
-- FROM Abonnement a -- FROM Abonnement a
-- JOIN FilDeDiscussion f ON a.filId = f.id -- JOIN FilDeDiscussion f ON a.filId = f.id
-- WHERE a.utilisateurEmail = 'utilisateur1@exemple.com'; -- WHERE a.utilisateurEmail = 'utilisateur1@exemple.com';
-- Lister les fils de discussion auxquels un utilisateur n'est pas abonné : -- -- Lister les fils de discussion auxquels un utilisateur n'est pas abonné :
-- SELECT f.id, f.nom -- SELECT f.id, f.nom
-- FROM FilDeDiscussion f -- FROM FilDeDiscussion f
-- LEFT JOIN Abonnement a ON f.id = a.filId AND a.utilisateurEmail = 'utilisateur1@exemple.com' -- LEFT JOIN Abonnement a ON f.id = a.filId AND a.utilisateurEmail = 'utilisateur1@exemple.com'
-- WHERE a.utilisateurEmail IS NULL; -- WHERE a.utilisateurEmail IS NULL;
-- Compter le nombre de messages par fil de discussion : -- -- Compter le nombre de messages par fil de discussion :
-- SELECT f.nom AS nomFil, COUNT(m.id) AS nombreMessages -- SELECT f.nom AS nomFil, COUNT(m.id) AS nombreMessages
-- FROM FilDeDiscussion f -- FROM FilDeDiscussion f
-- LEFT JOIN Message m ON f.id = m.filId -- LEFT JOIN Message m ON f.id = m.filId
-- GROUP BY f.nom; -- GROUP BY f.nom;
-- Trouver les utilisateurs qui ont publié des messages dans un fil spécifique : -- -- Trouver les utilisateurs qui ont publié des messages dans un fil spécifique :
-- SELECT DISTINCT u.nom, u.email -- SELECT DISTINCT u.nom, u.email
-- FROM Utilisateur u -- FROM Utilisateur u
-- JOIN Message m ON u.email = m.auteurEmail -- JOIN Message m ON u.email = m.auteurEmail
-- WHERE m.filId = 1; -- WHERE m.filId = 1;
-- Lister les 5 derniers messages publiés dans un fil de discussion : -- -- Lister les 5 derniers messages publiés dans un fil de discussion :
-- SELECT m.contenu, u.nom AS nomAuteur, m.datePublication -- SELECT m.contenu, u.nom AS nomAuteur, m.datePublication
-- FROM Message m -- FROM Message m
-- JOIN Utilisateur u ON m.auteurEmail = u.email -- JOIN Utilisateur u ON m.auteurEmail = u.email
...@@ -137,16 +129,14 @@ VALUES ...@@ -137,16 +129,14 @@ VALUES
-- ORDER BY m.datePublication DESC -- ORDER BY m.datePublication DESC
-- LIMIT 5; -- LIMIT 5;
-- Compter le nombre d'abonnés par fil de discussion : -- -- Compter le nombre d'abonnés par fil de discussion :
-- SELECT f.nom AS nomFil, COUNT(a.utilisateurEmail) AS nombreAbonnes -- SELECT f.nom AS nomFil, COUNT(a.utilisateurEmail) AS nombreAbonnes
-- FROM FilDeDiscussion f -- FROM FilDeDiscussion f
-- LEFT JOIN Abonnement a ON f.id = a.filId -- LEFT JOIN Abonnement a ON f.id = a.filId
-- GROUP BY f.nom; -- GROUP BY f.nom;
-- Lister les utilisateurs qui ne sont abonnés à aucun fil de discussion : -- -- Lister les utilisateurs qui ne sont abonnés à aucun fil de discussion :
-- SELECT u.email, u.nom -- SELECT u.email, u.nom
-- FROM Utilisateur u -- FROM Utilisateur u
-- LEFT JOIN Abonnement a ON u.email = a.utilisateurEmail -- LEFT JOIN Abonnement a ON u.email = a.utilisateurEmail
-- WHERE a.utilisateurEmail IS NULL; -- WHERE a.utilisateurEmail IS NULL;
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment