public function updateAttributes($productIds, $attrData, $storeId) { if ($attrData['status'] == Aitoc_Aitpermissions_Model_Rewrite_CatalogProductStatus::STATUS_AWAITING) { Mage::throwException(Mage::helper('core')->__('This status cannot be used in mass action')); return $this; } if (isset($attrData['status']) && $this->_isUpdatingStatus() && Mage::getSingleton('aitpermissions/role')->isPermissionsEnabled() && Mage::getStoreConfig('admin/su/enable')) { $productIdsNoApprove = $this->_getProductIdsToApprove($productIds); foreach ($productIdsNoApprove as $productId) { Mage::getModel('aitpermissions/approve')->approve($productId, $attrData['status']); } $arrayDiff = array_diff($productIds, $productIdsNoApprove); if (count($arrayDiff) > 0) { $productIds = $productIdsNoApprove; Mage::getSingleton('adminhtml/session')->addNotice(Mage::helper('core')->__('The product you are trying to change the status is awaiting Super-Admin approve.No changes are applied to this product(s).')); } } return parent::updateAttributes($productIds, $attrData, $storeId); }
/** * @test */ public function testCatalogProductSaveAfterMassAction() { $this->_fpc->save('product1', 'product1_cache_id', array(sha1('product_1'))); $this->_fpc->save('product2', 'product2_cache_id', array(sha1('product_2'))); $this->_fpc->save('product3', 'product3_cache_id', array(sha1('product_3'))); $event = new Mage_Index_Model_Event(); $productAction = new Mage_Catalog_Model_Product_Action(); $productAction->setProductIds(array(2, 3)); $event->setType('mass_action'); $event->setEntity('catalog_product'); $event->setDataObject($productAction); Mage::dispatchEvent('model_save_after', array('object' => $event)); $this->assertEquals('product1', $this->_fpc->load('product1_cache_id')); $this->assertFalse($this->_fpc->load('product2_cache_id')); $this->assertFalse($this->_fpc->load('product3_cache_id')); }