food-market/app
Claude 26b401e507 Цена по фасовке не подставлялась после удаления строки
Обработчики строк запоминали номер строки в момент создания. После
удаления любой строки всё, что было ниже, съезжает вверх, и запомненный
номер начинает указывать на соседа или за пределы таблицы. Строка молча
переставала работать целиком: выбираешь фасовку — цена не меняется,
меняешь товар — не пересобирается список фасовок. Приходилось править
цену руками.

Теперь обработчики привязаны к самому виджету, а строка ищется по нему
в момент вызова. То же исправлено в быстром вводе, где строк больше
и удаляют их чаще.

Заодно найдена мина, которую посадил я сам в разделе статистики:
self.metric = QComboBox() на QWidget затеняет метод QWidget.metric(),
который Qt зовёт при смене стиля. Падало это в чужом месте и с невнятным
«object is not callable». Такая же история была с self.layout в сводке.
Оба переименованы, добавлен тест, который обходит все виджеты и проверяет,
что ни один атрибут не затеняет метод Qt.

И подсказка в карточке товара: себестоимость фасовки нигде не вводится,
она выводится из цены базовой единицы. Теперь под таблицей фасовок прямо
написано, какая сумма подставится в закупку.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-23 17:50:42 +03:00
..
ui Цена по фасовке не подставлялась после удаления строки 2026-08-23 17:50:42 +03:00
__init__.py Учёт закупки и перепродажи булок 2026-08-22 17:29:53 +03:00
crypto.py Учёт закупки и перепродажи булок 2026-08-22 17:29:53 +03:00
gitsync.py Отдельный репозиторий для базы, фасовки товара, ввод истории 2026-08-22 21:25:39 +03:00
journal.py Чаевые 2026-08-23 00:56:26 +03:00
ledger.py Чаевые 2026-08-23 00:56:26 +03:00
main.py Учёт закупки и перепродажи булок 2026-08-22 17:29:53 +03:00
models.py Чаевые 2026-08-23 00:56:26 +03:00
money.py Учёт закупки и перепродажи булок 2026-08-22 17:29:53 +03:00
paths.py Отдельный репозиторий для базы, фасовки товара, ввод истории 2026-08-22 21:25:39 +03:00
stats.py Раздел статистики 2026-08-23 02:33:11 +03:00
storage.py Чаевые 2026-08-23 00:56:26 +03:00