public function searchConfiguration()
{
$search = new Manager($this);
$search->like('q', ['before' => true, 'after' => true, 'field' => [$this->aliasField('titulo'), $this->aliasField('descripcion')]])->compare('fecha_de', ['field' => $this->aliasField('fecha_ini'), 'filterEmpty' => true])->compare('fecha_a', ['operator' => '<=', 'field' => $this->aliasField('fecha_ini'), 'filterEmpty' => true])->value('trimestre', ['field' => $this->aliasField('trimestre'), 'filterEmpty' => true])->value('departamentos', ['field' => $this->aliasField('departamento_id'), 'filterEmpty' => true])->callback('cursos', ['callback' => function (Query $query, array $args) {
return $query->distinct($this->aliasField('id'))->matching('Curso', function (Query $query) use($args) {
return $query->where([$this->Curso->target()->aliasField('id') . ' IN' => $args['cursos']]);
});
}]);
return $search;
}