Commit Graph

784 Commits

Author SHA1 Message Date
c0401176a9 fix(ui): обновить текст заголовка 2026-01-18 00:45:50 +03:00
2f8a78cfa7 fix(ui): обновить текст заголовка товаров 2026-01-18 00:33:24 +03:00
16194a1167 fix(ui): исправить текст заголовка списка товаров 2026-01-18 00:32:57 +03:00
4fc4405a29 fix(ui): исправить текст заголовка страницы товаров 2026-01-18 00:25:08 +03:00
c77fcaf669 feat: Добавить мобильную адаптацию для POS-терминала
- Добавить фиксированную панель корзины внизу экрана на мобильных
  - Отображение количества товаров и суммы
  - Кнопки "Продать" и "Очистить" всегда доступны
  - Тап на панель открывает корзину как overlay

- Фиксировать поиск и категории сверху на мобильных
  - Поиск всегда виден при скролле
  - Категории в collapsible-блоке (сворачиваются)
  - Категории в 3 колонки на мобильных

- Улучшить поиск по токенам (разбивает фразу на слова)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 23:03:40 +03:00
9b4b1277ee feat: Add Docker infrastructure for multi-tenant Django application with services for database, caching, and task processing. 2026-01-17 18:27:57 +03:00
10ab804396 Fix celery queues: listen to photo_processing 2026-01-17 17:18:21 +03:00
cc0b01a922 feat: Add Docker entrypoint script. 2026-01-17 17:02:02 +03:00
9ab4c45448 feat: Add Docker entrypoint script. 2026-01-17 17:00:22 +03:00
c8205cc6f3 feat: Add Docker support with Dockerfile and entrypoint script. 2026-01-17 16:54:26 +03:00
62480db8af - пробел 2026-01-17 16:24:21 +03:00
959642b882 Ретерн 2026-01-17 15:00:10 +03:00
75b33526b2 refactor(uom_views): удалить неиспользуемую аннотацию usage_count 2026-01-17 14:42:15 +03:00
89da5eb4bb xnjj 2026-01-17 14:24:22 +03:00
1a35660ac2 sds 2026-01-17 14:14:44 +03:00
7e15eb5c7a er 2026-01-17 14:08:23 +03:00
7f360c56f4 йй 2026-01-17 13:58:53 +03:00
4caa1ac0f2 ww 2026-01-17 13:34:08 +03:00
96baff47f0 тест 2026-01-17 13:31:36 +03:00
9de3ed624c WOW тест 2026-01-17 13:09:50 +03:00
2f1f0621e6 feat: упростить создание заказов и рефакторинг единиц измерения
- Добавить inline-редактирование цен в списке товаров
- Оптимизировать карточки товаров в POS-терминале
- Рефакторинг моделей единиц измерения
- Миграция unit -> base_unit в SalesUnit
- Улучшить UI форм создания/редактирования товаров

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 03:34:43 +03:00
928b340486 style(pos): улучшить адаптивность сетки товаров
- Изменить брейкпоинт для 5 колонок с 992px на 1100px
- Увеличить ширину правой панели с 4/12 до 5/12 колонок

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 03:11:00 +03:00
18cca326af feat(pos): улучшить адаптивность POS-терминала для мобильных устройств
- col-md-8/4 → col-12 col-md-8/4 для корректного отображения на мобильных
- Кнопки действий: height: 60px → min-height: 44px (минимальный размер для тапа)
- Модальные окна: добавлен modal-fullscreen-sm-down/md-down
- Колонки внутри модалок: добавлен col-12 для мобильной адаптивности
- Увеличена мелкая кнопка отмены скидки: 32px → 40px
- CSS: добавлены медиа-запросы для мобильных устройств
  * min-height: 44px для полей ввода и кнопок
  * font-size: 16px предотвращает зум на iOS
  * Оптимизация отступов в модалках
  * UX улучшения для тач-устройств
  * Плавная прокрутка на iOS
