Module Recettes : on avance encore...

This commit is contained in:
2021-04-28 20:37:58 +02:00
parent 9976d2ff76
commit 375e4e5d49
26 changed files with 657 additions and 99 deletions

View File

@@ -6,6 +6,11 @@ use Exception;
use Propel\Runtime\Exception\PropelException;
use Propel\Runtime\Propel;
use Recettes\Form\RecetteCreateForm;
use Recettes\Model\Recipe;
use Recettes\Model\RecipeProducts;
use Recettes\Model\RecipeQuery;
use Recettes\Model\RecipeSteps;
use Recettes\Model\RecipeStepsQuery;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Thelia\Controller\Admin\BaseAdminController;
use Thelia\Core\Event\Content\ContentUpdateEvent;
@@ -22,26 +27,18 @@ use Thelia\Tools\URL;
class MainController extends BaseAdminController
{
public function viewAction(Request $request)
public function saveRecipe(Request $request)
{
$id = $request->get("content_id");
}
public function saveRecipe(Request $request)
{
$productsList = [];
$con = Propel::getConnection();
$error = "";
$con = Propel::getConnection();
$nouvelleRecette = false;
$form = new RecetteCreateForm($request);
try {
$formValidate = $this->validateForm($form);
$data = $formValidate->getData();
$content_id = $data['content_id'];
$contentId = $data['content_id'];
$title = $data['title'];
$difficulty = $data['difficulty'];
$numberPeople = $data['people'];
@@ -49,19 +46,52 @@ class MainController extends BaseAdminController
$cookingTime = $data['cooking_time'];
$steps = $data['steps'];
if (null !== $title && null !== $preparationTime) {
$content = ContentI18nQuery::create()->filterByLocale('fr_FR')->findOneById($content_id);
if (null !== $title && null !== $contentId && null !== $difficulty && null !== $numberPeople && null !== $preparationTime) {
$encodedData = json_encode($data);
$content->setDescription($encodedData);
$content->save($con);
$recipe = RecipeQuery::create()->findOneByContentId($contentId);
if (null === $recipe)
{
$nouvelleRecette = true;
$recipe = new Recipe();
}
else
$recipeId = $recipe->getId();
$recipe->setContentId($contentId);
$recipe->setTitle($title);
$recipe->setDifficulty($difficulty);
$recipe->setPeople($numberPeople);
$recipe->setPreparationTime($preparationTime);
$recipe->setCookingTime($cookingTime);
$recipe->save($con);
$con->commit();
}
if (!$nouvelleRecette)
{
// On supprime les étapes pour les recréer par la suite.
$steps = RecipeStepsQuery::create()->findByRecipeId($recipeId);
$steps->delete($con);
$con->commit();
}
/*
foreach ($steps as $step) {
$recipeSteps = new RecipeSteps();
$recipeSteps->setRecipeId($recipeId);
$recipeSteps->setStep($step['id']);
$recipeSteps->setDescription($step['description']);
$recipeSteps->save();
$con->commit();
}
*/
// A rajouter : les produits et les étapes
return new RedirectResponse(URL::getInstance()->absoluteUrl("/admin/content/update/" . $contentId));
}
} catch (\Exception $e) {
$error = $e->getMessage();
}
return new RedirectResponse(URL::getInstance()->absoluteUrl("/admin/content/update/" . $content_id));
return new RedirectResponse(URL::getInstance()->absoluteUrl("/admin/content"));
}
}