From d9e9e653286979dbf3555fac0f23cf599b188758 Mon Sep 17 00:00:00 2001 From: Maxim Dolgolyov Date: Thu, 23 Apr 2026 23:10:58 +0300 Subject: [PATCH] =?UTF-8?q?fix:=20=D0=B1=D0=B0=D0=BD=D0=BA=20=D0=B2=D0=BE?= =?UTF-8?q?=D0=BF=D1=80=D0=BE=D1=81=D0=BE=D0=B2=20=E2=80=94=20=D1=81=D0=BE?= =?UTF-8?q?=D1=80=D1=82=D0=B8=D1=80=D0=BE=D0=B2=D0=BA=D0=B0=20=D0=B8=20?= =?UTF-8?q?=D1=84=D0=B8=D0=BB=D1=8C=D1=82=D1=80=20=D0=BF=D0=BE=20=D1=82?= =?UTF-8?q?=D0=B5=D0=BC=D0=B0=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Исправлены ключи сортировки: oldest→date_asc, easy→diff_asc, hard→diff_desc - loadTopics() теперь использует /api/subjects/:slug/topics вместо запроса 200 вопросов (не хватало для 400+ вопросов) - Добавлен onchange для select#f-topic (без него выбор темы не срабатывал) --- frontend/question-bank.html | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/frontend/question-bank.html b/frontend/question-bank.html index a333b50..fb1c7a7 100644 --- a/frontend/question-bank.html +++ b/frontend/question-bank.html @@ -262,7 +262,7 @@
Тема
-
@@ -476,14 +476,11 @@ topicSel.innerHTML = ''; if (!subject) return; try { - const data = await LS.api('/api/questions?subject=' + subject + '&limit=200'); - const rows = data.rows || []; - const topicMap = new Map(); - rows.forEach(q => { if (q.topic_id && q.topic) topicMap.set(q.topic_id, q.topic); }); - topicMap.forEach((name, id) => { + const topics = await LS.api('/api/subjects/' + subject + '/topics'); + (Array.isArray(topics) ? topics : []).forEach(t => { const opt = document.createElement('option'); - opt.value = id; - opt.textContent = name; + opt.value = t.id; + opt.textContent = t.name + (t.question_count ? ' (' + t.question_count + ')' : ''); topicSel.appendChild(opt); }); } catch {} @@ -498,9 +495,9 @@ if (f.topic_id) params.set('topic_id', f.topic_id); if (f.difficulty) params.set('difficulty', f.difficulty); if (f.type) params.set('type', f.type); - if (f.sort === 'oldest') params.set('sort', 'oldest'); - else if (f.sort === 'easy') params.set('sort', 'difficulty_asc'); - else if (f.sort === 'hard') params.set('sort', 'difficulty_desc'); + if (f.sort === 'oldest') params.set('sort', 'date_asc'); + else if (f.sort === 'easy') params.set('sort', 'diff_asc'); + else if (f.sort === 'hard') params.set('sort', 'diff_desc'); document.getElementById('qb-grid').innerHTML = '
'; document.getElementById('qb-pagination').style.display = 'none';