fix: Исправить сохранение приоритетов товаров в группе вариантов
Проблема: при перемещении товаров стрелками вверх/вниз приоритеты изменялись только в UI, но при сохранении их значения не обновлялись в БД и возвращались в исходное состояние. Причина: после сохранения формсета в view.form_valid() вызывалась функция _recalculate_priorities(), которая перезаписывала все приоритеты по ID товаров, игнорируя значения из формсета. Решение: 1. Удалена функция _recalculate_priorities() которая перезаписывала приоритеты 2. Теперь приоритеты сохраняются напрямую из формсета (inlineformset содержит поле 'priority') 3. Улучшен JavaScript селектор в updatePriorities() для более надёжного нахождения поля priority 4. Добавлено логирование в консоль для отладки (console.log) Теперь при перемещении товаров стрелками и нажатии "Сохранить" приоритеты правильно сохраняются в БД. 🤖 Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -293,9 +293,17 @@ document.addEventListener('DOMContentLoaded', function() {
|
||||
let priority = 1;
|
||||
container.querySelectorAll('.item-row:not([style*="display: none"])').forEach(row => {
|
||||
const priorityCell = row.querySelector('.item-priority');
|
||||
const priorityInput = row.querySelector('[name$="-priority"]');
|
||||
if (priorityCell) priorityCell.textContent = priority;
|
||||
if (priorityInput) priorityInput.value = priority;
|
||||
const priorityInput = row.querySelector('input[name$="-priority"]');
|
||||
|
||||
if (priorityCell) {
|
||||
priorityCell.textContent = priority;
|
||||
}
|
||||
|
||||
if (priorityInput) {
|
||||
priorityInput.value = priority;
|
||||
console.log(`Обновлено поле приоритета: ${priorityInput.name} = ${priority}`);
|
||||
}
|
||||
|
||||
priority++;
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user