2016-05-24 5 views
0

Предположим, у меня есть некоторые обязательные атрибуты модуля, которые не могут быть сделаны требуется по причинам, которые противоречат определенным действиям, таким как дубликат. Чтобы эти атрибуты были необходимы, их можно легко преодолеть, создав ValidationErrors.Как сделать поля необходимыми (по раскраске) ​​

Однако, я хотел бы настроить параметры поля в виде формы файлов xml, чтобы эти поля отображались пользователю в синем (как если бы они были необходимы).

PS

Я попытался все следующие

<field name="name" bgcolor="blue" fgcolor="red" color="black" colors="purple"/> 

просто чтобы увидеть, если любой из них будет работать.

Я также сбросил локальный сервер и обновил сам модуль, считая, что, возможно, файлы xml не всегда перезагружаются при перезагрузке сервера.

Любые идеи по пользовательским полям окраски в виде формы были бы очень полезными.

ответ

2

Вы можете добавить их в классы, как это:

<field name="name" class="red"/> 

.red { 
    background:red; 
    /* additional css here */ 
} 
+0

Мне нравится, что это на самом деле что-то произошло, хотя этот фон сделал его несколько иначе, чем я надеялся. Этот вид сделал все поле, исключая фактический блок выбора другого цвета. – BenSmith

+0

Это был определенно правильный подход. Хотя требуется гораздо более глубокое понимание css. – BenSmith

0

Вы должны написать эти атрибуты дерева тега, как это:

<tree colors="black" bgcolor="yellow:name == other" string="Invoice"> 
    <field name="name" /> 
    <field name="other" /> 
</tree> 

Example from odoo source

В .xml стороне <,>, < =,> = & не поддерживается. Таким образом, мы должны использовать &lt;, &gt;, &lt;=&gt;= и &amp;

+0

Мне нравится этот подход, хотя я надеялся сделать что-то подобное в форма вид ... – BenSmith

0

XML атрибуты «официальных узлов» проверяются, вы не можете добавить их как тебе нравится. При разработке web_field_style для v6 мне пришлось patch .rng validation. Я не думаю, что модуль был перенесен на v8 или v9 (см OCA web repo), так что я думаю, что у вас есть 2 варианта:

  1. порт, к которому модуль
  2. использовать оболочку DIV с пользовательского класса (да , вы можете написать HTML в экранных форм), смотрите пример ниже

    < сНу класс = "бла"> < имя поля = "start_date" Colspan = "2" класс = "Foo" /> </div>

В этом примере класс «foo» на поле будет удален, но обертывание div с классом «bla» останется там;)

+0

Хорошо, это самый близкий я до сих пор. Однако с этой оберткой

имя поля исчезло и оставило меня только с полем выбора ... – BenSmith

+0

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

+0

Снова ближе (позвольте мне пояснить, что это поле уже/содержится в ), но теперь шрифт ярлыка выглядит иначе, чем остальные ** и ** (что более важно) он уничтожил форматирование (т. е. окно выбора теперь находится под меткой). – BenSmith