if (isset($return_url) && strlen($return_url) > 0 && check_bitrix_sessid()) {
        LocalRedirect($return_url);
    }
}
// fetch data
$rsData = CTest::GetList(array($by => $order), $arFilter);
$rsData = new CAdminResult($rsData, $sTableID);
$rsData->NavStart();
// navigation string setup
$lAdmin->NavText($rsData->GetNavPrint(GetMessage("LEARNING_TESTS")));
// list header
$lAdmin->AddHeaders(array(array("id" => "ID", "content" => "ID", "sort" => "id", "default" => true), array("id" => "TIMESTAMP_X", "content" => GetMessage('LEARNING_COURSE_ADM_DATECH'), "sort" => "timestamp_x", "default" => true), array("id" => "NAME", "content" => GetMessage('LEARNING_NAME'), "sort" => "name", "default" => true), array("id" => "SORT", "content" => GetMessage('LEARNING_COURSE_ADM_SORT'), "sort" => "sort", "default" => true), array("id" => "ACTIVE", "content" => GetMessage('LEARNING_COURSE_ADM_ACT'), "sort" => "active", "default" => true), array("id" => "TESTS_STATS", "content" => GetMessage('LEARNING_TEST_ADM_STATS'), "default" => true)));
// building list
while ($arRes = $rsData->NavNext(true, "f_")) {
    $row =& $lAdmin->AddRow($f_ID, $arRes);
    $arStat = CTest::GetStats($f_ID);
    $row->AddCheckField("ACTIVE");
    $row->AddInputField("NAME", array("size" => "35"));
    $row->AddInputField("SORT", array("size" => "3"));
    $index = '-';
    if ($arStat["ALL_CNT"] > 0.1) {
        $index = 100 * ($arStat["CORRECT_CNT"] / $arStat["ALL_CNT"]);
        $index = round($index, 1);
        $index = sprintf("%03.1f", $index) . '%';
    }
    $attemptUrl = "learn_attempt_admin.php?lang=" . LANG . "&filter_test_id=" . $f_ID . "&set_filter=Y&&filter_status=F";
    $row->AddViewField("TESTS_STATS", $index . ' (<a href="' . $attemptUrl . '&filter_completed=Y">' . $arStat["CORRECT_CNT"] . '</a> /
		<a href="' . $attemptUrl . '">' . $arStat["ALL_CNT"] . '</a>)');
    $arActions = array();
    $editActionText = GetMessage("MAIN_ADMIN_MENU_OPEN");
    if (!$isReadOnly) {