İçereği Atla

Odoo OWL kullanarak yeni bir görünüm nasıl tanımlanır ?

6 Mayıs 2026 yazan
Odoo OWL kullanarak yeni bir görünüm nasıl tanımlanır ?
Kod Merkezi Yazılım ve İnternet Hiz. Eğ. Dan. Ltd. Şti., Ahmet Can Bolat

Odoo’da OWL Kullanarak Yeni Bir View Oluşturmak

Odoo üzerinde yeni bir görünüm türü oluşturmak istediğimizde, modern Odoo web mimarisinin temelini oluşturan OWL framework yapısını kullanmamız gerekir.

Odoo, varsayılan olarak birçok hazır görünüm tipi sunar. Ancak bu görünümler Community ve Enterprise sürümleri arasında farklılık gösterebilir.


Odoo Community Sürümünde Bulunan Görünümler

Community sürümde varsayılan olarak aşağıdaki görünüm tipleri kullanılabilir:

List
Form
Kanban
Pivot
Graph
Activity
Calendar


Odoo Enterprise Sürümünde Ek Olarak Gelen Görünümler

Enterprise sürümde ise Community sürümdeki görünümlere ek olarak şu view tipleri de hazır olarak sunulur:

Gantt
Cohort
Map

Bazı projelerde bu standart görünümler ihtiyacı tam olarak karşılamayabilir. Özellikle özel dashboard ekranları, operasyonel takip panelleri veya farklı kullanıcı deneyimi gerektiren ekranlar için kendi özel görünüm tipimizi oluşturmamız gerekebilir.

Bu durumda yapılması gereken şey, OWL çatısını kullanarak özel bir view geliştirmek ve bu view tipini Odoo’nun view registry yapısına kaydetmektir.


Yeni Bir Odoo Modülü Oluşturmak

İlk adım olarak Odoo’nun scaffold komutu ile yeni bir modül oluşturabiliriz:

python3 odoo-bin scaffold my_custom_view path_of_the_addons_folder

Bu komut, my_custom_view adında yeni bir modül iskeleti oluşturur.


Yeni View Tipini Odoo’ya Tanıtmak

Odoo’da yeni bir view tipi kullanabilmek için öncelikle ir.ui.view modelini genişletmemiz gerekir.

Bunun için Python tarafında aşağıdaki gibi bir yapı oluşturabiliriz:

from odoo import fields, models


class View(models.Model):
_inherit = 'ir.ui.view'

type = fields.Selection(
selection_add=[('my_view', 'My View')]
)

def _get_view_info(self):
return {
'my_view': {
'icon': 'fa fa-coffee'
}
} | super()._get_view_info()


Modül Klasör Yapısı

OWL tarafındaki JavaScript, XML ve stil dosyalarını düzenli tutmak için aşağıdaki gibi bir klasör yapısı oluşturabiliriz:

my_custom_view/
├── models/
│ └── ir_ui_view.py
├── static/
│ └── src/
│ └── views/
│ └── my_view/
│ ├── my_view_controller.js
│ ├── my_view_renderer.js
│ ├── my_view_model.js
│ ├── my_view_arch_parser.js
│ └── my_view.xml
├── views/
│ └── my_view_templates.xml
├── __init__.py
└── __manifest__.py




Bu gönderiyi paylaş