Изменить поле выбора цвета точки

Моя цель — добавить новый виджет 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)

В вашем вопросе отсутствует минимальный воспроизводимый пример того, что у вас уже есть.

mozway 23.06.2024 12:26

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

jdweng 23.06.2024 13:24

я обновил свой вопрос @mozway

Rahma Begag 23.06.2024 13:27

как это сделать @jdweng

Rahma Begag 23.06.2024 13:28

См. cybrosys.com/blog/…

jdweng 23.06.2024 22:19

это не то, чего я хочу, я добавлю картинку в свой пост, чтобы объяснить, чего я хочу

Rahma Begag 24.06.2024 10:56
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
6
78
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете расширить виджет состояния выбора

ЯС:

  /** @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.

это сработало отлично, большое спасибо

Rahma Begag 27.06.2024 10:21

Другие вопросы по теме