diff --git a/app/controller/AdminController.php b/app/controller/AdminController.php
index 5f0517d0c140ce3ae939859aee592cf91a794646..006d0120e94577cad9f649cf155fc05d2a85342c 100644
--- a/app/controller/AdminController.php
+++ b/app/controller/AdminController.php
@@ -631,4 +631,15 @@ class AdminController extends Controller {
             }
         }
     }
+    
+    public function supprPartie() {
+        $id = $this->route["params"]["slug"];
+        Admin::supprPartie($id);
+        header("Location:supprime/ok");
+    }
+    
+    public function displaysupprPartieOK() {
+        $this->view->display();
+    }
+
 }
diff --git a/app/kernel/Router.php b/app/kernel/Router.php
index 81fe4913bfdbd06fdce07b363d6687ae658a1e6f..c213c26666ea9491b392ccb1692f492513514517 100644
--- a/app/kernel/Router.php
+++ b/app/kernel/Router.php
@@ -353,6 +353,18 @@ class Router
 				$result["params"]["slug"] = $parts[2];
 			}
 
+			else if($parts[0] == "admin" && count($parts) == 4 && $parts[1] == 'partie' && $parts[3] == 'supprime') {
+				$result["controller"] = 'Admin';
+				$result['action'] = "supprPartie";
+				$result["params"]["slug"] = $parts[2];
+			}
+
+			else if($parts[0] == "admin" && count($parts) == 5 && $parts[1] == 'partie' && $parts[3] == 'supprime' && $parts[4] == 'ok') {
+				$result["controller"] = 'Admin';
+				$result['action'] = "displaysupprPartieOK";
+				$result["params"]["slug"] = $parts[2];
+			}
+
             else if ($parts[0] == "add_partie" && count($parts) == 2 && $parts[1] == "addjoueurs1") {
                 $result["controller"] = "Partie";
                 $result["action"] = "addjoueurs1";
diff --git a/app/model/Admin.php b/app/model/Admin.php
index c4e1ad520ee9b4202e522ef6baa18d21792933bc..b0f2dd27cd683978b7cd2f5a674d7ad2572f2c5f 100644
--- a/app/model/Admin.php
+++ b/app/model/Admin.php
@@ -234,9 +234,48 @@ class Admin extends Model {
         while ($ligne = $stmt2->fetch(PDO::FETCH_ASSOC)) {
             $joueurs = $jeu->type == 'equipes' ? Admin::getEquipes($ligne['id']) : Admin::getListeJoueur($ligne['id']);
             $scores = $jeu->type_scores == 'scores' ? Admin::getListeScorePartie2($ligne['id']) : Admin::getListeClassement2($ligne['id']);
-            Partie::modPartie($joueur, $scores, $jeu, $ligne['id']);
+            Partie::modPartie($joueurs, $scores, $jeu, $ligne['id']);
         }
         return 0;
     }
 
+    public static function supprPartie($id) {
+        $db = Database::getInstance();
+        $sql5 = "UPDATE R_joueur_jeu SET score = :new_score WHERE joueur = :id_joueur AND jeu = :id_jeu;";
+        $stmt5 = $db->prepare($sql5);
+        $partieSuppr = Partie::getFromId($id);
+        // recherche des joueurs ayant fais une partie apres celle-ci (celle-ci incluse)
+        $sql1 = "SELECT * FROM R_joueur_partie JOIN R_partie ON R_joueur_partie.partie = R_partie.id WHERE date >= date(:date) AND jeu =:jeu ORDER BY date";
+        $stmt1 = $db->prepare($sql1);
+        $stmt1->execute(array(':date' => $partieSuppr->date, ":jeu" => $partieSuppr->jeu));
+        // pour tout les joueurs remettre les scrores comme-ci aucune partie après celle-ci a été jouée
+        $joueurDejaTraite = array();
+        while ($joueur = $stmt1->fetch(PDO::FETCH_ASSOC)) {
+            if (!in_array($joueur['joueur'], $joueurDejaTraite)) {
+                $joueurDejaTraite[] = $joueur['joueur'];
+                $stmt5->execute(array(':new_score' => $joueur['score'],
+                ':id_joueur' => $joueur['joueur'],
+                    ':id_jeu' => $joueur['jeu']));
+            }
+        }
+
+        $sql = "DELETE FROM R_joueur_partie WHERE partie = :id";
+        $req = $db->prepare($sql);
+        $req->execute(array(':id' => $id));
+
+        $sql = "DELETE FROM R_partie WHERE id = :id";
+        $req = $db->prepare($sql);
+        $req->execute(array(':id' => $id));
+
+        $jeu = Jeu::getFromSlug($partieSuppr->jeu);
+        $sql2 = "SELECT * FROM R_partie WHERE date > date(:date) AND jeu =:jeu ORDER BY date";
+        $stmt2 = $db->prepare($sql2);
+        $stmt2->execute(array(':date' => $partieSuppr->date, ":jeu" => $partieSuppr->jeu));
+        while ($ligne = $stmt2->fetch(PDO::FETCH_ASSOC)) {
+            $joueurs = $jeu->type == 'equipes' ? Admin::getEquipes($ligne['id']) : Admin::getListeJoueur($ligne['id']);
+            $scores = $jeu->type_scores == 'scores' ? Admin::getListeScorePartie2($ligne['id']) : Admin::getListeClassement2($ligne['id']);
+            Partie::modPartie($joueurs, $scores, $jeu, $ligne['id']);
+        }
+    }
+
 }
\ No newline at end of file
diff --git a/app/view/Admin/displayListPartie.html b/app/view/Admin/displayListPartie.html
index 201744481a0d71a414d3ad2c62ad380e13f192e8..b3c0d1c650a5b39c764a51b48447663be986d50a 100644
--- a/app/view/Admin/displayListPartie.html
+++ b/app/view/Admin/displayListPartie.html
@@ -21,6 +21,7 @@ include(ROOT."/app/view/Includes/header.include.html");
             <td><a href=\"".BASE_URL."/jeu/".$ligne['slug']."\">".$ligne['nom']."</a></td>
             <td><a href=\"".BASE_URL."/admin/partie/".$ligne['slug']."\">".$ligne['date']."</a></td>
             <td><a href=\"partie/".$ligne['id']."/modifinit\"><img src=\"".BASE_URL."/images/modif.svg\" alt=\"Modifier\"//></a></td>
+            <td><a href=\"partie/".$ligne['id']."/supprime\"><img src=\"".BASE_URL."/images/cancel.svg\" /></a></td>
         </tr>
         ";
         }
diff --git a/app/view/Admin/displaysupprPartieOK.html b/app/view/Admin/displaysupprPartieOK.html
new file mode 100644
index 0000000000000000000000000000000000000000..fb721522c37496cced358d77ad7ee9a0ce26b1a6
--- /dev/null
+++ b/app/view/Admin/displaysupprPartieOK.html
@@ -0,0 +1,17 @@
+<?php
+	$page_title = "Page d'administration";
+include(ROOT."/app/view/Includes/header.include.html");
+?>
+
+<?php if(isset($_SESSION['user']) && Admin::estAdmin($_SESSION['user']->slug)) { ?>
+
+<article class="msg-valide"><h2>Suppression réussie !</h2></article>
+
+
+<?php } else { ?>
+
+<article class="msg-erreur">Vous n'êtes pas connecté comme administrateur</article>
+
+<?php } ?>
+
+<?php include(ROOT."/app/view/Includes/footer.include.html"); ?>