fix(ctmath): чистка банка — год-пачки убраны из пикера пробников
- exam-prep.js: MOCK_VARIANT_RANGE — для ctmath показываем как пробники только чистые 30-задачные варианты [101;1999]; год-пачки (variant=год 2011-2024 и 0, до 114 задач) остаются пулом для тренажёра по темам, но скрыты из пикера/mock-start/просмотра вариантов. math9 (1..80) не затронут (диапазон только для ctmath). - mock.js: пикер «По варианту» — выпадающий список реальных вариантов (через listVariants) вместо number-input 1..N; раньше для ctmath он предлагал 1..18 и не доходил до 101 → пробник по варианту не запускался. - cleanup_ctmath_bank.js: идемпотентный скрипт — ретайр битого id=1419 (mc с противоречивым ответом → long), variants_count → 3 (чистых вариантов). - seed_*: variants_count считается по диапазону [101;1999] (консистентно с роутом). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -44,11 +44,16 @@
|
||||
/* ════════════════════════════════════════════════════════════
|
||||
PHASE 1: SETUP
|
||||
════════════════════════════════════════════════════════════ */
|
||||
function renderSetup() {
|
||||
async function renderSetup() {
|
||||
const title = EP.info?.track?.title || 'Пробный экзамен';
|
||||
const dur = EP.info?.track?.duration_min || 180;
|
||||
const tpv = EP.info?.track?.tasks_per_variant || 10;
|
||||
const vc = EP.info?.track?.variants_count || 80;
|
||||
// Реальный список вариантов-пробников (бэкенд уже отфильтровал год-пачки):
|
||||
// номера вариантов могут быть не подряд (ctmath: 101, 102, …), поэтому
|
||||
// показываем выпадающий список реальных вариантов, а не диапазон 1..N.
|
||||
let vlist = [];
|
||||
try { vlist = (await EP.api.listVariants(examKey)).variants || []; } catch {}
|
||||
const vOpts = vlist.map(v => `<option value="${v.n}">${v.label}</option>`).join('');
|
||||
|
||||
main.innerHTML = `
|
||||
<div class="ep-card mk-setup">
|
||||
@@ -65,10 +70,10 @@
|
||||
<span>По варианту</span>
|
||||
</div>
|
||||
<div class="mk-source-body">
|
||||
<label>Номер варианта:
|
||||
<input type="number" min="1" max="${vc}" value="1" id="mk-variant-input" class="mk-input" />
|
||||
<label>Вариант:
|
||||
<select id="mk-variant-input" class="mk-input">${vOpts || '<option value="">—</option>'}</select>
|
||||
</label>
|
||||
<div class="mk-source-hint">Один из ${vc} реальных вариантов целиком.</div>
|
||||
<div class="mk-source-hint">Один из ${vlist.length} готовых вариантов целиком.</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -116,7 +121,7 @@
|
||||
if (!Number.isInteger(v) || v < 1) {
|
||||
btn.disabled = false; btn.innerHTML = '<i data-lucide="play"></i> Начать пробник';
|
||||
if (window.lucide) lucide.createIcons();
|
||||
return alert('Введите номер варианта');
|
||||
return alert('Выберите вариант');
|
||||
}
|
||||
body.variant = v;
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user