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,76 +610,80 @@ 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)
{
$lstUsrs = $push_datas[$parm['token']]['usrs'];
$users = array();
foreach ($lstUsrs as $usr => $right)
$users[$usr] = array('canHD' => (in_array($right['HD'], array('0', '1')) ? $right['HD'] : '0'), 'canRate' => '0', 'canAgree' => '1', 'canSeeOther' => ($parm['view_all'] == '1' ? '1' : '0'), 'canZone' => '0');
}
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, $basket->getId(), $users, $parm['timValS'], $parm["textmail"], $parm['accuse']);
$my_link = $push['mylink'];
$Endusers = $push['users'];
$lstbyBase = array();
foreach ($basket->getElements() as $basket_element)
{
$record = $basket_element->getRecord();
$lstbyBase[$record->get_sbas_id()][] = $record->get_record_id();
}
foreach ($lstbyBase as $sbas_id => $lst)
{
foreach ($lst as $record_id)
{
$users[$usr] = array('canHD' => (in_array($right['HD'], array('0', '1')) ? $right['HD'] : '0'), 'canRate' => '0', 'canAgree' => '1', 'canSeeOther' => ($parm['view_all'] == '1' ? '1' : '0'), 'canZone' => '0');
}
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']);
$my_link = $push['mylink'];
$Endusers = $push['users'];
$lstbyBase = array();
$basket = basket_adapter::getInstance($appbox, $ssel_id, $usr_id);
foreach ($basket as $basket_element)
{
$record = $basket_element->get_record();
$lstbyBase[$record->get_sbas_id()][] = $record->get_record_id();
}
foreach ($lstbyBase as $sbas_id => $lst)
{
foreach ($lst as $record_id)
foreach ($Endusers as $u)
{
foreach ($Endusers as $u)
{
$record = new record_adapter($sbas_id, $record_id);
$session->get_logger($record->get_databox())
->log($record, Session_Logger::EVENT_VALIDATE, $u, '');
unset($record);
}
$record = new record_adapter($sbas_id, $record_id);
$session->get_logger($record->get_databox())
->log($record, Session_Logger::EVENT_VALIDATE, $u, '');
unset($record);
}
}
}