Списки: период, сортировка, подгрузка; анкета участника — строкой исходящих

«Исходящие», «Входящие», «Журнал обмена»: быстрые периоды (сегодня, 7, 30
дней, всё время), даты с–по, сортировка (время, инвестор/контрагент,
направление, статус), первые 50 строк и подгрузка при прокрутке
(part=rows&offset=N). Раньше показывались только последние 200/100.

Анкета участника — исходящий пакет в НРД: строка в «Исходящих» и
«Журнале» с ответом НРД (принята / отклонена с кодом / ждёт), вместо
плашки над списком. Отправки копятся в participant-regs.json (прежний
participant-reg.json подхватывается). userTemplate — функции текущего
пользователя и для порций строк.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
This commit is contained in:
fontvielle
2026-10-22 10:50:43 +03:00
parent 890e575d3d
commit 60b4d46277
13 changed files with 522 additions and 92 deletions
+7 -2
View File
@@ -1657,10 +1657,15 @@ var authTemplateFuncs = template.FuncMap{
// renderFor — выполняет layout с функциями, привязанными к текущему пользователю.
func renderFor(w http.ResponseWriter, t *template.Template, data any) error {
return userTemplate(w, t).ExecuteTemplate(w, "layout", data)
}
// userTemplate — копия шаблона с функциями, привязанными к текущему пользователю (curUser, devOn, can).
func userTemplate(w http.ResponseWriter, t *template.Template) *template.Template {
u := currentUser(w)
t2, err := t.Clone()
if err != nil {
return t.ExecuteTemplate(w, "layout", data)
return t
}
on := devOnFor(u)
t2.Funcs(template.FuncMap{
@@ -1677,7 +1682,7 @@ func renderFor(w http.ResponseWriter, t *template.Template, data any) error {
return u.Can(perm)
},
})
return t2.ExecuteTemplate(w, "layout", data)
return t2
}
// ensureSubtle — используется для сравнения токенов в других местах.