Commit Graph

12 Commits

Author SHA1 Message Date
Exest
3d89fac6e0 тесты: автотесты десктопа (xUnit) + CI
Some checks failed
Desktop tests / test (push) Has been cancelled
- проект tests/Elfisa.Tests: 56 юнит-тестов на Elfisa.Core + Elfisa.Avalonia:
  версии апдейтера, срок JWT-сессии, ApiClient (URL/ошибки/ретраи/парсинг),
  DTO-контракты, черновики, корзина, дрилдаун прайса (МГ/базовое имя)
- тест-швы: internal-методы через InternalsVisibleTo, ApiClient(HttpMessageHandler)
- CI .github/workflows/desktop-tests.yml — dotnet test при пуше (GitHub/Gitea Actions)
- README с описанием покрытия

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-17 11:51:50 +03:00
Exest
60ab620608 версия 2.0.9: размер шрифта/текста (масштаб интерфейса) в Настройках
- Настройки: выпадающий список «Размер шрифта / текста» (90/100/115/130/150%)
- масштаб применяется ко всему главному окну (LayoutTransform), сохраняется
  и восстанавливается при старте

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-13 16:39:46 +03:00
Exest
c808d62188 версия 2.0.8: выбор шрифта интерфейса в Настройках
- Настройки: выпадающий список «Шрифт» со всеми системными шрифтами
  (+ «По умолчанию»), с превью каждого шрифта в себе самом
- шрифт применяется ко всему приложению (ресурс AppFontFamily + стиль Window),
  сохраняется и восстанавливается при старте

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-13 16:21:00 +03:00
Exest
4e341f76c3 версия 2.0.7: надёжный автоапдейт (CDN) + кнопка проверки + без лимита листания
- UpdateService: проверка через публичный CDN latest.json (тот же хост, что и
  установщик — надёжнее поддомена git), fallback на Gitea, лог в %TEMP%\elfisa-update.log
- Настройки: кнопка «Проверить обновления» (ручной триггер + видимый результат)
- Прайс-лист: убран лимит показа (300 → весь прайс/все совпадения одним запросом)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-13 15:35:24 +03:00
Exest
23f34cc769 версия 2.0.6: Enter в поле поиска прайса запускает поиск
Раньше поиск шёл только кнопкой «Найти». Добавлен KeyBinding Enter → SearchCommand
прямо в поле ввода: набрал название, нажал Enter — ищет.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-13 15:11:18 +03:00
Exest
cc2c128cb2 версия 2.0.5: сводный прайс — весь одним запросом (быстрее при всех прайсах)
LoadPrice дробил прайс на страницы по 20000, а сервер на каждую страницу заново
прогонял тяжёлую оконную дедупликацию + COUNT. При всех подключённых прайсах
(~52к позиций) это ~6-7с. Тянем всё одним запросом → один прогон (~1.2с).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-13 12:54:14 +03:00
Exest
e8357bab1e версия 2.0.4: авто-обновление в Avalonia-клиенте
- UpdateService (Core): проверка Gitea releases/latest + скачивание установщика с CDN
- UpdateWindow/VM: уведомление «доступно обновление», тихая установка поверх с перезапуском
- ShellView: проверка при старте (один раз, офлайн/ошибки игнорируются)

Закрывает пробел: Avalonia-клиент раньше не умел обновляться (апдейтер был только в WinForms).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-13 10:10:13 +03:00
Exest
436bbb8bfb версия 2.0.3: запоминание входа, быстрая загрузка прайса, повтор при SSL
- Session: сохранение/восстановление сессии между запусками (JWT exp-проверка)
- LoadPrice: страница 20000 вместо 500 — прайс грузится одним запросом
- ApiClient: повтор запроса на транзиентных сбоях TLS (поиск/загрузка)
- download-страница: реальный размер, macOS помечен «скоро»

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-13 09:23:29 +03:00
Exest
8242184c18 версия 2.0.2 (раздел «Отправить» — отправка накладных)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-11 13:47:15 +03:00
Exest
f98978a5d2 2.0.1: «Мои прайсы» в Прайс-листе + подключённые прайсы в «Загрузить»
- Прайс-лист: дропдаун «Мои прайсы» (подключённые прайсы + «Все прайсы»),
  выбор фильтрует каталог по price_list_id; один прайс — выбирается сам
- Загрузить: показывает список подключённых прайсов и качает их
- Core: GetBuyerPriceListsAsync + priceListId в GetPriceSummaryAsync

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-10 17:42:53 +03:00
Exest
028c588d2a Релиз 2.0: кросс-платформа, брендовый установщик, страница загрузки
- Версия 2.0.0, self-contained публикация под win/osx/linux
- Установщик Inno перенастроен на Avalonia + брендовые картинки мастера
  (бирюзовый градиент, аптечный крест, ЭльФиСА)
- exe переименовывается в «Электронная Фармация.exe» (совместимо с авто-обновлением)
- Иконки приложения 256/512/1024
- Красивая страница загрузки web/download с авто-определением ОС (Win/Mac/Linux)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-10 12:41:14 +03:00
Exest
f6a1012e9b Avalonia кросс-платформенный клиент: фундамент + раздел «Отчёты»
Порт десктопа с WinForms на Avalonia (.NET 8, Win/macOS/Linux).

- Elfisa.Core: переносимая логика (ApiClient: логин/отчёт/ИИ, DTO, Session)
- Дизайн-система в бирюзе #0F766E (свет/тьма, кнопки/поля/карточки/таблица/сайдбар)
- Экран входа (реальный /auth/login), шелл с сайдбар-навигацией
- «Отчёты»: 4 типа + авто-загрузка + ИИ-запрос -> Word/Excel, динамические колонки
- Заглушки остальных разделов + README с дорожной картой портирования

Проверено запуском: логин, живые данные покупателя, тема, таблица (скриншот).
dev-автологин по ELF_DEV_USER/ELF_DEV_PASS.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-07 18:21:10 +03:00