Раздел «Ручной ввод M2M» по бумажным поручениям; тестовые тексты и имитации убраны из клиентского интерфейса

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
zuevav
2026-09-17 18:26:59 +03:00
parent 627dbca6af
commit e4de1ab4d8
38 changed files with 2014 additions and 132 deletions
+16 -6
View File
@@ -343,8 +343,8 @@ type page struct {
Title string
Active string
Now string
IsMockMode bool // true если ИШ не настроен — bj-server в режиме эмуляции
MockReason string // короткое описание почему mock
IsMockMode bool // true если ИШ или СКЗИ не настроены — обмена с НРД нет
MockReason string // короткое описание причины (у клиента — без «mock»)
NPR bool // модуль «НПР / УДС» включён и разрешён лицензией
DevMode bool // режим разработки (сервер лицензий): видны служебные разделы
}
@@ -480,7 +480,7 @@ func (a *admin) renderHome(w http.ResponseWriter, r *http.Request, svc *Service,
page: nowPage("Дашборд", "home"),
Status: status,
Recent: recent.Items,
News: topNews(rc.Snapshot().News.Items, 3),
News: topNews(visibleNews(rc, rc.Snapshot().News.Items), 3),
LKUrl: rc.Snapshot().LK.PublicURL,
}
// Готовность системы считаем ТОЛЬКО по обязательным компонентам.
@@ -610,7 +610,11 @@ func buildClaimTimeline(ctx context.Context, v ClaimView) []TimelineEvent {
rej++
}
}
add("Получено решение НРД (робот)", "response",
title := "Получено решение контрагента (НРД)"
if devMode(globalRC) {
title = "Получено решение НРД (робот)"
}
add(title, "response",
fmt.Sprintf("Принято %d, отклонено %d.", conf, rej), v.UpdatedAt, v.CreatedAt)
} else if v.M2MResponse != nil {
var codes string
@@ -710,10 +714,16 @@ func nowPage(title, active string) page {
switch {
case s.NSD.IGWBaseURL == "":
p.IsMockMode = true
p.MockReason = "ИШ НРД не настроен — заявки идут через внутренний mock (Decision эмитируется через 3 сек)"
p.MockReason = "ИШ НРД не настроен — обмен с НРД не выполняется"
if p.DevMode {
p.MockReason = "ИШ НРД не настроен — заявки идут через внутренний mock (Decision эмитируется через 3 сек)"
}
case s.Crypto.Provider == "" || s.Crypto.Provider == "stub":
p.IsMockMode = true
p.MockReason = "Провайдер СКЗИ = stub — подпись не делается, реальный обмен с НРД невозможен"
p.MockReason = "Не настроено средство подписи (СКЗИ) — обмен с НРД невозможен"
if p.DevMode {
p.MockReason = "Провайдер СКЗИ = stub — подпись не делается, реальный обмен с НРД невозможен"
}
}
}
return p