Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c8092da370 | ||
|
|
4f105822c6 |
@@ -157,7 +157,7 @@ func (r *PartnumberBookRepository) listCatalogItems(partnumbers localdb.LocalStr
|
|||||||
query := r.db.Model(&localdb.LocalPartnumberBookItem{}).Where("partnumber IN ?", []string(partnumbers))
|
query := r.db.Model(&localdb.LocalPartnumberBookItem{}).Where("partnumber IN ?", []string(partnumbers))
|
||||||
if search != "" {
|
if search != "" {
|
||||||
trimmedSearch := "%" + search + "%"
|
trimmedSearch := "%" + search + "%"
|
||||||
query = query.Where("partnumber LIKE ? OR lots_json LIKE ? OR description LIKE ?", trimmedSearch, trimmedSearch, trimmedSearch)
|
query = query.Where("partnumber LIKE ? OR CAST(lots_json AS TEXT) LIKE ? OR description LIKE ?", trimmedSearch, trimmedSearch, trimmedSearch)
|
||||||
}
|
}
|
||||||
|
|
||||||
var total int64
|
var total int64
|
||||||
|
|||||||
20
releases/v1.16/RELEASE_NOTES.md
Normal file
20
releases/v1.16/RELEASE_NOTES.md
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
# QuoteForge v1.16
|
||||||
|
|
||||||
|
Дата релиза: 2026-06-16
|
||||||
|
Тег: `v1.16`
|
||||||
|
|
||||||
|
Предыдущий релиз: `v1.15`
|
||||||
|
|
||||||
|
## Ключевые изменения
|
||||||
|
|
||||||
|
- self-heal застрявших pending changes: конфигурации со ссылкой на удалённый проект теперь автоматически переназначаются на «Без проекта» вместо вечной ошибки;
|
||||||
|
- авторемонт очереди (`RepairPendingChanges`) запускается автоматически перед каждым push-циклом;
|
||||||
|
- после 20 неудачных попыток неисправимые записи удаляются из очереди (логируются как ERROR);
|
||||||
|
- неизвестные `entity_type` и `operation` в очереди дропаются с предупреждением вместо блокировки;
|
||||||
|
- детальная диагностика в `qt_client_schema_state.last_sync_error_text`: теперь JSON-массив с `uuid`/`op`/`attempts`/`error` по каждому застрявшему изменению;
|
||||||
|
- книги партномеров синхронизируются автоматически вместе с прайслистами.
|
||||||
|
|
||||||
|
## Запуск на macOS
|
||||||
|
|
||||||
|
Снимите карантинный атрибут через терминал: `xattr -d com.apple.quarantine /path/to/qfs-darwin-arm64`
|
||||||
|
После этого бинарник запустится без предупреждения Gatekeeper.
|
||||||
@@ -66,7 +66,7 @@
|
|||||||
<div id="active-book-section" class="hidden bg-white rounded-lg shadow overflow-hidden">
|
<div id="active-book-section" class="hidden bg-white rounded-lg shadow overflow-hidden">
|
||||||
<div class="px-4 py-3 border-b flex items-center justify-between gap-3">
|
<div class="px-4 py-3 border-b flex items-center justify-between gap-3">
|
||||||
<span class="font-semibold text-gray-800 whitespace-nowrap">Сопоставления активного листа</span>
|
<span class="font-semibold text-gray-800 whitespace-nowrap">Сопоставления активного листа</span>
|
||||||
<input type="text" id="pn-search" placeholder="Поиск по PN или LOT..."
|
<input type="text" id="pn-search" placeholder="Поиск по PN, LOT или описанию..."
|
||||||
class="flex-1 max-w-xs px-3 py-1.5 border rounded text-sm focus:ring-2 focus:ring-blue-400 focus:outline-none"
|
class="flex-1 max-w-xs px-3 py-1.5 border rounded text-sm focus:ring-2 focus:ring-blue-400 focus:outline-none"
|
||||||
oninput="onItemsSearchInput(this.value)">
|
oninput="onItemsSearchInput(this.value)">
|
||||||
<span id="pn-count" class="text-xs text-gray-400 whitespace-nowrap"></span>
|
<span id="pn-count" class="text-xs text-gray-400 whitespace-nowrap"></span>
|
||||||
|
|||||||
Reference in New Issue
Block a user