Skip to content

Commit 061dbe0

Browse files
authored
Grid range filter - optimize SQL query when from === to (#1637)
* Grid + Range filter - add doc, hints, optimize SQL query when from === to * Doc-block cleanup
1 parent 0fb1845 commit 061dbe0

File tree

3 files changed

+17
-8
lines changed

3 files changed

+17
-8
lines changed

app/code/core/Mage/Adminhtml/Block/Widget/Grid.php

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -303,7 +303,7 @@ public function getCollection()
303303
* Add column to grid
304304
*
305305
* @param string $columnId
306-
* @param array || Varien_Object $column
306+
* @param array $column
307307
* @return Mage_Adminhtml_Block_Widget_Grid
308308
*/
309309
public function addColumn($columnId, $column)
@@ -313,9 +313,6 @@ public function addColumn($columnId, $column)
313313
->setData($column)
314314
->setGrid($this);
315315
}
316-
/*elseif ($column instanceof Varien_Object) {
317-
$this->_columns[$columnId] = $column;
318-
}*/
319316
else {
320317
throw new Exception(Mage::helper('adminhtml')->__('Wrong column format.'));
321318
}
@@ -426,7 +423,7 @@ public function getColumnCount()
426423
* Retrieve grid column by column id
427424
*
428425
* @param string $columnId
429-
* @return Varien_Object || false
426+
* @return Mage_Adminhtml_Block_Widget_Grid_Column|false
430427
*/
431428
public function getColumn($columnId)
432429
{
@@ -439,13 +436,18 @@ public function getColumn($columnId)
439436
/**
440437
* Retrieve all grid columns
441438
*
442-
* @return array
439+
* @return Mage_Adminhtml_Block_Widget_Grid_Column[]
443440
*/
444441
public function getColumns()
445442
{
446443
return $this->_columns;
447444
}
448445

446+
/**
447+
* @param array $data
448+
*
449+
* @return $this
450+
*/
449451
protected function _setFilterValues($data)
450452
{
451453
foreach ($this->getColumns() as $columnId => $column) {
@@ -1286,7 +1288,7 @@ public function getAbsoluteGridUrl($params = array())
12861288
* @param mixed $default
12871289
* @return mixed
12881290
*/
1289-
public function getParam($paramName, $default=null)
1291+
public function getParam($paramName, $default = null)
12901292
{
12911293
$session = Mage::getSingleton('adminhtml/session');
12921294
$sessionParamName = $this->getId().$paramName;

app/code/core/Mage/Adminhtml/Block/Widget/Grid/Column.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -353,6 +353,9 @@ protected function _getFilterByType()
353353
return $filterClass;
354354
}
355355

356+
/**
357+
* @return Mage_Adminhtml_Block_Widget_Grid_Column_Filter_Abstract|false
358+
*/
356359
public function getFilter()
357360
{
358361
if (!$this->_filter) {

app/code/core/Mage/Adminhtml/Block/Widget/Grid/Column/Filter/Range.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,11 +51,15 @@ public function getValue($index=null)
5151
}
5252
return null;
5353
}
54-
5554

5655
public function getCondition()
5756
{
5857
$value = $this->getValue();
58+
59+
if (isset($value['from']) && isset($value['to']) && $value['from'] === $value['to']) {
60+
return ['eq' => $value['from']];
61+
}
62+
5963
return $value;
6064
}
6165

0 commit comments

Comments
 (0)