Commit f8b8df4f authored by Mat's avatar Mat

today, isole une fonction commune pour les 2 pages today et todayOne

parent fe9740f7
......@@ -39,30 +39,12 @@ class MembreController extends MasterController
{
$token = $request->query->get('token');
$tokenInside = $lettreToken->decodePotageUserToken($token);
$offreOne = $this->getDoctrine()->getManager()
->getRepository('PotageBundle:Offre')
->findOneByReference($tokenInside['offre_ref']);
$lettres = $offreOne->getLettres();
foreach ($lettres as $lettre)
{
/**
* @var Groupe $groupeOne
*/
$groupeOne = $lettre->getGroupe();
}
$legumesSorted = $this->getOffreLegumesSorted($offreOne);
} else {
$currentOffre = $this->getCurrentOffre($tokenInside['offre_ref']);
}
else {
$token = null;
$tokenInside =null;
$offreOne = null;
$legumesSorted = null;
$groupeOne = null;
$currentOffre = null;
}
return $this->render('@Potage/Membre/today.html.twig', array(
......@@ -70,9 +52,9 @@ class MembreController extends MasterController
'groupes' => $groupes,
'token' => $token,
'tokenInside' => $tokenInside,
'offreOne' => $offreOne,
'legumesSorted' => $legumesSorted,
'groupeOne' => $groupeOne,
'offreOne' => $currentOffre['offreOne'],
'legumesSorted' => $currentOffre['legumesSorted'],
'groupeOne' => $currentOffre['groupeOne'],
));
}
......@@ -82,7 +64,7 @@ class MembreController extends MasterController
/**
* Lorsqu'on pointe explicitement la référence de l'offre
*
* @param $offre_ref
* @param string $offre_ref
* @return \Symfony\Component\HttpFoundation\Response
* @throws \Doctrine\ORM\NonUniqueResultException
*/
......@@ -93,23 +75,10 @@ class MembreController extends MasterController
if ($user !== null)
{
$groupes = $this->getGroupesDepotLettresAndOffreLegumes($user);
$offreOne = $this->getDoctrine()->getManager()
->getRepository('PotageBundle:Offre')
->findOneByReference($offre_ref);
$lettres = $offreOne->getLettres();
foreach ($lettres as $lettre)
{
/**
* @var Groupe $groupeOne
*/
$groupeOne = $lettre->getGroupe();
}
$legumesSorted = $this->getOffreLegumesSorted($offreOne);
$currentOffre = $this->getCurrentOffre($offre_ref);
if ($offreOne === null) {
if ($currentOffre['offreOne'] === null) {
return $this->redirectToRoute('potage_today');
}
......@@ -118,9 +87,9 @@ class MembreController extends MasterController
'groupes' => $groupes,
'token' => null,
'tokenInside' => null,
'offreOne' => $offreOne,
'legumesSorted' => $legumesSorted,
'groupeOne' => $groupeOne,
'offreOne' => $currentOffre['offreOne'],
'legumesSorted' => $currentOffre['legumesSorted'],
'groupeOne' => $currentOffre['groupeOne'],
));
}
......@@ -193,4 +162,45 @@ class MembreController extends MasterController
return $legumesSorted;
}
/**
* Récupère l'offre courante, le groupe indirectement associé, l'ordre des items
*
* @param $reference
* @return array
* @throws \Doctrine\ORM\NonUniqueResultException
*/
private function getCurrentOffre($reference)
{
/**
* @var Offre $offreOne
*/
$offreOne = $this->getDoctrine()->getManager()
->getRepository('PotageBundle:Offre')
->findOneByReference($reference);
$groupeOne = array();
$lettres = $offreOne->getLettres();
foreach ($lettres as $lettre)
{
/**
* TODO cas particulier: ça va coincer si une même offre est attachée à plusieurs lettres !
* dans ce cas il y a plusieurs groupes, mais on ne veut afficher que celui
* qui concerne l'utilisateur.
* (-> passer $groupes dans la fonction, condition: être dans $groupes pour ajouter au tableau $groupeOne, et si $token, on n'affiche qu'un )
*
* Temporairement, on ne retourne que le premier groupe du tableau !!
*/
$groupeOne[] = $lettre->getGroupe();
}
$legumesSorted = $this->getOffreLegumesSorted($offreOne);
return [
'offreOne' => $offreOne,
'legumesSorted' =>$legumesSorted,
'groupeOne' => $groupeOne[0],
];
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment