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

@@ -11,21 +11,36 @@
<route id="recipe.save" path="/admin/module/Recettes/save" methods="post">
<default key="_controller">Recettes\Controller\BackController::saveRecipe</default>
</route>
<route id="recipe.delete_product" path="/admin/module/Recettes/remove-product/{recipeId}/{pseId}/{contentId}">
<default key="_controller">Recettes\Controller\BackController::removeProduct</default>
<requirement key="recipeId">\d+</requirement>
<requirement key="pseId">\d+</requirement>
<requirement key="contentId">\d+</requirement>
</route>
<route id="recipe.search_product" path="/admin/module/Recettes/search-product">
<default key="_controller">Recettes\Controller\BackController::searchProduct</default>
</route>
<route id="recipe.add_product" path="/admin/module/Recettes/add-product/{contentId}">
<default key="_controller">Recettes\Controller\BackController::addProduct</default>
<requirement key="contentId">\d+</requirement>
</route>
<route id="recipe.add_step" path="/admin/module/Recettes/add-step" methods="post">
<default key="_controller">Recettes\Controller\BackController::addStep</default>
</route>
</routes>
<route id="recipe.remove_step" path="/admin/module/Recettes/remove-step/{recipeId}/{step}/{contentId}">
<default key="_controller">Recettes\Controller\BackController::removeStep</default>
<requirement key="step">\d+</requirement>
<requirement key="recipeId">\d+</requirement>
<requirement key="contentId">\d+</requirement>
</route>
<route id="recipe.update_position" path="/admin/module/Recettes/update-position">
<default key="_controller">Recettes\Controller\BackController::updatePosition</default>
</route>
</routes>

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"));
}
}

View File

@@ -9,10 +9,10 @@
<td>
{$STEP}
{if $LOOP_COUNT > 1}
<a href="{url path='/admin/module/Recettes/update-position?mode=up&amp;step=%step' step=$STEP}" class="u-position-up"><i class="glyphicon glyphicon-arrow-up"></i></a>
<a href="{url path='/admin/module/Recettes/update-position?mode=up&amp;step=%step&amp;recipe_id=%recipe_id&amp;content_id=%content_id' step=$STEP recipe_id=$recipe_id content_id=$content_id}" class="u-position-up" id="move-up"><i class="glyphicon glyphicon-arrow-up"></i></a>
{/if}
{if $LOOP_COUNT < $LOOP_TOTAL}
<a href="{url path='/admin/module/Recettes/update-position?mode=down&amp;step=%step' step=$STEP}" class="u-position-down"><i class="glyphicon glyphicon-arrow-down"></i></a>
<a href="{url path='/admin/module/Recettes/update-position?mode=down&amp;step=%step&amp;recipe_id=%recipe_id&amp;content_id=%content_id' step=$STEP recipe_id=$recipe_id content_id=$content_id}" class="u-position-down" id="move-down"><i class="glyphicon glyphicon-arrow-down"></i></a>
{/if}</td>
<td>{$DESCRIPTION|unescape:"html" nofilter}</td>
<td class="text-center">
@@ -21,10 +21,4 @@
</tr>
{/loop}
</tbody>
</table>
<a class="btn btn-default btn-primary"
title="{intl l='Add a new step' d='recettes'}"
data-target="#add-step-modal" data-toggle="modal">
<i class="glyphicon glyphicon-plus-sign"></i>
</a>
</table>

View File

@@ -24,6 +24,7 @@
{form_field form=$form field="content_id"}
<input type="hidden" name="{$name}" value="{$content_id}">
{/form_field}
<input type="hidden" class="form-control" name="recipe_id" value="{$recipe_id}">
<br>
<div class="col-md-8">
@@ -125,6 +126,11 @@
</div>
<br>
<label class="control-label">Etapes de la recette</label>
<div style="display: inline-block; margin-left: 50px;">
<a class="btn btn-default btn-primary" title="{intl l='Add a new step' d='recettes'}" data-target="#add-step-modal" data-toggle="modal">
<i class="glyphicon glyphicon-plus-sign"></i>
</a>
</div>
<div id="steps-block">
{include file="includes/steps.html" recipe_id="$recipe_id"}
</div>