From 961d60a79ecdd5a5542f7db3d52eca3905407474 Mon Sep 17 00:00:00 2001 From: Repinoid Date: Fri, 30 Oct 2026 10:40:44 +0300 Subject: [PATCH] Match Contracts UI to Obfuscator and add Help Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- site/config.py | 2 +- site/static/app.js | 2 +- site/static/app_utils.js | 4 +- site/templates/index.html | 78 ++++++++++++++++++++++++++++----------- tests/test_routes.py | 3 ++ 5 files changed, 64 insertions(+), 25 deletions(-) diff --git a/site/config.py b/site/config.py index 2e64ad5..0d46bdc 100644 --- a/site/config.py +++ b/site/config.py @@ -1,7 +1,7 @@ """Конфигурация приложения — все настройки в одном месте.""" import os -VERSION = "2.0.22" +VERSION = "2.0.23" LLM_URL = os.getenv("LLM_API_URL", "https://api.aillm.ru/v1/chat/completions") LLM_KEY = os.getenv("LLM_API_KEY", "") diff --git a/site/static/app.js b/site/static/app.js index ad5c7d8..ad5ea38 100644 --- a/site/static/app.js +++ b/site/static/app.js @@ -58,7 +58,7 @@ filePicker = window.FilePicker.initFilePicker({ function renderStepper(state) { var steps = state.ui.steps; var map = { upload: 'stepUpload', classify: 'stepClassify', groups: 'stepGroups', compare: 'stepCompare' }; - var colors = { '○': 'var(--muted)', '⏳': 'var(--brand-primary)', '✓': 'var(--green)' }; + var colors = { '○': 'var(--topbar-muted)', '⏳': 'var(--topbar-active)', '✓': 'var(--topbar-done)' }; Object.keys(map).forEach(function(key) { var el = document.getElementById(map[key]); if (el) { diff --git a/site/static/app_utils.js b/site/static/app_utils.js index dea64fd..01c3093 100644 --- a/site/static/app_utils.js +++ b/site/static/app_utils.js @@ -65,14 +65,14 @@ window.moveUp = moveUp; window.moveDown = moveDown; /** - * Открыть модальное окно "О сервисе". + * Открыть модальное окно справки. */ function openAbout() { document.getElementById('aboutModalOverlay').classList.add('open'); } /** - * Закрыть модальное окно "О сервисе" (по клику на оверлей или кнопку). + * Закрыть модальное окно справки по клику на оверлей или кнопку. */ function closeAbout(e) { if (e && e.target !== document.getElementById('aboutModalOverlay')) return; diff --git a/site/templates/index.html b/site/templates/index.html index 71584c4..de4f861 100644 --- a/site/templates/index.html +++ b/site/templates/index.html @@ -7,13 +7,20 @@
Nubes - Сверка договоров — LLM AI-driven Event Sourcing v{{ config["VERSION"] }} -
+ Контрактор + v{{ config["VERSION"] }} +
○ Загрузка→ ○ Классификация→ ○ Группировка→ ○ Сравнение
- ℹ️ О сервисе +
+

Сверка договоров

+

Загрузите договоры, дополнительные соглашения и спецификации — система классифицирует их, сгруппирует и покажет изменения.

@@ -111,7 +129,7 @@
Порядок определяется автоматически при классификации
-
Выберите PDF, DOC или DOCX. ZIP раскрываются рекурсивно; правила из корневого obscure.lst применяются при выборе папки.
+
PDF, DOC, DOCX и ZIP (архивы раскрываются рекурсивно). Лимиты: 50 МБ на файл, 500 МБ суммарно. При выборе папки можно фильтровать состав через корневой obscure.lst.
+ Контрактор — справка +
diff --git a/tests/test_routes.py b/tests/test_routes.py index 4298f0a..93a6943 100644 --- a/tests/test_routes.py +++ b/tests/test_routes.py @@ -39,6 +39,9 @@ class TestHomepage: assert f">v{VERSION}" in html assert f"/static/files.js?v={VERSION}" in html assert f"/file-picker/file-picker.iife.js?v={VERSION}" in html + assert '