odoo-8
Пользовательские виджеты для полей
Поиск…
замечания
- убедитесь, что вы правильно добавили файл javascript в свой модуль
- не забудьте добавить 'web' в качестве зависимости в __openerp__.py:
'depends': ['web',....]
Пользовательский виджет для числовых полей для использования в TreeView
В приведенном ниже примере виджет демонстрирует, как отформатировать отдельные ячейки столбца TreeView условно, в зависимости от значения поля в конкретной ячейке. Если значение поля отрицательное, оно будет отображаться красным цветом, а символ минус будет скрыт, иначе он будет отображаться в обычном цвете.
Виджет должен быть написан на JavaScript, позволяет использовать custom_widget_name
как имя для нового виджета, а your_module_name
- это техническое имя вашего модуля (то же, что и имя корневого каталога вашего модуля)
Uunder static / src / js / folder в вашем модуле добавляет файл javascript (скажем, static / src / js / custom_widget .js) с настраиваемым виджемом :
openerp.your_module_name = function (instance) {
instance.web.list.columns.add('field.custom_widget_name', 'instance.your_module_name.custom_widget_name');
instance.your_module_name.custom_widget_name = instance.web.list.Column.extend({
_format: function (row_data, options) {
res = this._super.apply(this, arguments);
var amount = parseFloat(res);
if (amount < 0){
return "<font color='#ff0000'>"+(-amount)+"</font>";
}
return res
}
});
//
//here you can add more widgets if you need, as above...
//
};
приведенный выше примерный виджет может использоваться в представлении списка для поля типа float и применяется к следующим правилам:
- Отрицательные числа:
- Показаны красным цветом.
- Минус-символ (символ «-») «скрыт».
- Для положительных чисел используется макет по умолчанию.
Этот примерный виджет может быть применен к полю в древовидной структуре Odoo. Вы можете использовать виджет, подобный этому, для столбца, в котором вам нужно применить специальные правила:
. . . <tree > . . . <field name="some_field" widget="my_widget" /> . . . </tree> . . .