Catatan Singkat Teknikal (Beberapa Syntax Yang Sering Dipakai)
1. File .py
override method create
class ms_res_partner(models.Model): _inherit = 'res.partner' ... @api.model def create(self, vals): vals['comment'] = "ini adalah notes" return super(ms_res_partner, self).create(vals)
override method write
class ms_res_partner(models.Model): _inherit = 'res.partner' ... @api.multi def write(self, vals): vals['comment'] = "ini adalah notes" return super(ms_res_partner, self).write(vals)
menggunakan digit precision
import odoo.addons.decimal_precision as dp ... amount_total = fields.Float(string='Total Harga', compute='_get_tot_line', readonly=True, digits=dp.get_precision('Product Price'))
override method unlink
@api.multi def unlink(self): for me_id in self : if me_id.state != 'draft' : raise Warning("Tidak bisa delete transaksi !") return super(ms_bayar_resep, self).unlink()
override method name_get
@api.multi def name_get(self): result = [] for me_id in self : result.append((me_id.id, "%s [%s]"%(me_id.name, me_id.partner_id.name))) return result
override method name_search
@api.model def name_search(self, name, args=None, operator='ilike', limit=100): args = args or [] if name : recs = self.search([ '|', ('name', operator, name), ('partner_id.name', operator, name) ] + args, limit=limit) else : recs = self.search([] + args, limit=limit) return recs.name_get()
menambah value baru field Selection ketika inherit
field_name = fields.Selection(selection_add=[ ('value1','Value 1'), ('value2','Value 2') ])
memanggil action report
@api.multi def nota_penerimaan_barang(self): return self.env["report"].get_action(self, 'stock.report_deliveryslip')
override method default_get
@api.model def default_get(self, fields): res = super(product_product, self).default_get(fields) if 'material' in self._context : res['type'] = 'product' return res
sql constraint
_sql_constraints = [ ('unique_name', 'unique(name)', 'Nama duplicate !'), ]
return action
picking_ids = self.env['stock.picking'].search([]) action = self.env.ref('stock.action_picking_tree_all') return { 'name': action.name, 'help': action.help, 'type': action.type, 'view_type': action.view_type, 'view_mode': action.view_mode, 'target': action.target, 'res_model': action.res_model, 'domain': [('id', 'in', picking_ids.ids)], }
2. File .xml
menggunakan attrs
<field name="parent_id"/> <field name="category_id" attrs="{'required': [('parent_id','=',False)]}"/> <field name="code" attrs="{'required': [('parent_id','=',False)], 'readonly': [('parent_id','!=',False)]}"/>
set color pada tree
<tree string="Analytic Line" editable="top" colors="darkmagenta:has_child==True; blue:state=='draft'"> <field name="state"/> <field name="has_child"/> </tree>
memindahkan posisi fields
<field name="date_invoice" position="after">
<field name="date" position="move"/>
</field>
Insya Allah syntax yang lain akan ditambahkan…
Terimakasih, semoga bermanfaat dan CMIIW…
Tutorial odoo/openerp Indonesia
5 Comments