- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/lib/scrum/service/taskservice.php
- Класс: BitrixTasksScrumServiceTaskService
- Вызов: TaskService::getFilterInstance
public function getFilterInstance(int $groupId, string $view = 'plan'): ?Common
{
$availableViews = [
'plan' => 'TASKS_GRID_ROLE_ID_4096_'.$groupId.'_ADVANCED_N',
'active' => 'TASKS_GRID_ROLE_ID_4096_'.$groupId.'_ACTIVE_N',
'complete' => 'TASKS_GRID_ROLE_ID_4096_'.$groupId.'_COMPLETED_N',
];
if (!isset($availableViews[$view]))
{
return null;
}
$filterId = $availableViews[$view];
$filterInstance = Filter::getInstance($this->executiveUserId, $groupId, $filterId);
$presets = Filter::getPresets($filterInstance);
if ($view === 'complete')
{
unset($presets['filter_tasks_scrum']);
}
$savedOptions = CUserOptions::getOption('main.ui.filter', $filterId, [], $this->executiveUserId);
if (!$savedOptions)
{
// todo remove after fix main filter
if ($view === 'active')
{
$planPresets = (Filter::getInstance($this->executiveUserId, $groupId, $availableViews['plan']))
->getAllPresets()
;
if (count($planPresets) >= 5)
{
$presets = $planPresets;
}
}
$filterOptions = new Options($filterId, $presets);
$filterOptions->save();
}
return $filterInstance;
}