diff --git a/local/modules/Recettes/Config/routing.xml b/local/modules/Recettes/Config/routing.xml
index 5a7367d3..9ffc011e 100644
--- a/local/modules/Recettes/Config/routing.xml
+++ b/local/modules/Recettes/Config/routing.xml
@@ -23,9 +23,10 @@
Recettes\Controller\BackController::searchProduct
-
+
Recettes\Controller\BackController::addProduct
\d+
+ \d+
diff --git a/local/modules/Recettes/Controller/BackController.php b/local/modules/Recettes/Controller/BackController.php
index 930987b9..b7f078e5 100755
--- a/local/modules/Recettes/Controller/BackController.php
+++ b/local/modules/Recettes/Controller/BackController.php
@@ -165,11 +165,10 @@ class BackController extends BaseAdminController
}
- public function addProduct($contentId)
+ public function addProduct($contentId, $recipeId)
{
$pseId = (int) $this->getRequest()->get('pse_id');
$quantityNeeded = (string) $this->getRequest()->get('quantity_needed');
- $recipeId = (int) $this->getRequest()->get('recipe_id');
$quantityProposed = (int) $this->getRequest()->get('quantity_proposed');
(new RecipeProducts())
@@ -179,7 +178,7 @@ class BackController extends BaseAdminController
->setNbOfProducts($quantityProposed)
->save();
- return $this->render('includes/related-products', [ 'content_id' => $contentId ]);
+ return $this->render('includes/related-products', [ 'recipe_id' => $recipeId, 'content_id' => $contentId ]);
}
diff --git a/local/modules/Recettes/EventListener/ContentListener.php b/local/modules/Recettes/EventListener/ContentListener.php
index c3fea7b5..279d9739 100644
--- a/local/modules/Recettes/EventListener/ContentListener.php
+++ b/local/modules/Recettes/EventListener/ContentListener.php
@@ -2,12 +2,14 @@
namespace Recettes\EventListener;
+use Propel\Runtime\Exception\PropelException;
use Propel\Runtime\Propel;
use Recettes\Model\RecipeProductsQuery;
use Recettes\Model\RecipeQuery;
use Recettes\Model\RecipeStepsQuery;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Thelia\Action\BaseAction;
+use Thelia\Log\Tlog;
use Thelia\Model\Event\ContentEvent;
use Thelia\Core\HttpFoundation\Request;
@@ -36,26 +38,35 @@ class ContentListener extends BaseAction implements EventSubscriberInterface
$con = Propel::getConnection();
$contentId = $this->request->request->get('content_id');
- $recipeId = RecipeQuery::create()
- ->findOneByContentId($contentId)
- ->getId();
+ try {
+ $recipe = RecipeQuery::create()
+ ->findOneByContentId($contentId);
+ if ($recipe)
+ $recipeId = $recipe->getId();
+ else
+ return;
- if ($recipeId)
- {
- RecipeStepsQuery::create()
- ->filterByRecipeId($recipeId)
- ->find($con)
- ->delete();
+ if ($recipeId)
+ {
+ RecipeStepsQuery::create()
+ ->filterByRecipeId($recipeId)
+ ->find($con)
+ ->delete();
- RecipeProductsQuery::create()
- ->filterByRecipeId($recipeId)
- ->find($con)
- ->delete();
+ RecipeProductsQuery::create()
+ ->filterByRecipeId($recipeId)
+ ->find($con)
+ ->delete();
- RecipeQuery::create()
- ->findOneByContentId($contentId)
- ->delete();
+ RecipeQuery::create()
+ ->findOneByContentId($contentId)
+ ->delete();
+ }
}
+ catch (Exception $e) {
+ Tlog::getInstance()->error($e->getMessage());
+ }
+
}
}
diff --git a/local/modules/Recettes/Form/RecetteCreateForm.php b/local/modules/Recettes/Form/RecetteCreateForm.php
index cce60131..f1df73f5 100644
--- a/local/modules/Recettes/Form/RecetteCreateForm.php
+++ b/local/modules/Recettes/Form/RecetteCreateForm.php
@@ -38,7 +38,16 @@ class RecetteCreateForm extends BaseForm
"content_id",
"integer",
[
- "constraints" => [ new NotBlank() ]
+ "constraints" => [ new NotBlank() ],
+ "required" => true
+ ]
+ )
+ ->add(
+ "recipe_id",
+ "integer",
+ [
+ "constraints" => [ new NotBlank() ],
+ "required" => true
]
)
->add(
diff --git a/local/modules/Recettes/Loop/ProductsLoop.php b/local/modules/Recettes/Loop/ProductsLoop.php
index 91ab3e0a..e07cacc8 100644
--- a/local/modules/Recettes/Loop/ProductsLoop.php
+++ b/local/modules/Recettes/Loop/ProductsLoop.php
@@ -22,7 +22,7 @@ use Thelia\Model\ProductSaleElementsQuery;
*/
class ProductsLoop extends BaseLoop implements PropelSearchLoopInterface
{
- public $countable = false;
+ public $countable = true;
public $timestampable = false;
public $versionable = false;
@@ -83,9 +83,10 @@ class ProductsLoop extends BaseLoop implements PropelSearchLoopInterface
{
$products = RecipeProductsQuery::create();
- if (null != $recipeId = $this->getRecipeId()) {
+ if (null != $recipeId = $this->getRecipeId())
$products->filterByRecipeId($recipeId);
- }
+ else
+ return null;
return $products;
}
diff --git a/local/modules/Recettes/Loop/StepsLoop.php b/local/modules/Recettes/Loop/StepsLoop.php
index c60047e0..19046631 100644
--- a/local/modules/Recettes/Loop/StepsLoop.php
+++ b/local/modules/Recettes/Loop/StepsLoop.php
@@ -57,9 +57,11 @@ class StepsLoop extends BaseLoop implements PropelSearchLoopInterface
{
$steps = RecipeStepsQuery::create();
- if (null != $id = $this->getRecipeId()) {
+ if (null != $id = $this->getRecipeId())
$steps->filterByRecipeId($id);
- }
+ else
+ return null;
+
$steps->orderByStep();
return $steps;
diff --git a/local/modules/Recettes/templates/backOffice/default/includes/related-products.html b/local/modules/Recettes/templates/backOffice/default/includes/related-products.html
index f6eb006b..664e8ba0 100644
--- a/local/modules/Recettes/templates/backOffice/default/includes/related-products.html
+++ b/local/modules/Recettes/templates/backOffice/default/includes/related-products.html
@@ -5,19 +5,22 @@
| {intl l="Quantity proposed" d="recettes"} |
- {loop type="recipe_products" name="products-loop" recipe_id=$recipe_id}
- {loop type="product" visible="*" name="related-product" id=$PRODUCT_ID}
-
- | {$TITLE} |
- {$QUANTITY_NEEDED} |
- {$QUANTITY_PROPOSED} |
- {$UNITY} |
-
-
- |
-
+
+ {ifloop rel="products-loop"}
+ {loop type="recipe_products" name="products-loop" recipe_id=$recipe_id}
+ {loop type="product" visible="*" name="related-product" id=$PRODUCT_ID}
+
+ | {$TITLE} |
+ {$QUANTITY_NEEDED} |
+ {$QUANTITY_PROPOSED} |
+ {$UNITY} |
+
+
+ |
+
+ {/loop}
{/loop}
- {/loop}
+ {/ifloop}
{elseloop rel="products-loop"}
|
@@ -51,7 +54,7 @@
|
-
+
|
diff --git a/local/modules/Recettes/templates/backOffice/default/recette-tab.html b/local/modules/Recettes/templates/backOffice/default/recette-tab.html
index 0a31a4f2..0ca2d3d1 100644
--- a/local/modules/Recettes/templates/backOffice/default/recette-tab.html
+++ b/local/modules/Recettes/templates/backOffice/default/recette-tab.html
@@ -24,7 +24,9 @@
{form_field form=$form field="content_id"}
{/form_field}
-
+ {form_field form=$form field="recipe_id"}
+
+ {/form_field}