Здесь есть хороший учебник о том, как этого добиться в 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), но сили ссылка отображается правильно на боковой панели справа.
Я был бы признателен за любую информацию, которая может пролить свет на этот вопрос.
Спасибо.