Gunakan tanda [] untuk mencari tag gan! contoh [flutter, javascript]

Odoo - Kanban View

Odoo - Kanban View

Artikel ini dibukukan pada buku Odoo ERP Development
access_time 05 Feb 2025 remove_red_eye 75 Kali spellcheck 732 Kata, 4897 Karakter
#odoo #xml

Kanban View di Odoo adalah salah satu tampilan yang digunakan untuk menampilkan data dalam bentuk kartu (cards) yang dikelompokkan berdasarkan status atau kategori tertentu. Tampilan ini sangat berguna untuk manajemen tugas, proyek, pipeline penjualan, dan alur kerja lainnya yang berbasis tahapan.

Di Odoo 18, Kanban View mendapatkan beberapa peningkatan dalam hal performa dan fleksibilitas dalam penyesuaian tampilan.


Struktur Dasar Kanban View

Kanban View dalam Odoo didefinisikan dalam file XML dengan menggunakan tag <kanban> di dalam elemen <record> dari model ir.ui.view.

Contoh Dasar Kanban View

Berikut adalah contoh bagaimana membuat Kanban View untuk model project.task:

<odoo>
    <record id="view_task_kanban" model="ir.ui.view">
        <field name="name">project.task.kanban.view</field>
        <field name="model">project.task</field>
        <field name="arch" type="xml">
            <kanban default_group_by="stage_id" class="o_kanban_small_column">
                <templates>
                    <t t-name="kanban-box">
                        <div class="oe_kanban_global_click">
                            <field name="name" class="o_kanban_record_title"/>
                            <field name="user_id" class="o_text_color"/>
                        </div>
                    </t>
                </templates>
            </kanban>
        </field>
    </record>
</odoo>

Penjelasan Kode

  • <kanban default_group_by="stage_id"> → Mengelompokkan kartu berdasarkan field stage_id.
  • <templates> → Berisi template tampilan untuk setiap kartu di Kanban.
  • <t t-name="kanban-box"> → Template utama untuk menampilkan elemen kartu.
  • <field name="name" class="o_kanban_record_title"/> → Menampilkan nama tugas.
  • <field name="user_id" class="o_text_color"/> → Menampilkan pengguna yang bertanggung jawab atas tugas.

Menambahkan Action Button di Kanban View

Kita bisa menambahkan tombol tindakan (action buttons) dalam tampilan Kanban. Berikut contoh menambahkan tombol "Selesai" untuk menyelesaikan tugas:

<t t-name="kanban-box">
    <div class="oe_kanban_global_click">
        <field name="name" class="o_kanban_record_title"/>
        <field name="user_id" class="o_text_color"/>
        <button type="object" name="action_mark_done" class="btn btn-primary" string="Selesai"/>
    </div>
</t>

Lalu, dalam model Python, kita tambahkan metode untuk menangani tombol ini:

from odoo import models, fields, api

class ProjectTask(models.Model):
    _inherit = 'project.task'

    def action_mark_done(self):
        for record in self:
            record.stage_id = self.env.ref('project.project_stage_done').id

Penjelasan:

  • button type="object" name="action_mark_done" → Memanggil metode action_mark_done di model.
  • Metode action_mark_done → Mengubah status tugas menjadi "Selesai" dengan mengubah stage_id.

Menampilkan Gambar atau Ikon di Kanban View

Kita bisa menampilkan gambar atau ikon dalam Kanban View menggunakan field image_1920.

<t t-name="kanban-box">
    <div class="oe_kanban_global_click">
        <img t-if="record.image_1920.raw" t-att-src="'/web/image/' + str(record.id) + '/image_1920'" class="o_kanban_image"/>
        <field name="name" class="o_kanban_record_title"/>
    </div>
</t>

Penjelasan:

  • <img t-att-src="'/web/image/' + str(record.id) + '/image_1920'"/> → Menampilkan gambar dari field image_1920 jika tersedia.

Menambahkan Drag & Drop pada Kanban View

Salah satu fitur utama Kanban View di Odoo adalah kemampuan drag & drop untuk memindahkan kartu antar kolom. Ini terjadi secara otomatis jika model memiliki field Many2one yang digunakan untuk pengelompokan (group_by).

Jika kita ingin memastikan fitur ini berfungsi, pastikan field stage_id memiliki properti ondelete='restrict' untuk menghindari masalah referensial:

class ProjectTask(models.Model):
    _inherit = 'project.task'

    stage_id = fields.Many2one('project.task.type', string="Stage", ondelete='restrict')

Dengan ini, pengguna bisa dengan mudah memindahkan tugas ke tahap yang berbeda dengan drag & drop.


Kesimpulan

Kanban View di Odoo 18 memberikan tampilan yang menarik dan fungsional untuk mengelola data berbasis status atau tahapan. Dengan fitur-fitur seperti:

  • Grouping otomatis berdasarkan field tertentu
  • Dukungan drag & drop untuk perpindahan antar tahap
  • Kemampuan menambahkan tombol action langsung dalam kartu
  • Dukungan tampilan gambar dan ikon

Kanban View menjadi salah satu tampilan yang sangat bermanfaat untuk meningkatkan efisiensi dalam mengelola tugas dan proses bisnis.

Semoga artikel ini membantu!

Artikel ini dibukukan pada buku Odoo ERP Development
Navigasi Konten