Hi,
I have a problem with FilteredDropdownSet
I have three DataObject
Two is Province and Twon
Third is Simple Object
I have that code
Province.php
class Province extends DataObject
{
static $db = array (
'Title' => 'Varchar(255)',
);
static $field_labels = array(
'Title' => 'Województwo'
);
}
and
Town.php
class Town extends DataObject
{
static $db = array (
'Title' => 'Varchar(255)',
);
static $has_one = array (
'Province' => 'Province',
);
static $has_many = array (
'Anonse' => 'Anons',
);
static $field_labels = array(
'Title' => 'Miasto'
);
}
and DataObject Anons.php (he display in frontpage)
class Anons extends DataObject
{
.................
static $has_one = array(
'Province' => 'Province',
'Town' => 'Town'
);
//Fields to search in ModelAdmin
static $searchable_fields = array (
'Province.ID' => array('title' => 'Województwo'),
'Town.ID' => array('title' => 'Miasto'),
);
function getCMSFields()
{
$fields = parent::getCMSFields();
....................
//Main Tab
$fields->removeByName('Province');
$fields->removeByName('Town');
$province_map = array();
$town_map = array();
if($result = DataObject::get("Province")) {
$province_map = $result->toDropdownMap();
}
if($result = DataObject::get("Town")) {
$town_map = $result->toDropdownMap();
}
$fields->addFieldToTab("Root.Main", new FilteredDropdownSet(array(
new DropdownField('ProvinceID', 'Province', $province_map),
new DropdownField('TownID', 'Town', $town_map)
),
"ProvinceID",
"Town"
));
return $fields;
}
.........................
public function getCustomSearchContext() {
$province_map = array();
$town_map = array();
if($result = DataObject::get("Province")) {
$province_map = $result->toDropdownMap();
}
if($result = DataObject::get("Town")) {
$town_map = $result->toDropdownMap();
}
$fields = new FieldSet(
new FilteredDropdownSet(array(
new DropdownField('ProvinceID', 'Province', $province_map),
new DropdownField('TownID', 'Town', $town_map)
),
"ProvinceID",
"Town"
)
);
$filters = array(
'Province' => new ExactMatchMultiFilter('Province.ID'),
'Town' => new ExactMatchMultiFilter('Town.ID'),
);
return new SearchContext(
$this->class,
$fields,
$filters
);
}
Neither in the frontend or backend filtering does not work.
I mean when for example I point on province "lodzkie" in second field (Town) not filtered - allways display all Twon
Sorry for my bad English