Xem bản ghi¶
Chế độ xem là những gì xác định cách hiển thị bản ghi cho người dùng cuối. Chúng được chỉ định trong XML và được lưu trữ dưới dạng bản ghi, nghĩa là chúng có thể được chỉnh sửa độc lập với các mô hình mà chúng đại diện. Chúng linh hoạt và cho phép tùy chỉnh màn hình mà chúng điều khiển ở mức độ cao. Tồn tại nhiều loại chế độ xem. Mỗi cái đại diện cho một chế độ trực quan hóa: biểu mẫu, danh sách, kanban, v.v.
Cấu trúc chung¶
Các khung nhìn cơ bản thường chia sẻ cấu trúc tối thiểu chung được xác định bên dưới. Phần giữ chỗ được viết hoa tất cả.
<record id="ADDON.MODEL_view_TYPE" model="ir.ui.view">
<field name="name">NAME</field>
<field name="model">MODEL</field>
<field name="arch" type="xml">
<VIEW_TYPE>
<views/>
</VIEW_TYPE>
</field>
</record>
Xem các loại¶
- Biểu mẫu
Hiển thị và chỉnh sửa dữ liệu từ một bản ghi.
- Danh sách
Xem và chỉnh sửa nhiều bản ghi.
- Tìm kiếm
Áp dụng bộ lọc và thực hiện tìm kiếm. Kết quả được hiển thị trong danh sách hiện tại, kanban... view.
- Kanban
Hiển thị các bản ghi dưới dạng "thẻ", có thể định cấu hình dưới dạng mẫu nhỏ.
- Qweb
Mẫu báo cáo, website...
- Graph
Trực quan hóa các tập hợp trên một số bản ghi hoặc nhóm bản ghi.
- Pivot
Hiển thị các tập hợp dưới dạng bảng tổng hợp.
- Lịch
Hiển thị các bản ghi dưới dạng sự kiện theo lịch hàng ngày, hàng tuần, hàng tháng hoặc hàng năm.
- Nhóm Enterprise feature
Hiển thị và hiểu cách một số dữ liệu thay đổi trong một khoảng thời gian.
- Gantt Enterprise feature
Hiển thị các bản ghi dưới dạng biểu đồ Gantt.
- Grid Enterprise feature
Hiển thị thông tin được tính toán trong các ô số; khó có thể cấu hình được.
- Bản đồ Enterprise feature
Hiển thị các bản ghi trên bản đồ và các tuyến đường giữa chúng.
Lĩnh vực¶
Xem bản ghi hiển thị một số trường.
Ghi chú
Bối cảnh hiện tại và quyền truy cập của người dùng cũng có thể ảnh hưởng đến khả năng xem.
Di sản¶
Kế thừa cho phép tùy chỉnh các chế độ xem được phân phối. Chẳng hạn, nó có thể thêm nội dung khi các mô-đun được cài đặt hoặc cung cấp các màn hình khác nhau tùy theo hành động.
Các khung nhìn kế thừa thường có chung cấu trúc được xác định bên dưới. Phần giữ chỗ được viết hoa tất cả. Chế độ xem tổng hợp này sẽ cập nhật một nút được XPath nhắm mục tiêu và một nút khác được nhắm mục tiêu theo tên và thuộc tính của nó.
<record id="ADDON.MODEL_view_TYPE" model="ir.ui.view">
<field name="model">MODEL</field>
<field name="inherit_id" ref="VIEW_REFERENCE"/>
<field name="mode">MODE</field>
<field name="arch" type="xml">
<xpath expr="XPATH" position="POSITION">
<CONTENT/>
</xpath>
<NODE ATTRIBUTES="VALUES" position="POSITION">
<CONTENT/>
</NODE>
</field>
</record>
Các trường inherit_id
và mode
xác định độ phân giải view. Các phần tử xpath
hoặc NODE
biểu thị các thông số inheritance. Thuộc tính expr
và position
chỉ định inheritance location.
Xem độ phân giải¶
Độ phân giải tạo ra arch
cuối cùng cho chế độ xem chính
được yêu cầu/khớp như sau:
nếu chế độ xem có chế độ xem gốc, chế độ xem gốc được giải quyết hoàn toàn thì thông số kế thừa của chế độ xem hiện tại sẽ được áp dụng;
nếu chế độ xem không có cha mẹ,
arch
của nó được sử dụng nguyên trạng;Các chế độ xem con của chế độ xem hiện tại với chế độ
tiện ích mở rộng
được tra cứu và các thông số kế thừa của chúng được áp dụng theo chiều sâu trước tiên (chế độ xem con được áp dụng, sau đó là các chế độ xem con, sau đó là các chế độ xem anh chị em của nó).
Việc kế thừa được áp dụng theo trường inherit_id
. Nếu một số bản ghi chế độ xem kế thừa cùng một chế độ xem thì thứ tự được xác định theo mức độ ưu tiên
.
Kết quả của việc áp dụng các khung nhìn con mang lại arch
cuối cùng.
Thông số kế thừa¶
Thông số kế thừa được áp dụng tuần tự và bao gồm:
một bộ định vị phần tử để khớp với phần tử được kế thừa trong chế độ xem gốc;
phần tử con để sửa đổi phần tử được kế thừa.
Có ba loại bộ định vị phần tử:
Phần tử
xpath
có thuộc tínhexpr
.expr
là một XPath biểu thức1 được áp dụng choarch
hiện tại, khớp với nút đầu tiên mà nó tìm thấy;Phần tử
field
có thuộc tínhname
, khớp với trường đầu tiên có cùngname
.Ghi chú
Tất cả các thuộc tính khác đều bị bỏ qua.
Bất kỳ phần tử nào khác, khớp với phần tử đầu tiên có cùng
name
và các thuộc tính giống hệt nhau.Ghi chú
Các thuộc tính
position
vàversion
bị bỏ qua.
- 1
Một hàm mở rộng được thêm vào để khớp đơn giản hơn trong chế độ xem QWeb:
hasclass(*classes)
khớp nếu nút ngữ cảnh có tất cả các lớp được chỉ định.
Example
<xpath expr="page[@name='pg']/group[@name='gp']/field" position="inside">
<field name="description"/>
</xpath>
<div name="name" position="replace">
<field name="name2"/>
</div>
Vị trí thừa kế¶
Các thông số kế thừa chấp nhận một thuộc tính vị trí
tùy chọn, mặc định là bên trong
, chỉ định cách sửa đổi nút phù hợp.
- inside¶
Nội dung của thông số kế thừa được thêm vào nút phù hợp.
Example
<notebook position="inside"> <page string="New feature"> ... </page> </notebook>
- after¶
Nội dung của thông số kế thừa được thêm vào nút cha của nút phù hợp sau nút phù hợp.
Example
<xpath expr="//field[@name='x_field']" position="after"> <field name="x_other_field"/> </xpath>
- before¶
Nội dung của thông số kế thừa được thêm vào nút cha của nút phù hợp trước nút phù hợp.
Example
<field name=x_field" position="before"> <field name="x_other_field"/> </field>
- replace¶
Nội dung của thông số kế thừa sẽ thay thế nút phù hợp. Bất kỳ nút văn bản nào chỉ chứa
$0
trong nội dung của thông số kỹ thuật đều được thay thế bằng một bản sao của nút phù hợp, bao bọc nút phù hợp một cách hiệu quả.Example
<xpath expr="//field[@name='x_field']" position="replace"> <div class="wrapper"> $0 </div> </xpath>
- attributes¶
Nội dung của thông số kế thừa chỉ được tạo từ các phần tử
attribute
, mỗi phần tử có thuộc tínhname
và phần nội dung tùy chọn.Nếu phần tử
attribute
có phần nội dung, một thuộc tính mới được đặt tên theoname
của nó sẽ được thêm vào nút phù hợp với văn bản của phần tửattribute
làm giá trị.Nếu phần tử
attribute
không có nội dung, thuộc tính được đặt tên theoname
của nó sẽ bị xóa khỏi nút phù hợp.Nếu phần tử
attribute
có thuộc tínhadd
, thuộc tínhremove
hoặc cả hai, thì giá trị của thuộc tính của nút phù hợp được đặt tên theoname
sẽ được tính toán lại để tính (các) giá trị củaadd
, ` xóa` và thuộc tínhdấu phân cách
tùy chọn mặc định là,
.add
bao gồm (các) giá trị của nó, được phân tách bằngdấu phân cách
.remove
xóa (các) giá trị của nó, được phân tách bằngdấu phân cách
.
Example
<field name="x_field" position="attributes"> <attribute name="invisible">True</attribute> <attribute name="class" add="mt-1 mb-1" remove="mt-2 mb-2" separator=" "/> </field>
- move¶
Thuộc tính
position="move"
được đặt trên nội dung của thông số kế thừa để chỉ định cách các nút được di chuyển tương đối đến bộ định vị phần tử của thông số kế thừa, trên đó thuộc tínhposition
cũng phải được đặt, với các giá trịinside
,thay thế
,sau
hoặctrước
.Example
<xpath expr="//@target" position="after"> <xpath expr="//@node" position="move"/> </xpath> <field name="target_field" position="after"> <field name="my_field" position="move"/> </field>