Как установить пользовательские цвета для событий просмотра календаря Odoo 12? - PullRequest
0 голосов
/ 15 февраля 2019

Здесь есть хороший учебник о том, как этого добиться в Odoo-8: Учебник , но он не работает в Odoo-12.

Собственно Odoo позволяет вам установитьполе вашей модели в качестве основы для цветовой дифференциации в календарном представлении.

 <calendar ...  color="your_model_field">

Проблема в том, что он будет автоматически решать, какой цвет назначать каждому значению.
Мне нужно иметь возможность ** * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *..js в строке 266
Я нашел многообещающую функцию, которая, по-видимому, отвечает за выбор цвета для установки.

    getColor: function (key) {
        if (!key) {
            return;
        }
        if (this.color_map[key]) {
            return this.color_map[key];
        }
        // check if the key is a css color
        if (typeof key === 'string' && key.match(/^((#[A-F0-9]{3})|(#[A-F0-9]{6})|((hsl|rgb)a?\(\s*(?:(\s*\d{1,3}%?\s*),?){3}(\s*,[0-9.]{1,4})?\))|)$/i)) {
            return this.color_map[key] = key;
        }
        var index = (((_.keys(this.color_map).length + 1) * 5) % 24) + 1;
        this.color_map[key] = index;
        return index;
    },

Эта функция получает значение вашего поля (для каждого события календаря) и возвращает цвет, который будет использоваться «предположительно» в качестве фона для квадрата события календаря.

Согласно второму оператору if, если вам удастся создать экземпляр класса CalendarRenderer с объектом color_map, в котором значения вашего поля в качестве ключей и коды цветов будут в качестве значений, у вас должно быть все в порядке.

Согласнотретий оператор if, если значения вашего поля являются строками с цветовыми кодами (#FFF, rgb (x, y, z) и т. д.), они будут установлены в объекте color_map и возвращены для использования в качестве фоновых цветов.

Последняя часть, которую я предполагаю, состоит в том, как odoo выбирает цвет, когда не предоставляется сопоставление.

Я пробовал оба подхода с одним и тем же эффектом:

Изображение, отображающеепредставление календаря

А именно, все события календаря отображаются с цветом по умолчанию, взятым из таблицы стилей fullcalendar.css (строка 529), но сили ссылка отображается правильно на боковой панели справа.

Я был бы признателен за любую информацию, которая может пролить свет на этот вопрос.

Спасибо.

...