diff --git a/controllers/front/PostComment.php b/controllers/front/PostComment.php index 34d6e4be..bcf409ef 100644 --- a/controllers/front/PostComment.php +++ b/controllers/front/PostComment.php @@ -1,4 +1,5 @@ context->controller->getContainer()->get('product_comment_repository'); @@ -141,19 +143,22 @@ private function addCommentGrades(ProductComment $productComment, array $criteri $criterionRepository = $entityManager->getRepository(ProductCommentCriterion::class); $averageGrade = 0; - foreach ($criterions as $criterionId => $grade) { - $criterion = $criterionRepository->findOneBy(['id' => $criterionId]); - $criterionGrade = new ProductCommentGrade( - $productComment, - $criterion, - $grade - ); + if (!empty($criterions)) { + foreach ($criterions as $criterionId => $grade) { + $criterion = $criterionRepository->findOneBy(['id' => $criterionId]); + $criterionGrade = new ProductCommentGrade( + $productComment, + $criterion, + $grade + ); + + $entityManager->persist($criterionGrade); + $averageGrade += $grade; + } - $entityManager->persist($criterionGrade); - $averageGrade += $grade; + $averageGrade /= count($criterions); } - $averageGrade /= count($criterions); $productComment->setGrade($averageGrade); } @@ -199,7 +204,6 @@ private function validateCriterions(array $criterions) /** @var EntityManagerInterface $entityManager */ $entityManager = $this->container->get('doctrine.orm.entity_manager'); $criterionRepository = $entityManager->getRepository(ProductCommentCriterion::class); - foreach ($criterions as $criterionId => $grade) { // @todo manage validation for criterion restricted on categories or products $criterion = $criterionRepository->findOneBy(['id' => $criterionId]); diff --git a/views/js/post-comment.js b/views/js/post-comment.js index cf593b54..838f8385 100644 --- a/views/js/post-comment.js +++ b/views/js/post-comment.js @@ -128,12 +128,15 @@ jQuery(document).ready(function () { $(fieldSelector).removeClass('error'); $(fieldSelector).addClass('valid'); } - - if (!ratingChosen) { - criterionsInfo.show(); - isValid = false; - } else { - criterionsInfo.hide(); + const fieldCriterion = $('#criterions_list').length; + + if (fieldCriterion) { + if (!ratingChosen) { + criterionsInfo.show(); + isValid = false; + } else { + criterionsInfo.hide(); + } } });