Общая структура
Объекты представлений являют собой набор полей в специальной модели данных, они являются необязательными, если явно не указано иное.
name
(обязательно)полезно только в качестве мнемоники/человекочитаемого описания представления для обращения к конкретному представлению среди множества подобных
model
модель данных, связанная с представлением, если такое возможно (это не относится к представлениям QWeb)
priority
клиентские программы могут запрашивать представления с помощью
id
или(model, type)
. Для последнего будут найдены все виды для правильного типа и модели данных, и будет возвращен номер с самым низким номеромpriority
(это и будет «представление по умолчанию»).priority
также определяет порядок применения во время: ref:view inheritance <reference/views/inheritance>
arch
описание шаблона представления
groups_id
: Класс: поле
~ odoo.fields.Many2many
для групп, разрешенных для просмотра / использования текущего представленияinherit_id
идентификатор родительского представления, см Наследование., по умолчанию не используется
mode
механизм наследования, см. Наследование.. Если
inherit_id
снят,mode
может быть толькоprimary
. Еслиinherit_id
установлен, то по умолчанию будет назначен механизмextension
, но может быть явно установлен вprimary
application
функция веб-сайта, определяющая переключение представлений. По умолчанию представления всегда применяются
Наследование.
Соответствие представления
если представление запрашивается
(model, type)
, то идет сопоставление с правильной моделью и типом,mode = primary
с самым низким приоритетомкогда представление запрашивается по
id
, если его режим не являетсяprimary
, то сопоставляется его ближайший родитель с режимомprimary
Показать разрешение
Разрешение генерирует окончательный `` arch`` для запрошенного / согласованного `` первичного`` вида:
Если представление имеет родительский элемент, родительский элемент полностью разрешен, то применяются наследующие спецификации текущего представления
Если у представления нет родителя, его `` арка`` используется как есть
Просматриваются дочерние элементы текущего представления с режимом `` extension``, и их спецификации наследования применяются к глубине (применяется дочерний вид, затем его потомки, а затем его братья и сестры)
Результатом применения представлений дочерних элементов является окончательная `` арка``
Параметры наследования
Спецификации наследования состоят из локатора элемента, для сопоставления унаследованного элемента в родительском представлении и дочернего элемента, который будет использоваться для изменения унаследованного элемента.
Существует три типа локаторов элементов для соответствия целевому элементу:
Элемент `` xpath`` с атрибутом `` expr``. `` Expr`` - выражение XPath [#hasclass] _, примененное к текущей `` arch``, первый узел, который он находит, является совпадением
Элемент `` field`` с атрибутом `` name``, соответствует первому `` полюсу`` с тем же `` name``. Все остальные атрибуты игнорируются при совпадении
Любой другой элемент: первый элемент с тем же именем и идентичными атрибутами (игнорируя атрибуты `` position`` и `` version``) сопоставляется
Спецификация наследования может иметь необязательный атрибут `` position``, определяющий, как должен быть изменен согласованный узел:
- `` Внутри`` (по умолчанию)
Содержимое спецификации наследования добавляется к согласованному узлу
replace
Содержимое спецификации наследования заменяет согласованный узел. Любой текстовый узел, содержащий только `` $ 0`` в содержимом спецификации, будет заменен полной копией согласованного узла, эффективно обертывая согласованный узел.
after
Содержимое спецификации наследования добавляется к родительскому элементу сопоставленного узла после того, как соответствующий узел
before
Содержимое спецификации наследования добавляется к родительскому элементу сопоставленного узла, перед согласованным узлом
- Атрибуты:
В спецификации наследования должны быть элементы `` атрибута`` с атрибутом `` name`` и необязательным телом:
Если у элемента `` attribute`` есть тело, на соответствующем узле создается новый атрибут, названный по имени его `` name``, с текстом элемента `` attribute`` как значением
Если у элемента `` attribute`` нет тела, атрибут, названный после его `` name``, удаляется из согласованного узла. Если такой атрибут отсутствует, возникает ошибка
Спецификации представления применяются последовательно.
Списки
Корневым элементом представлений списков является `` <дерево> `` [#treehistory] _. Корень списка может иметь следующие атрибуты:
- Редактируемое
По умолчанию выбор строки представления списка открывает соответствующее: ref:
form view <reference / views / form>
. Атрибуты `` editable`` делают просмотр списка себя редактируемым на месте.Допустимыми значениями являются `` top`` и `` bottom``, в результате чего * новые * записи появляются соответственно в верхней или нижней части списка.
Архитектура для inline: ref:
вид формы <reference / views / form>
выводится из представления списка. Большинство атрибутов, действительных в полях и кнопках ref:form view <reference / views / form>
, таким образом, принимаются представлениями списков, хотя они могут и не иметь никакого значения, если представление списка не редактируется- По умолчанию Заказать
Переопределяет порядок представления, заменяя порядок по умолчанию для модели. Значение представляет собой список полей, разделенных запятой, с пометкой `` desc`` для сортировки в обратном порядке:
<tree default_order="sequence,name desc">
- Цвета:
Не рекомендуется, начиная с версии 9.0: Заменено на `` decoration - {$ name} ``
- 11 Шрифты 225
Не рекомендуется, начиная с версии 9.0: Заменено на `` decoration - {$ name} ``
- `` Украшения - {$ имя} ``
Позволяют изменять стиль текста строки на основе атрибутов соответствующей записи.
Значения - это выражения Python. Для каждой записи выражение оценивается с атрибутами записи как значения контекста и если `` true``, соответствующий стиль применяется к строке. Другими контекстными значениями являются
uid`
(id текущего пользователя) и`current_date`
(текущая дата в виде строки формы`yyyy-MM-dd`
).{$name}
can bebf
(font-weight: bold
),it
(font-style: italic
), or any bootstrap contextual color (danger
,info
,muted
,primary
,success
orwarning
).- `` Create``, `` edit``, `` delete``
Позволяет * dis * изменять соответствующее действие в представлении, устанавливая соответствующий атрибут на `` false``
limit
- the default size of a page. It should be a positive integer
- `` On_write``
Имеет смысл только в списке `` editable``. Должно быть именем метода в модели списка. Метод будет вызываться с `` id`` записи после создания или редактирования этой записи (в базе данных).
Метод должен возвращать список идентификаторов других записей для загрузки или обновления.
- Стринг
Альтернативный переводимый ярлык для представления
Не рекомендуется, начиная с версии 8.0: Больше не отображается
Возможными дочерними элементами представления списка являются:
Формы
Представления формы используются для отображения данных из одной записи. Их корневой элемент - `` <форма> [UNKNOWN NODE problematic]. Они состоят из обычного HTML с дополнительными структурными и семантическими компонентами.
Конструкционные элементы
Структурные компоненты обеспечивают структуру или «визуальные» функции с небольшой логикой. Они используются как элементы или наборы элементов в представлениях форм.
- Блокнот
Определяет секцию с вкладками. Каждая вкладка определяется через дочерний элемент `` page``. Страницы могут иметь следующие атрибуты:
- `` Строка`` (обязательно)
Заголовок вкладки
- `` Accesskey``
HTML accesskey
- `` attrs``
Стандартные динамические атрибуты, основанные на значениях записи
- Группа:
Используется для определения макетов колонок в формах. По умолчанию группы определяют 2 столбца, а большинство прямых потомков групп занимают один столбец. Прямые дочерние элементы `` поля`` по умолчанию отображают метку, а метка и само поле имеют colspan по 1 каждому.
Количество столбцов в `` group`` можно настроить с помощью атрибута `` col``, количество столбцов, взятых элементом, можно настроить с помощью `` colspan``.
Дети выложены горизонтально (пытается заполнить следующий столбец перед сменой строки).
Группы могут иметь атрибут `` строка``, который отображается как название группы
- новая строка
Полезен только внутри элементов `` group``, рано заканчивает текущую строку и сразу переключается на новую строку (без предварительного заполнения любого оставшегося столбца)
- --- SEPARATOR ---
Малый горизонтальный интервал с атрибутом `` строка`` ведет себя как заголовок раздела
- ЛИСТ
Может использоваться в качестве прямого потомка для `` формы`` для более узкой и гибкой формы макета
- Заголовок
В сочетании с `` sheet``, обеспечивает положение полной ширины над листом, как правило, используется для отображения кнопок рабочего процесса и виджетов состояния
Семантические компоненты
Семантические компоненты связывают и позволяют взаимодействовать с системой Odoo. Доступными семантическими компонентами являются:
- Кнопка
call into the Odoo system, similar to list view buttons. In addition, the following attribute can be specified:
special
- for form views opened in dialogs:
save
to save the record and close the dialog,cancel
to close the dialog without saving.
field
Визуализирует (и позволяет, возможно, выпуск) одного поля текущей записи. Возможные атрибуты:
name
(обязательно)Имя отображаемого поля
- Виджет
Поля имеют рендеринг по умолчанию в зависимости от их типа (например: class:
~ odoo.fields.Char
,: class:` ~ odoo.fields.Many2one`). Атрибуты `` widget`` позволяют использовать другой метод визуализации и контекст.- ОПЦИИ
Параметр конфигурации объекта JSON для виджета поля (включая виджеты по умолчанию)
- «Категория»
Класс HTML для установки на сгенерированный элемент, общие классы полей:
- `` Oe_inline``
Предотвратить обычный разрыв строки после полей
- `` Oe_left``, `` oe_right``
Floats поле в соответствующее направление
- `` Oe_read_only``, `` oe_edit_only``
Только отображает поле в соответствующем режиме формы
- `` Oe_no_button``
Позволяет избежать отображения кнопки навигации в классе:
~ odoo.fields.Many2one
- `` Oe_avatar``
Для полей изображения, отображает изображения как аватары (квадрат, максимальный размер 90x90, некоторые изображения)
groups
Только отображает поле для определенных пользователей
- `` On_change``
Вызывает указанный метод, когда значение этого поля редактируется, может генерировать обновления других полей или отображать предупреждения для пользователя
Не рекомендуется, начиная с версии 8.0: Использование: func:
odoo.api.onchange
на модели- `` attrs``
Динамические мета-параметры, основанные на значениях записи
- домен;
Только для реляционных полей, фильтры, применяемые при отображении существующих записей для выбора
context
Только для реляционных полей, контекст для передачи при получении возможных значений
- Только для чтения
Отображать поле как в режиме только для чтения, так и в редакторе, но никогда не редактируйте его
- Необходимое
Генерирует ошибку и предотвращает сохранение записи, если поле не имеет значения
- `` Nolabel``
Не отображать метку поля автоматически, имеет смысл только в том случае, если поле является прямым потомком элемента `` group``
- Подпись
Help сообщение для отображения в * empty * полях. Может заменять метки полей в сложных формах. * Не должно * быть примером данных, так как пользователи могут путать текст заполнитель с заполненными полями
mode
For: class:
~ odoo.fields.One2many
, режим отображения (тип представления) для использования для связанных записей поля. Одно из «дерева», «форма», «канбан» или «граф». По умолчанию используется `` tree`` (отображение списка)- помощь
Подсказка, отображаемая для пользователей при наведении курсора на поле или его метку
filename
Для двоичных полей, имя связанного поля, предоставляющего имя файла
- Пароль:
Указывает, что поле a: class:
~ odoo.fields.Char
хранит пароль и что его данные не должны отображаться
Рекомендации для бизнес-представлений
Представление для бизнеса предназначено для обычных пользователей, а не для продвинутых пользователей. Примеры: возможности, продукты, партнеры, задачи, проекты и т. Д.

В общем, бизнес-представление состоит из
Верхняя строка состояния (с техническим или бизнес-потоком),
Лист в середине (сама форма),
Нижняя часть с историей и комментариями.
Технически новые представления форм структурированы следующим образом в XML
<form>
<header> ... content of the status bar ... </header>
<sheet> ... content of the sheet ... </sheet>
<div class="oe_chatter"> ... content of the bottom part ... </div>
</form>
Строка состояния
Цель строки состояния - показать состояние текущей записи и кнопок действий.

Статус
Использует виджет `` statusbar`` и показывает текущее состояние красным цветом. Состояния, общие для всех потоков (например, заказ на продажу начинается как котировка, затем мы отправляем его, затем он становится полным заказом на продажу, и, наконец, он выполняется) должны быть видимыми всегда, но исключениями или состояниями в зависимости от конкретного подкаталога -flow должен быть видимым только при текущем.


Состояния отображаются в соответствии с порядком, используемым в поле (список в поле выбора и т. Д.). Состояния, которые всегда видимы, задаются атрибутом `` statusbar_visible``.
<field name="state" widget="statusbar"
statusbar_visible="draft,sent,progress,invoiced,done" />
Лист
Все бизнес-представления должны выглядеть как отпечатанные листы:

Элементы внутри `` <form> `` или `` <page> `` не определяют группы, элементы внутри них выложены в соответствии с нормальными правилами HTML. Их содержимое может быть сгруппировано в явном виде, используя элементы `` <group> `` или обычные `` <div> [UNKNOWN NODE problematic].
По умолчанию элемент
<группа>
определяет два столбца внутри, если не используется атрибут `` col = "n". Столбцы имеют одинаковую ширину (1 / n-й ширины группы). Используйте элемент ``<group>
для создания столбца полей.Чтобы присвоить заголовок разделу, добавьте атрибут `` string`` в элемент `` <group> ``
<group string="Time-sensitive operations">
Это заменяет прежнее использование `` <separator string = "XXX" /> [UNKNOWN NODE problematic].
Элемент `` <field> `` не создает метку, за исключением прямых потомков элемента
<group>
"[# обратная совместимость] _. Используйте: samp: [UNKNOWN NODE problematic]<label for = " {field_name}> [UNKNOWN NODE problematic]для создания метки поля.
Заголовки листов
На некоторых листах есть заголовки с одним или несколькими полями, а метки этих полей отображаются только в режиме редактирования.
Режим просмотра | РЕЖИМ РЕДАКТИРОВАНИЯ |
---|---|
![]() | ![]() |
Используйте HTML-текст, `` <div> , `` <h1> ``, `` <h2> `` ... для создания хороших заголовков и `` <label> `` с классом `` oe_edit_only
, чтобы Только отображать метку поля в режиме редактирования. Класс `` oe_inline`` сделает поля inline (вместо блоков): содержимое, следующее за этим полем, будет отображаться в той же строке, а не в строке под ней. Форма выше приведена в следующем XML
<label for="name" class="oe_edit_only"/>
<h1><field name="name"/></h1>
<label for="planned_revenue" class="oe_edit_only"/>
<h2>
<field name="planned_revenue" class="oe_inline"/>
<field name="company_currency" class="oe_inline oe_edit_only"/> at
<field name="probability" class="oe_inline"/> % success rate
</h2>
Группы и заголовки
Теперь столбец полей создается с элементом `` <group> [UNKNOWN NODE problematic], с необязательным заголовком.

<group string="Payment Options">
<field name="writeoff_amount"/>
<field name="payment_option"/>
</group>
Рекомендуется использовать в форме два поля полей. Для этого просто поместите элементы `` <group> [UNKNOWN NODE problematic], содержащие поля внутри элемента верхнего уровня `` <group> [UNKNOWN NODE problematic].
Чтобы сделать: ref: view extension <reference / views / inheritance>
simple, рекомендуется поместить атрибут
name`
в элементы` <group>
[UNKNOWN NODE problematic], поэтому новые поля могут быть легко добавлены справа место.
Особый случай: Промежуточные итоги
Некоторые классы определены для визуализации промежуточных итогов, например, в формах счетов:

<group class="oe_subtotal_footer">
<field name="amount_untaxed"/>
<field name="amount_tax"/>
<field name="amount_total" class="oe_subtotal_footer_separator"/>
<field name="residual" style="margin-top: 10px"/>
</group>
Заполнители и встроенные поля
Иногда полевые метки делают форму слишком сложной. Можно опустить полевые метки и вместо этого поместить поле в поле. Текст заполнителя отображается только в том случае, если поле пуст. Заполнитель должен указывать, что размещать внутри поля, он * не должен * быть примером, поскольку их часто путают с заполненными данными.
Можно также объединить поля вместе, сделав их «встроенными» внутри явного блока, например `` <div> [UNKNOWN NODE problematic]. Это позволяет группировать семантически связанные поля, как если бы они были едиными (составными) полями.
Следующий пример, взятый из формы * Leads [UNKNOWN NODE problematic], показывает как заполнители, так и встроенные поля (zip и city).
РЕЖИМ РЕДАКТИРОВАНИЯ | Режим просмотра |
---|---|
![]() | ![]() |
<group>
<label for="street" string="Address"/>
<div>
<field name="street" placeholder="Street..."/>
<field name="street2"/>
<div>
<field name="zip" class="oe_inline" placeholder="ZIP"/>
<field name="city" class="oe_inline" placeholder="City"/>
</div>
<field name="state_id" placeholder="State"/>
<field name="country_id" placeholder="Country"/>
</div>
</group>
Изображения
Изображения, такие как аватары, должны отображаться справа от листа. Форма продукта выглядит так:

Форма выше содержит элемент <sheet>, который начинается с:
<field name="product_image" widget="image" class="oe_avatar oe_right"/>
Руководства по формам конфигурации
Примеры конфигурационных форм: этапы, тип отпуска и т. Д. Это касается всех пунктов меню Конфигурация каждого приложения (например, Sales / Configuration).

Нет заголовка (потому что нет состояния, рабочего процесса, нет кнопки)
Без листа
Форматы диалоговых форм
Пример: "Расписание звонков" из возможности.

Избегать разделителей (заголовок уже находится в строке заголовка всплывающего окна, поэтому другой разделитель не имеет значения)
Избегать кнопок отмены (пользователь обычно закрывает всплывающее окно, чтобы получить тот же эффект)
Кнопки действий должны быть выделены (красным)
При наличии текстовой области используйте метку-заполнитель вместо метки или разделителя
Как и в регулярном представлении формы, поместите кнопки в элементе <header>
Рекомендации по настройке Wizards
Пример: Настройки / Конфигурация / Продажи.
Всегда в строке (без всплывающих окон)
Без листа
Удерживайте кнопку отмены (пользователи не могут закрыть окно)
Кнопка "Применить" должна быть красной
Графики
Графовое представление используется для визуализации агрегатов по нескольким записям или группам записей. Его корневым элементом является `` <graph> [UNKNOWN NODE problematic], который может принимать следующие атрибуты:
type
Один из `` bar`` (по умолчанию), `` pie`` и `` line``, тип используемого графика
- Составные
Используется только для карт `` bar``. Если присутствует и установлен в `` True``, стеки баров внутри группы
Единственным допустимым элементом в графовом представлении является `` поле``, которое может иметь следующие атрибуты:
- Имя (обязательно)
Имя поля для использования в виде графа. Если используется для группировки (а не объединения)
type
Указывает, должно ли поле использоваться как критерий группировки или как агрегированное значение внутри группы. Возможные значения:
- `` Row`` (по умолчанию)
Групп по указанному полю. Все типы графиков поддерживают по крайней мере один уровень группировки, некоторые могут поддерживать больше. Для сводных представлений каждая группа получает свою собственную строку.
- Колумбия
Используется только сводными таблицами, создает столбцы
- Управления
Поле для группировки внутри группы
- ИНТЕРВАЛ
По дате и дате и времени, группам по заданному интервалу (`` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` Фиксированное второе разрешение) или дата (фиксированное разрешение по дням).
Предупреждение
Агрегирование графовых представлений выполняется по содержимому базы данных, не сохраняемые поля функций нельзя использовать в графических представлениях
Повороты
Сводная таблица используется для визуализации агрегатов как «сводной таблицы». Его корневым элементом является `` <pivot> [UNKNOWN NODE problematic], который может принимать следующие атрибуты:
- `` disable_linking``
Установите для `` True``, чтобы удалить ссылки ячейки таблицы на просмотр списка.
- `` display_quantity``
Установите `` true``, чтобы отображать колонку количества по умолчанию.
Элементы, разрешенные в сводном представлении, являются такими же, как и для графического представления.
In Pivot view a field
can have a widget
attribute to dictate its format.
The widget should be a field formatter, of which the most interesting are
date
, datetime
, float_time
, and monetary
.
For instance a timesheet pivot view could be defined as:
<pivot string="Timesheet">
<field name="employee_id" type="row"/>
<field name="date" interval="month" type="col"/>
<field name="unit_amount" type="measure" widget="float_time"/>
</pivot>
Kanban
Вид канбана представляет собой визуализацию kanban board: он отображает записи как« карты », на полпути между: ref:` list view <reference / views / list> »и нередактируемым: ref:` form view <ссылка / вид / форма> [UNKNOWN NODE problematic]. Записи могут быть сгруппированы в столбцы для использования в визуализации рабочего процесса или в манипуляции (например, задачи или управление прогрессом) или негруппированы (используются просто для визуализации записей).
Корневым элементом представления Kanban является `` <kanban> [UNKNOWN NODE problematic], он может использовать следующие атрибуты:
- `` default_group_by``
Следует ли группировать представление канбанов, если группировка не указана с помощью действия или текущего поиска. Должно быть именем поля, в которое нужно группировать, если никакая другая группировка не указана
- По умолчанию Заказать
Порядок сортировки карточек, если пользователь еще не отсортировал записи (через просмотр списка)
- «Категория»
Добавляет HTML-классы к корневому элементу HTML представления Kanban
group_create
- whether the "Add a new column" bar is visible or not. Default: true.
group_delete
- whether groups can be deleted via the context menu. Default: true.
group_edit
- whether groups can be edited via the context menu. Default: true.
- `` Quick_create``
Следует ли создавать записи без переключения на вид. По умолчанию, `` quick_create`` включается, когда представление Kanban сгруппировано и отключено, если нет.
Установите `` true``, чтобы всегда включать его, и `` false``, чтобы всегда отключать его.
Возможными дочерними элементами элемента вида являются:
field
declares fields to use in kanban logic. If the field is simply displayed in the kanban view, it does not need to be pre-declared.
Возможные атрибуты:
- Имя (обязательно)
Имя поля для извлечения
- Индикатор выполнения
declares a progressbar element to put on top of kanban columns.
Возможные атрибуты:
field
(required)- the name of the field whose values are used to subgroup column's records in the progressbar
colors
(required)- JSON mapping the above field values to either "danger", "warning" or "success" colors
sum_field
(optional)- the name of the field whose column's records' values will be summed and displayed next to the progressbar (if omitted, displays the total number of records)
- Шаблоны
Определяет список шаблонов: ref:
reference / qweb
. Определение карточек может быть разбито на несколько шаблонов для ясности, но представления канбанов * должны * определять хотя бы один корневой шаблон `` kanban-box``, который будет отображаться один раз для каждой записи.Представление kanban использует в основном стандарт: ref:
javascript qweb <reference / qweb / javascript>
и предоставляет следующие контекстные переменные:- Виджет
Текущий: js: class:
KanbanRecord
, может быть использован для извлечения некоторой метаинформации. Эти методы также доступны непосредственно в контексте шаблона и не требуют доступа через `` widget``record
Объект со всеми запрошенными полями в качестве его атрибутов. Каждое поле имеет два атрибута `` значение`` и `` raw_value``, первый форматируется в соответствии с текущими пользовательскими параметрами, последний является прямым значением из: meth:
~ odoo.models.Model.read
(кроме Для полей даты и времени суток, отформатированных в соответствии с языковыми настройками пользователя <https://github.com/odoo/odoo/blob/a678bd4e/addons/web_kanban/static/src/js/kanban_record.js#L102> [UNKNOWN NODE problematic]_)- `` read_only_mode``
сам за себя
Кнопки и поля
Хотя большинство шаблонов Kanban являются стандартными: ref:
reference / qweb
, элементы представления Kanban` `` `` `` `` `` `` `` `` `` `` `` `` `` специально `Поля по умолчанию заменяются их форматированным значением, если они не соответствуют конкретным видам отображения канбанов
Кнопки и ссылки с атрибутом `` type`` стали выполнять операции, связанные с Одо, а не их стандартную функцию HTML. Возможные типы:
- `` Действие``, `` объект``
Стандартное поведение для: ref:
Кнопки Odoo <reference / views / list / button>
, можно использовать большинство атрибутов, относящихся к стандартным кнопкам Odoo.- Открыть
Открывает запись карты в режиме формы в режиме только для чтения
- Редактировать
Открывает запись карты в режиме формы в редактируемом режиме
delete
Удаляет запись карты и удаляет карту.
If you need to extend the Kanban view, see :js:class::the JS API <KanbanRecord>
.
Календарь
Представления календаря отображают записи как события в ежедневном, недельном или месячном календарях. Их корневым элементом является `` <календарь> [UNKNOWN NODE problematic]. Доступными атрибутами в представлении календаря являются:
- `` Date_start`` (обязательно)
Имя поля записи, содержащее дату начала события
- `` date_stop``
Имя поля записи, содержащее дату окончания события, если предоставляется `` date_stop``, записи становятся подвижными (с помощью перетаскивания) непосредственно в календаре
- `` date_delay``
- alternative to
date_stop
, provides the duration of the event instead of its end date (unit: day) - Цвет
- name of a record field to use for color segmentation. Records in the same color segment are allocated the same highlight color in the calendar, colors are allocated semi-randomly. Displayed the display_name/avatar of the visible record in the sidebar
readonly_form_view_id
- view to open in readonly mode
form_view_id
- view to open when the user create or edit an event. Note that if this attribute is not set, the calendar view will fall back to the id of the form view in the current action, if any.
- `` event_open_popup``
- If the option 'event_open_popup' is set to true, then the calendar view will open events (or records) in a FormViewDialog. Otherwise, it will open events in a new form view (with a do_action)
- `` Quick_add``
Включает создание быстрых событий при щелчке: запрашивает у пользователя `` имя`` и пытается создать новое событие именно с этим и временем события щелчка. Возвращается к полному диалоговому окну формы, если быстрое создание не выполняется
- Весь день
Имя булевского поля в записи, указывающее, отмечено ли соответствующее событие как дневное (а продолжительность не имеет значения)
mode
Режим отображения по умолчанию при загрузке календаря. Возможные атрибуты: `` день``, `` неделя``, `` месяц``
<field>
declares fields to aggregate or to use in kanban logic. If the field is simply displayed in the calendar cards.
Fields can have additional attributes:
- Невидимый
- use "True" to hide the value in the cards
avatar_field
- only for x2many field, to display the avatar instead the display_name in the cards
write_model
andwrite_field
- you can add a filter and save the result in the defined model, the filter is added in the sidebar
- Шаблоны
defines the Qweb template
calendar-box
. Cards definition may be split into multiple templates for clarity which will be rendered once for each record.Представление kanban использует в основном стандарт: ref:
javascript qweb <reference / qweb / javascript>
и предоставляет следующие контекстные переменные:- Виджет
- the current
KanbanRecord()
, can be used to fetch some meta-information. These methods are also available directly in the template context and don't need to be accessed viawidget
getColor
to convert in a color integergetAvatars
to convert in an avatar imagedisplayFields
list of not invisible fields record
- an object with all the requested fields as its attributes. Each field has
two attributes
value
andraw_value
event
- the calendar event object
format
- format method to convert values into a readable string with the user parameters
fields
- definition of all model fields parameters
user_context
сам за себя
- `` read_only_mode``
сам за себя
Ганта
Представления Гантта должным образом отображают диаграммы Ганта (для планирования).
Корневым элементом представлений gantt является `` <gantt /> [UNKNOWN NODE problematic], у него нет потомков, но он может принимать следующие атрибуты:
- `` Date_start`` (обязательно)
Имя поля, указывающее начало и дату начала события для каждой записи.
- `` date_stop``
Имя поля, указывающее конечную продолжительность события для каждой записи. Может быть заменено на `` date_delay``. Должна быть предоставлена одна (и только одна)
date_stop`
и`date_delay`
.Если это поле `` False`` для записи, предполагается, что это «событие точки», и конечная дата будет установлена на дату начала
- `` date_delay``
Название поля, указывающее продолжительность события
- `` duration_unit``
Одна из `` минуты``, `` часа`` (по умолчанию), `` день``, `` неделя``, `` месяц``, `` год``
- `` default_group_by``
Имя поля для группировки задач по
type
`` Gantt`` классический вид гантов (по умолчанию)
«Консолидировать» значения первых детей консолидируются в задаче Ганта
Дети `` планирование`` отображаются в задаче Ганта
- УКРЕПЛЕНИЯ
Имя поля для отображения значения консолидации в ячейке записи
- `` consolidation_max``
Словарь с полем «group by» в качестве ключа и максимальное значение консолидации, которое может быть достигнуто до отображения ячейки красным цветом (например,
{"user_id": 100}
)consolidation_exclude
name of the field that describe if the task has to be excluded from the consolidation if set to true it displays a striped zone in the consolidation line
Предупреждение
Словарное определение должно использовать двойные кавычки, `` {'user_id': 100} `` не является допустимым значением
- Стринг
Строка для отображения рядом со значением консолидации, если не указано, будет использоваться метка поля консолидации
- `` fold_last_level``
Если значение установлено, последний уровень группировки складывается
- `` round_dnd_dates``
Позволяет округлить даты начала и окончания задачи до ближайших шкалы
- `` Drag_resize``
Изменение размера заданий, по умолчанию `` true``
- Прогресс:
Имя поля, предоставляющего процент завершения для события записи, от 0 до 100
Диаграмма 4.
Вид диаграммы может использоваться для отображения ориентированных графиков записей. Корневой элемент `` <диаграмма> `` и не имеет атрибутов.
Возможными дочерними элементами диаграммы являются:
- `` Node`` (обязательно, 1)
Определяет узлы графа. Его атрибутами являются:
- 1.1 Цель
Модель Одо в узле
- Форма
Условное отображение формы, подобное цветам и шрифтам в: ref:
list view <reference / views / list>
. Единственной допустимой формой является `` rectangle`` (форма по умолчанию - многоточие)- цвет фона
То же, что и `` shape``, но условно отображает фоновый цвет для узлов. По умолчанию цвет фона - белый, единственной допустимой альтернативой является `` grey``.
- `` Arrow`` (обязательно, 1)
Определяет направленные ребра графа. Его атрибутами являются:
- `` Object`` (обязательно)
Модель Одо для края
- `` Source`` (обязательно)
: Class:
~ odoo.fields.Many2one
поле модели ребра, указывающее на запись исходного узла ребра- `` Destination`` (обязательно)
: Class:
~ odoo.fields.Many2one
поле модели ребра, указывающее на запись целевого узла ребра- Метка
Список атрибутов Python (в виде цитируемых строк). Соответствующие значения атрибутов будут объединены и отображены как метка ребра
- Метка
Пояснительная записка для диаграммы, атрибут `` строка`` определяет содержание заметки. Каждая `` метка`` выводится как параграф в заголовке диаграммы, легко видимая, но без особого акцента.
Поиск
Представления поиска представляют собой разрыв с предыдущими типами представления, поскольку они не отображают * content [UNKNOWN NODE problematic]: хотя они применяются к определенной модели, они используются для фильтрации содержимого другого представления (как правило, агрегированные представления, например: ref: reference / views / list `Или: ref:
reference / views / graph`). Помимо этого различия в случае использования они определяются одинаково.
Корневым элементом представлений поиска является <поиск>
[UNKNOWN NODE problematic]. Он не принимает атрибутов.
Возможные дочерние элементы в окне поиска:
field
Поля определяют домены или контексты с пользовательскими значениями. Когда генерируются поисковые домены, домены полей составляются друг с другом и с фильтрами, используя ** AND [UNKNOWN NODE problematic].
Поля могут иметь следующие атрибуты:
name
Имя поля для фильтрации
- Стринг
Ярлык поля
- оператору.
По умолчанию поля генерируют домены вида: samp:
[({name}, {operator}, {provided_value})]
, гдеname`
- это имя поля, а` provided_value`` - значение, предоставленное Пользователь, возможно фильтруемый или преобразованный (например, ожидается, что пользователь предоставит метку * значения поля выбора, а не само значение).Атрибут `` operator`` позволяет переопределять оператор по умолчанию, который зависит от типа поля (например, `` `` для полей с плавающей запятой, но `` ilike`` для полей символов)
- `` Filter_domain``
Полный домен, который можно использовать в качестве домена поиска поля, может использовать переменную `` self`` для вставки предоставленного значения в пользовательский домен. Может использоваться для генерации значительно более гибких доменов, чем только «оператор» (например, поиск по нескольким полям одновременно)
Если указаны как `` operator``, так и `` filter_domain``, приоритет имеет `` filter_domain``.
context
Позволяет добавлять контекстные ключи, в том числе предоставляемое пользователем значение (которое, как и для «домена», доступно как переменная `` self``). По умолчанию поля не генерируют домены.
Примечание
the domain and context are inclusive and both are generated if a
context
is specified. To only generate context values, setfilter_domain
to an empty list:filter_domain="[]"
groups
Сделать поле доступным только для определенных пользователей
- Виджет
Используйте конкретный виджет поиска для поля (единственный случай использования в стандарте Odoo 8.0 - это виджет `` selection`` для полей: class:
~ odoo.fields.Many2one
)- домен;
Если поле может обеспечить автоматическое завершение (например: class:
~ odoo.fields.Many2one
), отфильтрует возможные результаты завершения.
- Фильтр:
Фильтр - это предопределенный переключатель в окне поиска, его можно включить или отключить. Его основными целями являются добавление данных в контекст поиска (контекст, передаваемый в представление данных для поиска / фильтрации), или для добавления новых разделов в фильтр поиска.
Фильтры могут иметь следующие атрибуты:
- `` Строка`` (обязательно)
Метка фильтра
- домен;
A Odoo: ref:
domain <reference / orm / domains>
, будет добавлен к домену действия как часть домена поискаcontext
Словарь Python, объединенный в домен действия для создания домена поиска
name
Логическое имя фильтра, может использоваться для: ref:
включить его по умолчанию <reference / views / search / defaults>
, также может использоваться как: ref:hook наследования <reference / views / inheritance>
- помощь
Более длинный пояснительный текст для фильтра, может отображаться в виде всплывающей подсказки
groups
Делает фильтр доступным только для определенных пользователей
Совет
Добавлено в версии 7.0.
Последовательности фильтров (без разделения без фильтров) рассматриваются как включенные композиции: они будут состоять из `` ИЛИ``, а не обычного `` И``, например
<filter domain="[('state', '=', 'draft')]"/> <filter domain="[('state', '=', 'done')]"/>
Если выбраны оба фильтра, выберет записи, `` состояние`` которых `` draft`` или `` done``, но
<filter domain="[('state', '=', 'draft')]"/> <separator/> <filter domain="[('delay', '<', 15)]"/>
Если выбраны оба фильтра, выберет записи, `` состояние`` которых является `` сквозным`` [UNKNOWN NODE problematic], а ** `` задержка`` - ниже 15.
- --- SEPARATOR ---
Может использоваться для разделения групп фильтров в простых просмотрах поиска
- Группа:
Может использоваться для разделения групп фильтров, более читаемых, чем `` разделитель`` в сложных представлениях поиска
Поиск по умолчанию
Поля и фильтры поиска можно настроить с помощью контекста действия, используя ключи: samp: search_default_ {name}
. Для полей значение должно быть значением, установленным в поле, для фильтров это логическое значение. Например, предполагая, что `` foo`` является полем, а `` bar`` - фильтром, контекстом действия:
{
'search_default_foo': 'acro',
'search_default_bar': 1
}
Автоматически активирует фильтр `` bar`` и ищет поле `` foo`` для * acro [UNKNOWN NODE problematic].
Qweb
Представления QWeb являются стандартными: ref: reference / qweb
шаблоны внутри` arch`
. У них нет определенного корневого элемента.
Вид QWeb может содержать только один шаблон [#template_inherit] _, а имя шаблона * должно * совпадать с полным представлением (включая имя модуля): term: external id
.
: Ref: reference / data / template
следует использовать в качестве ярлыка для определения представлений QWeb.
По причинам обратной совместимости
Добавлена функция расширения для более простого соответствия в представлениях QWeb: `` hasclass (* classes) `` соответствует, если контекстный узел имеет все указанные классы
По историческим причинам он имеет свое происхождение из древовидных представлений, позже переориентированных на отображение большего количества таблиц / списков
Или нет шаблона, если это наследуемое представление, тогда: ref: он должен содержать только элементы xpath <reference / views / inheritance>