diff --git a/app/controller/AdminController.php b/app/controller/AdminController.php
index 7693aea89d77f24501f27267f4f817f8321bcf4f..5f0517d0c140ce3ae939859aee592cf91a794646 100644
--- a/app/controller/AdminController.php
+++ b/app/controller/AdminController.php
@@ -28,6 +28,10 @@ class AdminController extends Controller {
         $this->view->display();
     }
 
+    public function displayModifPartieOK() {
+        $this->view->display();
+    }
+
     public function supprimeJeu() {
         $slug = $this->route["params"]["slug"];
         Admin::supprJeu($slug);
@@ -498,6 +502,33 @@ class AdminController extends Controller {
         $this->view->display();
     }
 
+    public function displayModifPartieStepe2()
+    {
+        session_start();
+        $id = $this->route["params"]["slug"];
+        if (!isset($_SESSION['jeu_select'])) {
+            header("Location:../../../partie");
+			die();
+		}
+        if (!isset($_SESSION['equipes'])) {
+            header("Location:../initModif");
+			die();
+		}
+        if(isset($_SESSION['errMsg'])){
+            $this->view->errMsg = $_SESSION['errMsg'];
+            unset($_SESSION['errMsg']);
+        }
+
+        $this->view->jeuactuel = $_SESSION['jeu_select'];
+        $this->view->equipes = $_SESSION['equipes'];
+        if($this->view->jeuactuel->type_scores == "scores") {
+            $this->view->scorePartie = Admin::getListeScorePartie($id);
+        } else {
+            $this->view->classement = Admin::getListeClassement($id);
+        }
+        $this->view->display();
+    }
+
     public function verifyModifPartieStep2()
     {
         $id = $this->route["params"]["slug"];
diff --git a/app/kernel/Router.php b/app/kernel/Router.php
index 7423e56422f8ecaf2c48e404bc73dee6b74f620b..81fe4913bfdbd06fdce07b363d6687ae658a1e6f 100644
--- a/app/kernel/Router.php
+++ b/app/kernel/Router.php
@@ -347,6 +347,12 @@ class Router
 				$result["params"]["slug"] = $parts[2];
 			}
 
+			else if($parts[0] == "admin" && count($parts) == 5 && $parts[1] == 'partie' && $parts[3] == 'modif' && $parts[4] == 'valid') {
+				$result["controller"] = 'Admin';
+				$result['action'] = "displayModifPartieOK";
+				$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 7729150682dce4d0c0346f0e5797bdb9871c5e32..c4e1ad520ee9b4202e522ef6baa18d21792933bc 100644
--- a/app/model/Admin.php
+++ b/app/model/Admin.php
@@ -191,7 +191,7 @@ class Admin extends Model {
 
     public static function getListeClassement2($id) {
         $db = Database::getInstance(); // on récupère la connexion à la BDD
-        $sql = "SELECT * FROM R_joueur_partie WHERE partie = :id ORDER BY classement"; // on définit la requête qu'on enverra (on considère que le slug contient jeu/nomDuJeu pour le classement par jeu. Donc il faudrait encore faire un explode() sur le slug.
+        $sql = "SELECT DISTINCT classement FROM R_joueur_partie WHERE partie = :id ORDER BY classement"; // on définit la requête qu'on enverra (on considère que le slug contient jeu/nomDuJeu pour le classement par jeu. Donc il faudrait encore faire un explode() sur le slug.
         $req = $db->prepare($sql); // on prépare la requête (c'est là que la mémthode __call() est utile dans la classe Database d'ailleurs)
         $req->execute(array(':id' => $id));
         $res = array();
@@ -223,7 +223,7 @@ class Admin extends Model {
             }
         }
         // applique la partie
-        if (($resp = self::appliquePartie($id, $joueurs, $scores, $jeu)) > 0){
+        if (($resp = Partie::modPartie($joueurs, $scores, $jeu, $id)) > 0){
             print $resp;
             die();
         }
@@ -234,116 +234,9 @@ 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']);
-            self::appliquePartie($ligne['id'],$joueurs, $scores, $jeu);
-        }
-
-    }
-
-
-    static function appliquePartie($id_partie, $joueurs, $scores, $jeu) {
-        $db = Database::getInstance();
-        $sql3 = "SELECT score FROM R_joueur_jeu WHERE joueur = :id_joueur AND jeu = :id_jeu;";
-        $sql4 = "UPDATE R_joueur_partie SET classement = :classement, score = :score, score_partie = :score_partie
-             WHERE joueur = :joueur AND partie = :partie;";
-        $sql5 = "UPDATE R_joueur_jeu SET score = :new_score WHERE joueur = :id_joueur AND jeu = :id_jeu;";
-        $sqlN = "INSERT INTO R_joueur_jeu (joueur, jeu, score) VALUES (:id_joueur, :id_jeu, :score);";
-        $stmt3 = $db->prepare($sql3);
-        $stmt4 = $db->prepare($sql4);
-        $stmt5 = $db->prepare($sql5);
-
-        $m = count($scores);
-
-        $old_score = array_fill(0, $m, 0);
-        $old_score_e = array();
-        foreach ($joueurs as $k => $joueur) {
-            // version avec équipes
-            if ($jeu->type == 'equipes') {
-                $old_score_e[$k] = array();
-                foreach ($joueur as $kj => $j) {
-                    if ($stmt3->execute(array(":id_joueur" => $j->slug, ":id_jeu" => $jeu->slug))) {
-                        if ($row = $stmt3->fetch()) {
-                            // Le joueur a déja joué à ce jeu
-                            $old_score_e[$k][$kj] = $row[0];
-                        } else {
-                            // ou le joueur n'a jamais joué à ce jeu, on je rajoute à la relation.
-                            $old_score_e[$k][$kj] = 1000;
-                            $stmtN = $db->prepare($sqlN);
-                            if ($stmtN->execute(array(":id_joueur" => $j->slug, ":id_jeu" => $jeu->slug, ":score" => 1000))) {
-
-                            } else
-                                return 2;
-                        }
-                    }
-                }
-                $old_score[$k] = array_sum($old_score_e[$k]) / count($old_score_e[$k]);
-            } else {
-                // récupération du score actuel de chaque joueur
-                if ($stmt3->execute(array(":id_joueur" => $joueur->slug, ":id_jeu" => $jeu->slug))) {
-                    if ($row = $stmt3->fetch()) {
-                        // Le joueur a déja joué à ce jeu
-                        $old_score[$k] = $row[0];
-                    } else {
-                        // ou le joueur n'a jamais joué à ce jeu, on je rajoute à la relation.
-                        $old_score[$k] = 1000;
-                        $stmtN = $db->prepare($sqlN);
-                        if ($stmtN->execute(array(":id_joueur" => $joueur->slug, ":id_jeu" => $jeu->slug, ":score" => 1000))) {
-
-                        } else
-                            return 2;
-                    }
-
-                }
-            }
-        }
-        // Calcul de la nouvelle différence de scores et du classement de chacun dans la partie
-        $diff_scores = ELO_scores($old_score, $scores, 32);
-        $classement = Partie::calcul_classement($diff_scores);
-        foreach ($joueurs as $k => $joueur) {
-            if ($jeu->type_scores == 'classement'){
-                $score = null;
-            }
-            else{
-                $score = $scores[$k];
-            }
-            if ($jeu->type == 'equipes') {
-                foreach ($joueur as $kj => $j) {
-                    // Insertion des infos de la partie (avec le score avant la partie et le classement interne à la partie
-                    // et le score de la partie) pour chaque joueur par équipe
-                    if ($stmt4->execute(array(":partie" => $id_partie,
-                        ":joueur" => $j->slug,
-                        ":classement" => $classement[$k], ":score" => $old_score_e[$k][$kj], ":score_partie" => $score))
-                    ) {
-                        $newS = $old_score_e[$k][$kj] + $diff_scores[$k];
-                        // On met à jour le score du joueur actuel dans sa relation avec le jeu
-                        if ($stmt5->execute(array(":new_score" => $newS,
-                            ":id_jeu" => $jeu->slug, ":id_joueur" => $j->slug))
-                        ) {
-                        } else
-                            return 4;
-                    } else
-                        return 3;
-                }
-            } else {
-                // Insertion des infos de la partie (avec le score avant la partie et le classement interne à la partie
-                //  et le score de la partie) pour chaque joueur
-
-                if ($stmt4->execute(array(":partie" => $id_partie,
-                    ":joueur" => $joueur->slug,
-                    ":classement" => $classement[$k], ":score" => $old_score[$k], ":score_partie" => $score))
-                ) {
-                    $newS = $old_score[$k] + $diff_scores[$k];
-                    // On met à jour le score du joueur actuel dans sa relation avec le jeu
-                    if ($stmt5->execute(array(":new_score" => $newS,
-                        ":id_jeu" => $jeu->slug, ":id_joueur" => $joueur->slug))
-                    ) {
-                    } else
-                        return 4;
-                } else
-                    return 3;
-            }
+            Partie::modPartie($joueur, $scores, $jeu, $ligne['id']);
         }
-        // met à jour le classement de tous les joueurs
-        return Partie::updateClassement($jeu);
+        return 0;
     }
 
 }
\ No newline at end of file
diff --git a/app/view/Admin/displayModifPartieOK.html b/app/view/Admin/displayModifPartieOK.html
new file mode 100644
index 0000000000000000000000000000000000000000..38ba0f326b8c375c056970f7947d688ce42abaee
--- /dev/null
+++ b/app/view/Admin/displayModifPartieOK.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>Modifiction 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"); ?>
diff --git a/app/view/Admin/displayModifPartieStepe2.html b/app/view/Admin/displayModifPartieStepe2.html
index ecf8b2a6d88efa9ee1c5fa265a6a67bd179f1686..6ea40056a57e7bea44b475fdf544c2ef71b781cd 100644
--- a/app/view/Admin/displayModifPartieStepe2.html
+++ b/app/view/Admin/displayModifPartieStepe2.html
@@ -19,23 +19,23 @@
                 <?php
                     foreach($e as $k => $j){ ?>
                 <li>
-                    <?php echo $j->pseudo; ?>
+                    <?php echo $j->pseudo;?>
                 </li>
                 <?php } ?>
             </ul>
-            <?php if($jeuactuel->type_scores == 'scores'){ ?>
-            Score obtenu : <input type="text" title="score" required="" name="scores[]"/>
+            <?php if($jeuactuel->type_scores == 'scores'){ print_r($this->scorePartie);?>
+                Score obtenu : <input type="text" title="score" required="" name="scores[]" value="<?php echo isset($this->scorePartie[$e[0]->slug]) ? $this->scorePartie[$e[0]->slug] : "" ; ?>"/>
             <?php } else { ?>
-            Classement obtenu : <select title="score" required="" name="scores[]">
+                Classement obtenu : <select title="score" required="" name="scores[]">
             <?php for ($j=1;$j<= count($this->equipes);$j++){ ?>
-            <option value="<?php echo count($this->equipes)-$j;?>"><?php echo $j;?></option>
+                <option value="<?php echo count($this->equipes)-$j;?>" <?php echo ((isset($this->classement[$e[0]->slug]) && $this->classement[$e[0]->slug] == $j)? "selected" : "") ?>><?php echo $j;?></option>
             <?php } ?>
         </select>
             <?php } ?>
             <?php } ?>
             <div class="submit">
                 <input type="reset" name="reset" value="Réinitialiser"/>
-                <input type="submit" name="submit" value="Demander l'ajout"/>
+                <input type="submit" name="submit" value="Modifier"/>
             </div>
         </form>
         <div class="submit">