diff --git a/WEB/Model/AdminModel.php b/WEB/Model/AdminModel.php index 7190f825..5c696a1a 100644 --- a/WEB/Model/AdminModel.php +++ b/WEB/Model/AdminModel.php @@ -16,7 +16,7 @@ class AdminModel public function addNewEnigmeSolo(string $nom,string $enonce,string $aide,string $rappel,string $exemple,string $test,string $solution, string $prompt) : Enigme { - $last = $this->enigme_gateway->findLastEnigma(); + $last = $this->enigme_gateway->findLastEnigmaByOrdre(); if ($last != null){ $ordre = $last[0]->getOrdre() + 1; } else { @@ -44,11 +44,32 @@ async function submit(){ return $tabEnigme[0]; } + private function majOrdreAfterDelete(int $ordre){ + $lesEnigmes = $this->enigme_gateway->findSoloEnigma(); + if ($lesEnigmes == null) { + return; + } + $lastOrdre = $this->enigme_gateway->findLastEnigmaByOrdre()[0]->getOrdre(); + if ($ordre > $lastOrdre) { + return; + } + foreach ($lesEnigmes as $enigme) { + if ($enigme->getOrdre() <= $ordre) { + continue; + } + $enigme->setOrdre($enigme->getOrdre()-1); + $this->enigme_gateway->update($enigme); + } + } + public function deleteEnigme(int $id) : void { - $nom = $this->enigme_gateway->findById($id)[0]->getNom(); + $enigme = $this->enigme_gateway->findById($id)[0]; + $nom = $enigme->getNom(); + $ordre = $enigme->getOrdre(); $this->enigme_gateway->delete($id); unlink('View/src/JS/'.$nom.'.js'); + $this->majOrdreAfterDelete($ordre); } public function getEnigmesSolo() : array