- Исправлено перекрытие товаров корзиной на мобильных (position: absolute → relative)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 19:21:05 +03:00
c8284a6ac5 fix(pos): отключить автофокус на мобильных устройствах
Добавлено определение мобильных устройств через User-Agent и ширину экрана.
Фокус на поле поиска и поле ввода количества теперь устанавливается только
на десктопах, чтобы избежать появления экранной клавиатуры на мобильных.
2026-01-16 19:06:36 +03:00
edad388ea8 feat(orders): добавить WYSIWYG редактор для резюме заказа
Интеграция библиотеки Quill.js для форматирования текста в поле
резюме заказа. Добавлено отображение резюме в списке заказов с
возможностью раскрытия длинного текста. Обновлен вид резюме
в детальной странице заказа для поддержки HTML-разметки.
2026-01-16 18:46:04 +03:00
39e050f087 refactor(user_roles): использовать CustomUser напрямую 2026-01-16 12:57:29 +03:00
14188fbac4 feat(orders): добавить поле резюме заказа
Добавлено текстовое поле `summary` в модель `Order` для хранения краткого
описания заказа на естественном языке.

Обновлена форма `OrderForm` с добавлением виджета textarea, плейсхолдера и
стилей. В шаблоны `order_form.html` и `order_detail.html` добавлены элементы
для ввода и отображения резюме заказа. Создана соответствующая миграция.
2026-01-15 18:39:05 +03:00
ce486f35ca Перенос встроенных стилей из шаблона detail.html в отдельный CSS-файл transformation_detail.css 2026-01-15 15:09:38 +03:00
2ef537fff6 Добавлена возможность выбора анонимного системного клиента в форме заказа
- Убрана фильтрация системного клиента из результатов поиска (api_search_customers)
- Добавлен флаг is_system_customer в результаты API поиска
- Создан новый API endpoint api_get_system_customer для быстрого получения системного клиента
- Добавлена кнопка 'Аноним' для быстрого выбора системного клиента
- Системный клиент выделяется жёлтым цветом и иконкой инкогнито в выпадающем списке
- Улучшена компактность результатов поиска (уменьшен шрифт до 13px)
- Изменены пропорции полей: клиент 9 колонок, статус 3 колонки (было 6:6)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 12:54:56 +03:00
c7e03d258b Обновление админки и представлений для интеграций 2026-01-15 12:20:39 +03:00
fb3074a2ed Обновление конфигурации и зависимостей для AI сервисов 2026-01-15 12:20:25 +03:00
607c5ac8f4 Обновление структуры моделей интеграций 2026-01-15 12:19:44 +03:00
a23d714128 Добавление интеграции OpenRouter AI 2026-01-15 12:19:29 +03:00
401993526b Обновление GLM моделей до GLM-4 2026-01-15 12:16:56 +03:00
caeb3f80bd refactor(db): консолидация миграций и рефакторинг кода
Объединены изменения из промежуточных миграций в начальные миграции для упрощения истории базы данных.
Удалены миграции: accounts/0002, discounts/0002, orders/0003-0004, products/0002-0005, user_roles/0002, system_settings/0001-0002, integrations/0001-0002.
Добавлена автоматическая creation пользователя при установке пароля.
Обновлен UI страницы установки пароля с кастомным стилем.
Добавлен conditional rendering для кнопки синхронизации Recommerce.
Исправлены редиректы с 'index' на '/' в accounts views.
Добавлена проверка request.tenant в navbar и authenticate метод в auth backend.
2026-01-14 16:30:28 +03:00
e7672588c6 refactor: rename primary_category to external_category 2026-01-14 02:59:11 +03:00
1fb280607a feat(integrations): добавить поле primary_category и маппинг категорий для интеграций
Добавлена поддержка выбора основной категории (primary_category) для товаров и наборов, а также новая модель IntegrationCategoryMapping для связи категорий с внешними площадками. Теперь можно указать категорию товара, которая будет использоваться при экспорте на внешние площадки (Recommerce, WooCommerce и др.), с возможностью настройки маппинга категорий для каждого типа интеграции.
2026-01-14 01:53:38 +03:00
7fd361aaf8 docs(products): обновить описание синхронизации флагов
Уточнена инструкция в модалке: акцент на выборе флагов для
синхронизации, а не на изменении значений.
Удалены временные скрипты отладки API.
2026-01-13 22:55:12 +03:00
06a9cc05ca feat(products): добавить пояснение к маркетинговым флагам в модалке синхронизации
Добавлен информационный блок с объяснением, что флаги синхронизируются
с текущими значениями из системы на удалённый сайт.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-13 15:47:40 +03:00
eff9778539 fix(recommerce): использовать in_stock для определения наличия в API
- Добавить константу RECOMMERCE_INFINITY_COUNT = 999999 в mappers.py
- Изменить логику: product.in_stock определяет count (0 или 999999)
- Добавить test_count.py для тестирования поля count
- Обновить документацию recommerce_api.md с секцией Product Availability

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-13 14:35:10 +03:00
36090382c1 feat(products): улучшить интерфейс массовой синхронизации с Recommerce
- Добавить секцию маркетинговых флагов в модалку синхронизации
- Добавить кнопки "Выбрать все" для групп полей
- Улучшить UX отображения списка товаров

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-13 13:21:08 +03:00
3cffa9b05d fix(recommerce): исправить имена полей маркетинговых флагов для API
- is_new → new (API ожидает 'new', не 'is_new')
- is_popular → popular (API ожидает 'popular', не 'is_popular')
- добавить тестовый скрипт test_is_new.py для проверки флагов

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-13 13:06:39 +03:00
2aa3de7bfa feat(products): добавить интерфейс маркетинговых флагов
Добавлены поля is_new, is_popular, is_special в форму продукта.
Настроено отображение полей в виде переключателей (switch).
Добавлено отображение бейджей флагов в списке товаров
и на странице детализации продукта.
2026-01-13 10:04:48 +03:00
ec9fd1c78b feat(products): маркетинговые флаги is_new, is_popular, is_special
- Добавлены поля в BaseProductEntity (наследуются в Product, ProductKit)
- Исправлен формат флагов в Recommerce mappers (1/0 вместо true/false)
- Добавлены чекбоксы в админку Product и ProductKit
- special = is_special OR has_discount (ручное + автоматическое)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-13 00:27:04 +03:00
52422ee8df feat(recommerce): флаг special для акционных товаров
- Исправлен формат флага: special=1/0 вместо is_special="true"/"false"
- Добавлен тестовый скрипт test_is_special.py для отладки API

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-13 00:04:35 +03:00
74d7d1186a fix(recommerce): сброс зачеркнутой цены через price_old=0
- Передаем price_old[amount]="0" для сброса старой цены
- Добавлены флаги is_new и is_popular в маппер
- Добавлен debug логгер для отладки типов данных

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-12 23:26:29 +03:00
707b45b16d feat: добавлена интеграция синхронизации с Recommerce 2026-01-12 21:45:31 +03:00
a5ab216934 feat(integrations): добавлена полная интеграция с Recommerce
Реализован клиент для работы с API Recommerce, включая:
- Клиент с методами для работы с товарами и заказами
- Сервисный слой для высокоуровневых операций
- Мапперы данных между форматами
- Обработку исключений

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-12 17:56:53 +03:00
9fceab9de1 feat(integrations): реализованы методы работы с API Recommerce
Добавлены методы для управления категориями и товарами (CRUD), а также
получение списка заказов с поддержкой пагинации и фильтрации.
2026-01-12 03:51:08 +03:00
b1b56fbb2e feat(integrations): добавлена проверка соединения для Recommerce
- Добавлен endpoint /test/<integration_id>/ для тестирования соединений
- RecommerceService упрощён под реальное API (x-auth-token + store_url)
- Кнопка "Проверить подключение" в UI с обработкой статусов
- Миграция для удаления IntegrationConfig и обновления полей

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-12 00:57:35 +03:00