Dashboard One2many di tampilan kanban
Cara Menampilkan Tampilan one2many pada dashboard kanban
assalamu'alaikum.
saya akan share bagaimana cara menampilkan one2many di kanban.
kali ini saya akan memberikan contoh pada object project.project. perhatikan pada sintaks berikut:
saya akan menjelaskan dengan warna #seperti ini


# -*- coding: utf-8 -*-

from odoo import api, fields, models
import json

class Project(models.Model):
    _inherit = "project.project" # nama object yang akan ditampilkan

    data_rab_json = fields.Text(string='Data RAB Json',compute='get_data_rab') # ini adalah
yang paling penting karena akan dipanggil dan di looping di tampilan kanban
   
    @api.depends('rab_line')
    def get_data_rab(self): # method compute untuk mencari data one2many yg akan di tampilkan
        for project in self: #
            analytics = self.env['account.analytic.account'] #
            for anl in project.rab_line: #
                analytics += anl.analytic_account_id #
            sql = """select aaa.name, pr.jumlah, pr.percentage, pr.realization, pr.sisa
           
            from project_rab pr
            left join account_analytic_account aaa on pr.analytic_account_id = aaa.id
           
            where aaa.id in %s"""
            params = [tuple(analytics.ids) if analytics else (None,)]
            self._cr.execute(sql,tuple(params))
            data_rab = self._cr.dictfetchall()
            def format_uang(value):
                new_value = "{:,.2f}".format(value)
                return new_value
            for x in data_rab:
                x['jumlah'] = format_uang(x['jumlah']) if x['jumlah'] else 0
                x['realization'] = format_uang(x['realization']) if x['realization'] else 0
                x['percentage'] = '%.2f'% x['percentage'] if x['percentage'] else 0
                x['sisa'] = format_uang(x['sisa']) if x['sisa'] else 0
               
            project.data_rab_json = json.dumps(data_rab) if data_rab else False





 berikut adalah sintaks xml kanban

 <table class="table table-condensed" width="100%">
    <tr class="text-center">
        <th style="padding:0.5rem;" rowspan="2" class="text-center">Jenis Biaya</th>
        <th style="padding:0.5rem;" rowspan="2" class="text-center">Cost</th>
        <th style="padding:0.5rem;" colspan="2" class="text-center">Realization</th>
        <th style="padding:0.5rem;" rowspan="2" class="text-center">Sisa</th>
    </tr>
    <tr>
        <th style="padding:0.5rem;" class="text-center">(%)</th>
        <th style="padding:0.5rem;" class="text-center">Amount</th>

    </tr>

    <t t-value="JSON.parse(record.data_rab_json.raw_value)" t-set="rab_line"/> dibagian
inilah field data_rab_json dipanggil untuk ditampilkan ke kanban
    <t t-foreach="rab_line" t-as="x">
        <tr>
            <td class="text-left">
                <span t-esc="x.name"/>
            </td>
            <td class="text-right">
                <span t-esc="x.jumlah"/>
            </td>
            <td class="text-right">
                <span t-esc="x.percentage"/>
            </td>
            <td class="text-right">
                <span t-esc="x.realization"/>
            </td>
            <td class="text-right">
                <span t-esc="x.sisa"/>
            </td>
        </tr>
    </t>
</table>



Ini adalah hasilnya :





Aged Receivable and Aged Payable Reporting on Odoo 14.0 v