Моя цель — добавить новый виджет state_selection (аналогично тому, который присутствует в представлении Канбан задач модуля проекта) с тремя (3) вариантами/цветами:
То есть я хочу, чтобы новое состояние имело новый цвет, например, оранжевый.
Желательно, чтобы я сделал это сам, если это не слишком сложно; в противном случае подойдет существующий модуль.
Я понятия не имею, как это сделать, и не могу найти никакой документации по этому поводу. Можете ли вы мне помочь или указать модуль, чтобы сделать это просто?
это XML-код
<xpath expr = "//field[@name='kanban_state']" position = "replace">
<field name = "kanban_state_child" widget = "state_selection"/>
</xpath>
и это определение поля
kanban_state_child = fields.Selection([
('on_hold', 'En attente'),
('normal', 'En cours'),
('done', 'Prêt'),
('blocked', 'Bloquée')], string='Status',
copy=False, default='on_hold', required=True, readonly=False, store=True)
Виджет представляет собой просто элементы управления (кнопки) и выбрано три цвета. выбранные цвета могут быть выбраны из стандартных цветов или из любых ваших собственных цветов из RGB.
я обновил свой вопрос @mozway
как это сделать @jdweng
это не то, чего я хочу, я добавлю картинку в свой пост, чтобы объяснить, чего я хочу
Вы можете расширить виджет состояния выбора
ЯС:
/** @odoo-module */
import { registry } from '@web/core/registry';
import { StateSelectionField } from '@web/views/fields/state_selection/state_selection_field';
export class CustomStateSelectionField extends StateSelectionField {
setup() {
super.setup();
this.colors = {
normal: "orange",
done: "green",
blocked: "red",
};
}
get showLabel() {
return true;
}
}
registry.category('fields').add('custom_state_selection', CustomStateSelectionField);
СССС:
.o_status {
@extend .o_status;
&.o_status_orange {
@extend .bg-warning;
}
}
Добавьте поля под записью assets
в файле __manifest__.py
:
'assets': {
'web.assets_backend': [
"MODULE_NAME/static/src/js/state_selection.js",
"MODULE_NAME/static/src/scss/state_selection.scss",
],
},
И установите атрибут виджета поля выбора на custom_state_selection
.
это сработало отлично, большое спасибо
В вашем вопросе отсутствует минимальный воспроизводимый пример того, что у вас уже есть.