merge master

This commit is contained in:
Nicolas Le Goff
2012-04-27 18:49:38 +02:00
4 changed files with 60 additions and 4 deletions

View File

@@ -1572,6 +1572,16 @@ class record_adapter implements record_Interface, cache_cacheableInterface
$stmt->execute(array(':record_id' => $this->get_record_id())); $stmt->execute(array(':record_id' => $this->get_record_id()));
$stmt->closeCursor(); $stmt->closeCursor();
$base_ids = array_map(function($collection) {
return $collection->get_base_id();
}, $this->databox->get_collections());
$sql = "DELETE FROM order_elements WHERE record_id = :record_id AND base_id IN (" . implode(', ', $base_ids) . ")";
$stmt = $conn->prepare($sql);
$stmt->execute(array(':record_id' => $this->get_record_id()));
$stmt->closeCursor();
$em = bootstrap::getCore()->getEntityManager(); $em = bootstrap::getCore()->getEntityManager();
$repository = $em->getRepository('\Entities\BasketElement'); $repository = $em->getRepository('\Entities\BasketElement');

View File

@@ -24,6 +24,7 @@ class set_exportorder extends set_export
* @param String $usage * @param String $usage
* @param String $deadline * @param String $deadline
* @return boolean * @return boolean
* @return $order_id
*/ */
public function order_available_elements($from_usr_id, $usage, $deadline) public function order_available_elements($from_usr_id, $usage, $deadline)
{ {
@@ -96,7 +97,7 @@ class set_exportorder extends set_export
$evt_mngr->trigger('__NEW_ORDER__', $params); $evt_mngr->trigger('__NEW_ORDER__', $params);
return true; return $order_id;
} }
/** /**
@@ -106,10 +107,10 @@ class set_exportorder extends set_export
protected function get_orderable_lst() protected function get_orderable_lst()
{ {
$ret = array(); $ret = array();
foreach ($this as $basrec => $download_element) { foreach ($this as $download_element) {
foreach ($download_element->get_orderable() as $name => $bool) { foreach ($download_element->get_orderable() as $bool) {
if ($bool === true) { if ($bool === true) {
$ret[] = $basrec; $ret[] = $download_element->get_serialize_key();
} }
} }
} }

View File

@@ -943,6 +943,8 @@ abstract class PhraseanetPHPUnitAbstract extends WebTestCase
$base_id = $collection->get_base_id(); $base_id = $collection->get_base_id();
$user->ACL()->give_access_to_base(array($base_id)); $user->ACL()->give_access_to_base(array($base_id));
set_exportorder::set_order_admins(array($user->get_id()), $base_id);
$rights = array( $rights = array(
'canputinalbum' => '1' 'canputinalbum' => '1'
, 'candwnldhd' => '1' , 'candwnldhd' => '1'

View File

@@ -46,6 +46,49 @@ class record_adapterTest extends PhraseanetPHPUnitAuthenticatedAbstract
parent::tearDownAfterClass(); parent::tearDownAfterClass();
} }
/**
* Check whether a record is delete from order_elements when
* record::delete is call
* @covers \record_adapter
*/
public function testSetExport()
{
$recordsf = new system_file(__DIR__ . '/../testfiles/test001.CR2');
$record = record_adapter::create(self::$collection, $recordsf);
$basket = new \Entities\Basket();
$basket->setName('hello');
$basket->setOwner(self::$user);
$basket->setDescription('hello');
$em = self::$core->getEntityManager();
$basketElement = new \Entities\BasketElement();
$basketElement->setRecord($record);
$basketElement->setBasket($basket);
$em->persist($basketElement);
$basket->addBasketElement($basketElement);
$em->persist($basket);
$em->flush();
$export = new set_exportorder(self::$record_1->get_serialize_key(), $basket->getId());
$orderId = $export->order_available_elements(self::$user->get_id(), 'ahaha', '+2 hours');
$record->delete();
try {
$order = new set_order($orderId);
} catch (\Exception $e) {
$this->fail('should not raise an exception' . $e->getMessage() . ' ' . $e->getLine() . ' ' . $e->getFile() . ' ' . $e->getTraceAsString());
}
}
public function testGet_creation_date() public function testGet_creation_date()
{ {
$date_obj = new DateTime(); $date_obj = new DateTime();