2017-01-09 12 views
1

Вычисленное поле в древовидном представлении не обновляется после возврата из значений редактирования для строки с использованием всплывающего окна формы. (после того, как ребенок был сохранен или возвращен из всплывающего окна, но до сохранения родительской записи)Odoo v9 вычисленное поле в дереве не обновляется после всплывания до сохранения записи

Чтобы привести пример: добавьте новое вычисленное поле в строки заказа клиента, а затем добавьте вычисленное поле в продажу Закладка «ЗАКАЗ» на вкладке «Заказ» (сама по себе является древовидной структурой в форме заказа на продажу). Затем отрегулируйте форму заказа продажи так, чтобы редактирование строк заказа продажи выполнялось через форму (то есть всплывающее окно) (вместо редактирования строк внутри дерева, отключить editable = 'bottom')

После тестирования появляется что метод вычисляемых полей выполняется в представлении формы, значение должно обновляться.

Дисплей на линии (древовидный вид) должен отображать новое значение после возврата из всплывающего окна, однако оно не отображается (все еще отображается старое значение). (это корректно обновляется после сохранения родителя)

Это работает для других существующих полей (например, цена), которые отображают новое значение в строке (древовидное представление) после редактирования этого значения во всплывающем окне (до родитель сохраняется).

Почему вычисленное поле показывает старое значение?

ответ

1

Похоже, что поскольку вычисленное поле не было в виде формы (всплывающее окно), хотя функция вычисления выполнялась, значение в представлении строки после возвращения из формы не обновлялось (до сохранения родительского элемента).

После того, как я добавил вычисленное поле (invisible = 1) к виду формы (всплывающее окно), окно линии было успешно обновлено при возврате.

Я не знаю почему, но я предполагаю, что это связано с кешем или api. Возможно, что значения строк обновляются с помощью возвращаемых значений из представления формы (не уверены в этом), и поэтому, если рассматриваемое поле не находится в представлении формы, оно не возвращается, а строка остается с предыдущее значение.

1

Попробуйте добавить @api.depends('any_field_name') выше функции вычисления, она должна решить вашу проблему.

У Odoo есть ошибка об вычисленных полях, описанных в этом issue, что он не вычисляет вычисленные поля без зависимостей.

Сообщите мне, если мое решение будет работать на вас.

+0

Я добавил множество различных комбинаций, однако это не устранило проблему. В моем случае функция вызывалась, она просто не обновляла вид линии при возврате из формы. Также сложно определить, выполнялась ли функция как часть вида формы или вида линии. Снова я сделал несколько комбинаций. Ни один из них не смог вызвать обновление в виде строки. – Palza

+0

Я не знал об этой ошибке в вычисленных полях. Ваше решение отлично работало для меня. – MouTio