Ca a l'air OK pour la partie backOffice du module Recettes

This commit is contained in:
2021-05-17 17:33:47 +02:00
parent 117c916707
commit 454a3b079e
6 changed files with 107 additions and 26 deletions

View File

@@ -211,7 +211,83 @@ class BackController extends BaseAdminController
} catch (\Exception $e) {
$error = $e->getMessage();
}
}
public function removeStep($step, $recipeId, $contentId)
{
$con = Propel::getConnection();
$foundStep = RecipeStepsQuery::create()
->filterByRecipeId($recipeId)
->findOneByStep($step);
$nextSteps = RecipeStepsQuery::create()
->filterByRecipeId($recipeId)
->filterByStep($step, Criteria::GREATER_THAN)
->orderByStep()
->find($con);
if ($foundStep) {
$foundStep->delete();
foreach ($nextSteps as $next) {
$nouveauNumero = $next->getStep()-1;
(new RecipeSteps())
->setRecipeId($recipeId)
->setStep($nouveauNumero)
->setDescription($next->getDescription())
->save();
$next->delete();
}
}
return new RedirectResponse(URL::getInstance()->absoluteUrl("/admin/content/update/" . $contentId . "?current_tab=recipe"));
}
public function updatePosition()
{
$step = $this->getRequest()->get('step');
$mode = $this->getRequest()->get('mode');
if ($mode === "up") $replacedStep = $step - 1;
else $replacedStep = $step + 1;
$recipeId = $this->getRequest()->get('recipe_id');
$contentId = $this->getRequest()->get('content_id');
$current = RecipeStepsQuery::create()
->filterByRecipeId($recipeId)
->findOneByStep($step);
$replaced = RecipeStepsQuery::create()
->filterByRecipeId($recipeId)
->findOneByStep($replacedStep);
// On supprime les 2 étapes (celle que l'on déplace et celle que l'on remplace) pour les recréer par la suite.
RecipeStepsQuery::create()
->filterByRecipeId($recipeId)
->findOneByStep($step)
->delete();
RecipeStepsQuery::create()
->filterByRecipeId($recipeId)
->findOneByStep($replacedStep)
->delete();
(new RecipeSteps())
->setRecipeId($recipeId)
->setStep($step)
->setDescription($replaced->getDescription())
->save();
(new RecipeSteps())
->setRecipeId($recipeId)
->setStep($replacedStep)
->setDescription($current->getDescription())
->save();
return new RedirectResponse(URL::getInstance()->absoluteUrl("/admin/content/update/" . $contentId . "?current_tab=recipe"));
}
}