Langsung ke konten utama

Postingan

Odoo : Mendefinisikan data awal

Data awal akan dibuat saat kita pertamakali install modul Buat file '.xml' di dalam folder 'data' (nama_modul/data): <?xml version="1.0" encoding="utf-8"?> <!-- noupdate="1" berfungsi agar data tidak ditimpa saat update modul --> <odoo noupdate="1"> <record id="nama_id_record" model="nama.model"> <!-- Field-field yang ada di model --> <field name="field_1">Nama Record</field> <field name="field_2">2</field> </record> </odoo> Contoh saya membuat file 'tipe_kendaraan_data.xml' di dalam folder 'data': <?xml version="1.0" encoding="utf-8"?> <odoo noupdate="1"> <record id="tipe_kendaraan_motor" model="tipe.kendaraan"> <field name="name">Motor</field> <field name=...
Postingan terbaru

Odoo : Field multiple file upload

Tambahkan field "many2many" dengan model "ir.attachment": attachment_ids = fields.Many2many( "ir.attachment", string='Upload Document' ) lalu tambahkan juga di views dengan widget "many2many_binary": <field name="attachment_ids" widget="many2many_binary" />

Odoo : Menambahkan item baru pada field selection

Field state bawaan: state = fields.Selection([ ('draft', 'Draft'), ('confirm', 'Confirm'), ], string='Status') Menambahkan item "Done": state = fields.Selection(selection_add=[('done', 'Done')])

Odoo : Inherit Onchange method

  Contoh kasus, ketika tipe kendaraan berubah maka akan mengubah nominal parkir Field: type = fields.Selection([ ('motor', 'Motor'), ('mobil', 'Mobil'), ], string='Tipe Kendaraan') parkir = fields.Float('Nominal Parkir') Method onchange bawaan: @api.onchange('type') def _onchange_type(self): if self.type == 'motor': self.parkir = 2000 Inherit: @api.onchange('type') def _onchange_type(self): # super() memanggil method bawaan super()._onchange_type() if self.type == 'mobil': self.parkir = 5000

WARNING: database "postgres" has a collation version mismatch

  Masuk ke PSQL: sudo -u postgres psql Lalu masukan query: REINDEX DATABASE nama_database; ALTER DATABASE nama_database REFRESH COLLATION VERSION; Contoh database yang terkena collation version adalah "postgres" REINDEX DATABASE postgres; ALTER DATABASE postgres REFRESH COLLATION VERSION;

Odoo : Dynamic domain

  Cara 1: Buat field penampung: domain_currency_ids = fields.Many2many("res.currency", string="Domain Currency") Tambahkan onchange pada field yang akan mentrigger domain: is_kmk = fields.Boolean("KMK", default=True) @api.onchange("is_kmk") def _onchange_is_kmk(self): if self.is_kmk: self.domain_currency_ids = self.env["res.currency"].search( [("is_kmk", "=", True)] ) else: self.domain_currency_ids = self.env["res.currency"].search( [("is_kmk", "=", False)] ) Tambahkan field domain di form, buat menjadi invisible: <field invisible="1" name="domain_currency_ids"></field> Tambahkan field penampung ke domain field <xpath expr="//field[@name='currency_id']" position="attributes"> <attribute name="domain">[('id', 'in...

Mengatasi Error "GnuTLS recv error (-110): The TLS connection was non-properly terminated" pada Git Ubuntu

  Hal ini terjadi karena pada git yang terinstall di ubuntu menggunakan GnuTLS bukan OpenSSL. Untuk mengatasinya kita perlu build ulang git nya dan menggunakan package  libcurl4-openssl-dev dibandingkan  libcurl4-gnutls-dev. Untuk caranya bisa membuka link StackOverflow: https://stackoverflow.com/questions/52529639/gnutls-recv-error-110-the-tls-connection-was-non-properly-terminated Namun saya menemukan script yang otomatis: https://github.com/niko-dunixi/git-openssl-shellscript Clone lalu jalankan compile-git-with-openssl.sh dan tunggu sampai selesai. Tested on: Ubuntu 24.04