Guillaume Bourgeois 2 лет назад
Родитель
Сommit
352c246674
3 измененных файлов: 61 добавлений и 47 удалений
  1. +5
    -2
      Builder/User/VisitorBuilder.php
  2. +54
    -43
      Controller/Product/FavoriteController.php
  3. +2
    -2
      Resources/translations/admin.fr.yaml

+ 5
- 2
Builder/User/VisitorBuilder.php Просмотреть файл

@@ -45,8 +45,11 @@ class VisitorBuilder

$visitor->setLastAccess(new \DateTime());

$this->entityManager->update($visitor);
$this->entityManager->flush();
// Erreur : The EntityManager is closed. #713
if($this->entityManager->isOpen()) {
$this->entityManager->update($visitor);
$this->entityManager->flush();
}
}

// setCookieVisitor

+ 54
- 43
Controller/Product/FavoriteController.php Просмотреть файл

@@ -14,26 +14,31 @@ class FavoriteController extends AbstractController
*/
public function toggle(Request $request)
{
$user = $this->_getUser();
$user = $this->getUserCurrent();
$productFamily = $this->_getProductFamily($request);

if ($user->getFavoriteProductFamilies()->contains($productFamily)) {
$user->removeFavoriteProductFamily($productFamily);
$isFavorite = false;
$message = 'Le produit a bien été supprimé de vos favoris';
} else {
$user->addFavoriteProductFamily($productFamily);
$isFavorite = true;
$message = 'Le produit a bien été ajouté à vos favoris';
if($user && $productFamily) {
if ($user->getFavoriteProductFamilies()->contains($productFamily)) {
$user->removeFavoriteProductFamily($productFamily);
$isFavorite = false;
$message = 'Le produit a bien été supprimé de vos favoris';
} else {
$user->addFavoriteProductFamily($productFamily);
$isFavorite = true;
$message = 'Le produit a bien été ajouté à vos favoris';
}

$this->_saveUser($user);

return new JsonResponse([
'return' => 'success',
'is_favorite' => $isFavorite,
'message' => $message
]);
}
else {
return $this->_errorResponse();
}

$this->_saveUser($user);

return new JsonResponse([
'return' => 'success',
'is_favorite' => $isFavorite,
'message' => $message
]);
}

/**
@@ -41,16 +46,21 @@ class FavoriteController extends AbstractController
*/
public function add(Request $request)
{
$user = $this->_getUser();
$user = $this->getUserCurrent();
$productFamily = $this->_getProductFamily($request);

$user->addFavoriteProductFamily($productFamily);
$this->_saveUser($user);
if($user && $productFamily) {
$user->addFavoriteProductFamily($productFamily);
$this->_saveUser($user);

return new JsonResponse([
'return' => 'success',
'message' => 'Le produit a bien été ajouté à vos favoris'
]);
return new JsonResponse([
'return' => 'success',
'message' => 'Le produit a bien été ajouté à vos favoris'
]);
}
else {
return $this->_errorResponse();
}
}

/**
@@ -58,32 +68,27 @@ class FavoriteController extends AbstractController
*/
public function delete(Request $request)
{
$user = $this->_getUser();
$user = $this->getUserCurrent();
$productFamily = $this->_getProductFamily($request);

$user->removeFavoriteProductFamily($productFamily);
$this->_saveUser($user);

return new JsonResponse([
'return' => 'success',
'message' => 'Le produit a bien été supprimé de vos favoris'
]);
}
if($user && $productFamily) {
$user->removeFavoriteProductFamily($productFamily);
$this->_saveUser($user);

private function _getUser()
{
$user = $this->getUserCurrent();
if (!$user) {
throw new \ErrorException('Vous devez être connecté pour gérer vos favoris');
return new JsonResponse([
'return' => 'success',
'message' => 'Le produit a bien été supprimé de vos favoris'
]);
}
else {
return $this->_errorResponse();
}

return $user;
}

private function _saveUser($user)
{
$entityManager = $this->getEntityManager();
$entityManager->persist($user);
$entityManager->update($user);
$entityManager->flush();
}

@@ -97,8 +102,14 @@ class FavoriteController extends AbstractController

if (isset($productFamily) && $productFamily) {
return $productFamily;
} else {
throw new \ErrorException('Ce produit est introuvable');
}
}

private function _errorResponse()
{
return new JsonResponse([
'return' => 'error',
'message' => 'Une erreur est survenue.'
]);
}
}

+ 2
- 2
Resources/translations/admin.fr.yaml Просмотреть файл

@@ -44,8 +44,8 @@ setting_definition:
settings:
orderReferencePrefix: Préfixe référence commandes
orderState: Statut d'ouverture des commandes
orderClosedStart: Période commandes fermées (début)
orderClosedEnd: Période commandes fermées (fin)
orderClosedStart: "Période commandes fermées (début : définir comme date le lendemain du jour de fermeture de la section)"
orderClosedEnd: "Période commandes fermées (fin : définir comme date la veille du jour de ré-ouverture de la section)"
orderMaximumPerCycle: Nombre maximum de commande par cycle de vente
colorPrimary: Couleur primaire
colorSecondary: Couleur secondaire

Загрузка…
Отмена
Сохранить