Basket refactor

This commit is contained in:
Romain Neutron
2011-12-27 19:16:55 +01:00
parent 1257da5d70
commit 5b0f93de05
3 changed files with 112 additions and 88 deletions

View File

@@ -1508,6 +1508,8 @@ function pushIt($usr, $newBask, $parmLST, $users, $mail_content, $lng, $accuse)
$reading_confirm_to = $me->get_email();
}
$em = $Core->getEntityManager();
foreach ($users as $oneuser => $rights)
{
$new_basket = null;
@@ -1517,20 +1519,40 @@ function pushIt($usr, $newBask, $parmLST, $users, $mail_content, $lng, $accuse)
$user = User_Adapter::getInstance($oneuser, $appbox);
$pusher = User_Adapter::getInstance($usr, $appbox);
$new_basket = basket_adapter::create($appbox, $newBask, $user, '', $pusher);
$new_basket->set_unread();
$new_basket = new \Entities\Basket();
$new_basket->setName($newBask);
$new_basket->setIsRead(false);
$new_basket->setPusher($pusher);
$new_basket->setOwner($user);
$em->persist($new_basket);
$nbchu++;
$new_basket->push_list($parmLST, false);
foreach($parmLST as $basrec)
{
$basrec = explode('_', $basrec);
$record = new record_adapter($basrec[0], $basrec[1]);
$BasketElement = new Entities\BasketElement();
$BasketElement->setRecord($record);
$BasketElement->setBasket($new_basket);
$em->persist($BasketElement);
$new_basket->addBasketElement($BasketElement);
}
$em->flush();
$finalUsers[] = $user->get_id();
$canSendHD = sendHdOk($usr, $parmLST);
foreach ($new_basket->get_elements() as $element)
foreach ($new_basket->getElements() as $element)
{
$record = $element->get_record();
$record = $element->getRecord();
if ($rights['canHD'] && in_array($record->get_base_id(), $canSendHD))
$user->ACL()->grant_hd_on($record, $me, 'push');
else
@@ -1558,7 +1580,7 @@ function pushIt($usr, $newBask, $parmLST, $users, $mail_content, $lng, $accuse)
, 'url' => $url
, 'accuse' => $reading_confirm_to
, 'message' => $mail_content
, 'ssel_id' => $new_basket->get_ssel_id()
, 'ssel_id' => $new_basket->getId()
);
@@ -1607,10 +1629,16 @@ function pushValidation($usr, $ssel_id, $listUsrs, $time, $mail_content, $accuse
$expires = null;
}
$em = $Core->getEntityManager();
$repository = $em->getRepository('\Entities\Basket');
$basket = $repository->findUserBasket($ssel_id, $Core->getAuthenticatedUser());
$basket = basket_adapter::getInstance($appbox, $ssel_id, $session->get_usr_id());
$basket->set_unread();
$basket->setIsRead(false);
$em->merge($basket);
$em->flush();
foreach ($listUsrs as $oneuser => $rights)
{

View File

@@ -124,14 +124,6 @@ switch ($action)
$output = query_phrasea::mail_request($parm['user'], $parm['contrib'], $parm['message'], $parm['query']);
break;
case 'SAVE_ORDER_DATAS':
$parm = $request->get_parms('ssel_id', 'value');
$basket = basket_adapter::getInstance($appbox, $parm['ssel_id'], $usr_id);
$output = $basket->saveOrderDatas($parm['value']);
break;
case 'DENY_CGU':
$parm = $request->get_parms('sbas_id');
$output = databox_cgu::denyCgus($parm['sbas_id']);
@@ -200,14 +192,7 @@ switch ($action)
$output = $twig->render('prod/preview/reg_train.html', array('container_records' => $record->get_container()->get_children(),
'record' => $record, 'GV_rollover_reg_preview' => $registry->get('GV_rollover_reg_preview')));
break;
case 'UNFIX':
$parm = $request->get_parms('lst');
$output = basket_adapter::unfix_grouping($parm['lst']);
break;
case 'FIX':
$parm = $request->get_parms('lst');
$output = basket_adapter::fix_grouping($parm['lst']);
break;
case 'ADDIMGT2CHU':
case 'ADDCHU2CHU':
case 'ADDREG2CHU':

View File

@@ -15,7 +15,7 @@
* @link www.phraseanet.com
*/
define('ZFONT', 'freesans');
require_once __DIR__ . "/../../lib/bootstrap.php";
$Core = require_once __DIR__ . "/../../lib/bootstrap.php";
$appbox = appbox::get_instance();
$session = $appbox->get_session();
$registry = $appbox->get_registry();
@@ -82,12 +82,19 @@ if ($act == "STEP2")
{
$num = 0;
if ($parm['SSTTID'] != '')
{
$basket = basket_adapter::getInstance($appbox, $parm['SSTTID'], $usr_id);
$em = $Core->getEntityManager();
$repository = $em->getRepository('\Entities\Basket');
$basket = $repository->findUserBasket($Core->getRequest()->get('SSTTID'), $Core->getAuthenticatedUser());
$lst = array();
foreach ($basket->get_elements() as $basket_element)
$lst[] = $basket_element->get_record()->get_serialize_key();
foreach ($basket->getElements() as $basket_element)
{
$lst[] = $basket_element->getRecord()->get_serialize_key();
}
}
else
{
@@ -603,40 +610,46 @@ if ($act == "SEND")
{
$lst = array_reverse($push_datas[$parm['token']]['lst']);
$basket = basket_adapter::create($appbox, $parm["nameBask"], $user);
$basket->set_unread();
$basket->push_list($lst, false);
$basket->flatten();
$ssel_id = $basket->get_ssel_id();
$em = $Core->getEntityManager();
$basket = new \Entities\Basket();
$basket->setName($Core->getRequest()->get('nameBask'));
$basket->setIsRead(false);
$em->persist($basket);
foreach($lst as $basrec)
{
$basrec = explode('_', $basrec);
$record = new record_adapter($basrec[0], $basrec[1]);
$basket_element = new Entities\BasketElement();
$basket_element->setRecord($record);
$basket_element->setBasket($basket);
$basket->addBasketElement($basket_element);
$em->persist($basket_element);
}
$em->flush();
$ssel_id = $basket->getId();
$outinfos = _('prod::push: votre nouveau panier a ete cree avec succes ; il contient vos documents de validation');
}
else
{
$basket = basket_adapter::getInstance($appbox, $ssel_id, $usr_id);
$em = $Core->getEntityManager();
$repository = $em->getRepository('\Entities\Basket');
if ($basket->is_grouping())
{
$elements = $basket->get_elements();
$basket = basket_adapter::create($appbox, $basket->get_name(), $user);
$basket = $repository->findUserBasket($ssel_id, $Core->getAuthenticatedUser());
foreach ($elements as $record)
{
$basket->push_element($record, false, false);
}
unset($elements);
$ssel_id = $basket->get_ssel_id();
}
$basket->flatten();
$ssel_id = $basket->getId();
}
$my_link = '';
if ($ssel_id && is_numeric($ssel_id))
{
$lstUsrs = $push_datas[$parm['token']]['usrs'];
$users = array();
foreach ($lstUsrs as $usr => $right)
@@ -647,7 +660,7 @@ if ($act == "SEND")
if (!array_key_exists($session->get_usr_id(), $lstUsrs))
$users[$session->get_usr_id()] = array('canHD' => '0', 'canRate' => '0', 'canAgree' => '1', 'canSeeOther' => '1', 'canZone' => '0');
$push = pushValidation($usr_id, $ssel_id, $users, $parm['timValS'], $parm["textmail"], $parm['accuse']);
$push = pushValidation($usr_id, $basket->getId(), $users, $parm['timValS'], $parm["textmail"], $parm['accuse']);
$my_link = $push['mylink'];
@@ -655,10 +668,9 @@ if ($act == "SEND")
$lstbyBase = array();
$basket = basket_adapter::getInstance($appbox, $ssel_id, $usr_id);
foreach ($basket as $basket_element)
foreach ($basket->getElements() as $basket_element)
{
$record = $basket_element->get_record();
$record = $basket_element->getRecord();
$lstbyBase[$record->get_sbas_id()][] = $record->get_record_id();
}
@@ -675,7 +687,6 @@ if ($act == "SEND")
}
}
}
}
if (isset($outinfos))
echo "<div style='text-align:center;margin-top:20px;'>" . $outinfos . "</div>";