session lundi 14/10
j'ai fait: - user stories 10 et 11 - j'ai commencé à ajouter un menu pour les bénévoles pour choisir si on veut voir les demandes acceptées ou en cours séparément - j'ai commencé à faire une page pour voir les demandes en cours, séparée de celle pour les demandes acceptées; mais pour le moment elle affiche toutes les demandes en cours indépendamment de qui les a prises - j'ai modifié la bdd sql pour ajouter 2 colonnes "motif_rejet" et "benevole_id", du coup la fonction prendreDemande() marche maintenant
This commit is contained in:
parent
4881462c38
commit
4cb93d8546
4 changed files with 247 additions and 12 deletions
108
src/main/java/controller/AjoutUtilisateur.java
Normal file
108
src/main/java/controller/AjoutUtilisateur.java
Normal file
|
@ -0,0 +1,108 @@
|
|||
package controller;
|
||||
|
||||
import database.DatabaseConnection;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.sql.Connection;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.SQLException;
|
||||
|
||||
public class AjoutUtilisateur extends JFrame {
|
||||
private JTextField nomField;
|
||||
private JTextField emailField;
|
||||
private JComboBox<String> typeComboBox;
|
||||
private JButton ajouterButton;
|
||||
private JButton retourAccueilButton;
|
||||
|
||||
public AjoutUtilisateur() {
|
||||
setTitle("Ajouter un utilisateur");
|
||||
setSize(400, 300);
|
||||
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||
setLocationRelativeTo(null);
|
||||
setLayout(new GridBagLayout());
|
||||
|
||||
GridBagConstraints gbc = new GridBagConstraints();
|
||||
gbc.insets = new Insets(10, 10, 10, 10);
|
||||
gbc.fill = GridBagConstraints.HORIZONTAL;
|
||||
|
||||
JLabel nomLabel = new JLabel("Nom :");
|
||||
gbc.gridx = 0;
|
||||
gbc.gridy = 0;
|
||||
add(nomLabel, gbc);
|
||||
|
||||
nomField = new JTextField();
|
||||
gbc.gridx = 1;
|
||||
gbc.gridy = 0;
|
||||
gbc.gridwidth = 2;
|
||||
add(nomField, gbc);
|
||||
|
||||
JLabel emailLabel = new JLabel("Email :");
|
||||
gbc.gridx = 0;
|
||||
gbc.gridy = 1;
|
||||
add(emailLabel, gbc);
|
||||
|
||||
emailField = new JTextField();
|
||||
gbc.gridx = 1;
|
||||
gbc.gridy = 1;
|
||||
gbc.gridwidth = 2;
|
||||
add(emailField, gbc);
|
||||
|
||||
JLabel typeLabel = new JLabel("Type d'utilisateur :");
|
||||
gbc.gridx = 0;
|
||||
gbc.gridy = 2;
|
||||
add(typeLabel, gbc);
|
||||
|
||||
typeComboBox = new JComboBox<>(new String[]{"benevole", "personne_besoin", "validateur"});
|
||||
gbc.gridx = 1;
|
||||
gbc.gridy = 2;
|
||||
gbc.gridwidth = 2;
|
||||
add(typeComboBox, gbc);
|
||||
|
||||
ajouterButton = new JButton("Ajouter");
|
||||
gbc.gridx = 1;
|
||||
gbc.gridy = 3;
|
||||
add(ajouterButton, gbc);
|
||||
|
||||
retourAccueilButton = new JButton("Retour à l'accueil");
|
||||
gbc.gridx = 1;
|
||||
gbc.gridy = 4;
|
||||
add(retourAccueilButton, gbc);
|
||||
|
||||
ajouterButton.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
ajouterUtilisateur();
|
||||
}
|
||||
});
|
||||
|
||||
retourAccueilButton.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
MainMenu menu = new MainMenu();
|
||||
menu.setVisible(true);
|
||||
dispose();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void ajouterUtilisateur() {
|
||||
String nom = nomField.getText();
|
||||
String email = emailField.getText();
|
||||
String typeUtilisateur = (String) typeComboBox.getSelectedItem();
|
||||
|
||||
try (Connection connection = DatabaseConnection.getConnection()) {
|
||||
String sql = "INSERT INTO utilisateurs (nom, email, type_utilisateur) VALUES (?, ?, ?)";
|
||||
PreparedStatement statement = connection.prepareStatement(sql);
|
||||
statement.setString(1, nom);
|
||||
statement.setString(2, email);
|
||||
statement.setString(3, typeUtilisateur);
|
||||
statement.executeUpdate();
|
||||
JOptionPane.showMessageDialog(this, "Utilisateur ajouté avec succès !");
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
130
src/main/java/controller/BenevoleDemandesEncoursPage.java
Normal file
130
src/main/java/controller/BenevoleDemandesEncoursPage.java
Normal file
|
@ -0,0 +1,130 @@
|
|||
package controller;
|
||||
|
||||
import database.DatabaseConnection;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.table.DefaultTableModel;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.sql.Connection;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
|
||||
public class BenevoleDemandesEncoursPage extends JFrame {
|
||||
private JTable table;
|
||||
private DefaultTableModel tableModel;
|
||||
private JButton finaliserDemandeButton;
|
||||
private JButton retourBenevoleButton;
|
||||
private int utilisateurId; // Ajout de l'ID du bénévole
|
||||
|
||||
public BenevoleDemandesEncoursPage(int utilisateurId) { // Ajout du paramètre utilisateurId
|
||||
this.utilisateurId = utilisateurId; // Stockage de l'ID du bénévole
|
||||
setTitle("Demandes en cours");
|
||||
setSize(600, 400);
|
||||
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||
setLocationRelativeTo(null);
|
||||
|
||||
// Tableau pour afficher les demandes
|
||||
tableModel = new DefaultTableModel(new String[]{"ID", "Description", "Statut"}, 0);
|
||||
table = new JTable(tableModel);
|
||||
JScrollPane scrollPane = new JScrollPane(table);
|
||||
|
||||
// Bouton pour prendre et finaliser des demandes
|
||||
finaliserDemandeButton = new JButton("Finaliser la demande");
|
||||
retourBenevoleButton = new JButton("Retour au menu bénévole");
|
||||
|
||||
// Panel des boutons
|
||||
JPanel buttonPanel = new JPanel();
|
||||
buttonPanel.add(finaliserDemandeButton);
|
||||
buttonPanel.add(retourBenevoleButton);
|
||||
|
||||
getContentPane().add(scrollPane, "Center");
|
||||
getContentPane().add(buttonPanel, "South");
|
||||
|
||||
// ActionListener pour finaliser une demande
|
||||
finaliserDemandeButton.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
finaliserDemande();
|
||||
}
|
||||
});
|
||||
|
||||
// Bouton de retour à la page d'accueil
|
||||
// ActionListener pour retourner à la page de connexion
|
||||
retourBenevoleButton.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
MenuBenevole menu = new MenuBenevole(utilisateurId);
|
||||
menu.setVisible(true);
|
||||
dispose();
|
||||
}
|
||||
});
|
||||
|
||||
// Charger les demandes acceptées
|
||||
loadDemandesEnCours();
|
||||
}
|
||||
|
||||
// Méthode pour charger les demandes acceptées
|
||||
private void loadDemandesEnCours() {
|
||||
try (Connection connection = DatabaseConnection.getConnection()) {
|
||||
String sql = "SELECT id, description, statut FROM demandes_aide WHERE statut = 'en cours'";
|
||||
PreparedStatement statement = connection.prepareStatement(sql);
|
||||
ResultSet resultSet = statement.executeQuery();
|
||||
|
||||
tableModel.setRowCount(0); // Réinitialiser le tableau
|
||||
while (resultSet.next()) {
|
||||
int id = resultSet.getInt("id");
|
||||
String description = resultSet.getString("description");
|
||||
String statut = resultSet.getString("statut");
|
||||
|
||||
tableModel.addRow(new Object[]{id, description, statut});
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
// Méthode pour finaliser une demande
|
||||
private void finaliserDemande() {
|
||||
int selectedRow = table.getSelectedRow();
|
||||
if (selectedRow == -1) {
|
||||
JOptionPane.showMessageDialog(this, "Veuillez sélectionner une demande à finaliser.");
|
||||
return;
|
||||
}
|
||||
|
||||
int demandeId = (int) tableModel.getValueAt(selectedRow, 0);
|
||||
|
||||
try (Connection connection = DatabaseConnection.getConnection()) {
|
||||
// Verifier si la demande est bien 'en cours' d'abord
|
||||
String checkSql = "SELECT statut FROM demandes_aide WHERE id = ? AND benevole_id = ?";
|
||||
PreparedStatement checkStatement = connection.prepareStatement(checkSql);
|
||||
checkStatement.setInt(1, demandeId);
|
||||
checkStatement.setInt(2, utilisateurId);
|
||||
ResultSet resultSet = checkStatement.executeQuery();
|
||||
|
||||
if (resultSet.next()) {
|
||||
String currentStatus = resultSet.getString("statut");
|
||||
Integer benevole_id = resultSet.getInt("benevole_id");
|
||||
|
||||
if ("en cours".equals(currentStatus) && benevole_id.equals(utilisateurId)) {
|
||||
// Mise à jour seulement si le statut est 'en cours'
|
||||
String updateSql = "UPDATE demandes_aide SET statut = 'finalisée' WHERE id = ?";
|
||||
PreparedStatement updateStatement = connection.prepareStatement(updateSql);
|
||||
updateStatement.setInt(1, demandeId);
|
||||
updateStatement.executeUpdate();
|
||||
|
||||
JOptionPane.showMessageDialog(this, "Demande finalisée avec succès.");
|
||||
} else {
|
||||
// Statut n'est pas 'en cours'
|
||||
JOptionPane.showMessageDialog(this, "Demande non finalisée car le statut n'est pas 'en cours'. (Statut actuel : " + currentStatus + ")");
|
||||
}
|
||||
loadDemandesEnCours(); // Recharger les demandes après tentative/réssuite de finalisation
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
JOptionPane.showMessageDialog(this, "Erreur lors de la finalisation de la demande.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -16,7 +16,7 @@ public class BenevoleDemandesPage extends JFrame {
|
|||
private DefaultTableModel tableModel;
|
||||
private JButton prendreDemandeButton;
|
||||
private JButton finaliserDemandeButton;
|
||||
private JButton retourButton;
|
||||
private JButton retourBenevoleButton;
|
||||
private int utilisateurId; // Ajout de l'ID du bénévole
|
||||
|
||||
public BenevoleDemandesPage(int utilisateurId) { // Ajout du paramètre utilisateurId
|
||||
|
@ -34,13 +34,13 @@ public class BenevoleDemandesPage extends JFrame {
|
|||
// Bouton pour prendre et finaliser des demandes
|
||||
prendreDemandeButton = new JButton("Prendre la demande");
|
||||
finaliserDemandeButton = new JButton("Finaliser la demande");
|
||||
retourButton = new JButton("Retour à l'accueil");
|
||||
retourBenevoleButton = new JButton("Retour au menu bénévole");
|
||||
|
||||
// Panel des boutons
|
||||
JPanel buttonPanel = new JPanel();
|
||||
buttonPanel.add(prendreDemandeButton);
|
||||
buttonPanel.add(finaliserDemandeButton);
|
||||
buttonPanel.add(retourButton);
|
||||
buttonPanel.add(retourBenevoleButton);
|
||||
|
||||
getContentPane().add(scrollPane, "Center");
|
||||
getContentPane().add(buttonPanel, "South");
|
||||
|
@ -63,12 +63,12 @@ public class BenevoleDemandesPage extends JFrame {
|
|||
|
||||
// Bouton de retour à la page d'accueil
|
||||
// ActionListener pour retourner à la page de connexion
|
||||
retourButton.addActionListener(new ActionListener() {
|
||||
retourBenevoleButton.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
LoginPage loginPage = new LoginPage();
|
||||
loginPage.setVisible(true);
|
||||
dispose(); // Fermer la page validateur
|
||||
MenuBenevole menu = new MenuBenevole(utilisateurId);
|
||||
menu.setVisible(true);
|
||||
dispose();
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -159,8 +159,5 @@ public class BenevoleDemandesPage extends JFrame {
|
|||
e.printStackTrace();
|
||||
JOptionPane.showMessageDialog(this, "Erreur lors de la finalisation de la demande.");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -75,8 +75,8 @@ public class LoginPage extends JFrame {
|
|||
|
||||
// Rediriger vers la bonne page selon le rôle
|
||||
if (role.equalsIgnoreCase("benevole")) {
|
||||
BenevoleDemandesPage benevoleDemandesPage = new BenevoleDemandesPage(utilisateurId);
|
||||
benevoleDemandesPage.setVisible(true);
|
||||
MenuBenevole menu = new MenuBenevole(utilisateurId);
|
||||
menu.setVisible(true);
|
||||
dispose();
|
||||
} else if (role.equalsIgnoreCase("personne_besoin")) {
|
||||
SoumettreDemande soumettreDemandePage = new SoumettreDemande(utilisateurId);
|
||||
|
|
Loading…
Reference in a new issue