nxml-mode
# -*- mode: snippet -*-
# name: Odoo Action Menu
# key: oam
# --
<record model="ir.actions.act_window" id="${1:xml_id}">
<field name="name">${2:name}</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">${3:model}</field>
<field name="domain"></field>
<field name="view_type">${4:form}</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="${5:view_id}"/>
</record>
<menuitem name="$2"
parent="${6:parent_menu}"
action="$1"
id="menu_$1"/>
odoo_empty_view
# -*- mode: snippet -*-
# name: odoo_view
# key: odoo_view
# --
<record id="${1:xml_id}" model="ir.ui.view">
<field name="name">${1:$(replace-regexp-in-string "_" " " yas/text)}</field>
<field name="model">${3:model}</field>
<field name="arch" type="xml">
<${5:form} version="${6:version}" string="${7:Name}"> <!-- editable="bottom" -->
$0
</$5>
</field>
</record>
odoo_field
# -*- mode: snippet -*-
# name: odoo <field name="" ../>
# key: odoo_field
# --
<field name="${1:name}"
attrs="${2:attrs}"
readonly="${3:False}"
required="${4:False}"/>
# -*- mode: snippet -*-
# name: odoo <menu item ../>
# key: odoo_menuitem
# --
<menuitem name="${1:name}"
parent="${2:parent_menu}"
action="${3:action_id}"
id="${4:mxl_id}"/>
odoo_view
# -*- mode: snippet -*-
# name: odoo_view
# key: odoo_view
# --
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<data>
<!-- Write your view -->
</data>
</odoo>
odoo_view_inherit
# -*- mode: snippet -*-
# name: odoo_view_inherit
# key: odoo_view_inherit
# --
<record id="${1:xml_id}" model="ir.ui.view">
<field name="name">${1:$(replace-regexp-in-string "_" " " yas/text)}</field>
<field name="model">${3:model}</field>
<field name="inherit_id" ref="${4:parent_view}" />
<field name="arch" type="xml">
<${5:field} name="${6:name}" position="${7:position}">
$0
</$5>
</field>
</record>
odoo_wizard_action
# -*- mode: snippet -*-
# name: odoo wizard action
# key: odoo_wiz_action
# --
<!-- for button -->
<record id="${1:xml_id}" model="ir.actions.act_window">
<field name="name">${2:name}</field>
<field name="res_model">${3:model}</field>
<field name="src_model">${4:src_model}</field>
<field name="view_type">${5:form}</field>
<field name="view_mode">${6:form}</field>
<field name="view_id" ref="${7:view_id}"/>
<field name="target">new</field>
<field name="help">${8:help}</field>
</record>
<!-- for menu -->
<act_window name="$2"
res_model="$3"
src_model="${9:name}"
view_mode="form"
target="new"
key2="client_action_multi"
id="$1_menu_action"/>
$0
python-mode
odoo_api
# name: Odoo api
# key: @api odoo
# --
@api.${1:type}
odoo_class
# name: Odoo Class
# key: class odoo
# --
class ${1:ClassName}(models.${2:class_type}):
"""
${3:docstring}
"""
_name = '${4:class.name}'
_description = __doc__
$0
odoo_class_inherit
# name: Odoo Class Inherit
# key: class inherit odoo
# --
class ${1:ClassName}(models.${2:class_type}):
_inherit = '${3:class.name}'
$0
odoo_def
# name: Odoo Function
# key: def odoo
# --
def ${1:function_name}(self):
return True
odoo_default_date
# name: Odoo Date Default
# key: default date odoo
# --
default=fields.Date.today()
odoo_default_datetime
# name: Odoo Date Default
# key: default date odoo
# --
default=fields.Datetime.now()
odoo_display_name
# name: Odoo display name complete snippet
# key: display_name odoo
# --
_rec_name = '${1:name}'
@api.multi
@api.depends('${2:fields}')
def _$1(self):
for ${3:element} in self:
$3.$1 = $0
$1 = fields.Char(compute='_$1')
odoo_dp
# name: Odoo Decimal Precision Import
# key: dp odoo
# --
import openerp.addons.decimal_precision as dp
$0
odoo_env
# name: Odoo env
# key: env odoo
# --
self.env${1:type}
odoo_exceptions
# name: Odoo Exception Import
# key: exception import
# --
from openerp.exceptions import Warning as UserError
$0
odoo_field_binary
# name: Odoo Binary Field
# key: binary odoo
# --
${1:name} = fields.Binary(string='${2:string}', )
odoo_field_boolean
# name: Odoo Boolean Field
# key: boolean odoo
# --
is_${1:name} = fields.Boolean(string='${2:string}', )
odoo_field_char
# name: Odoo Char Field
# key: char odoo
# --
${1:name} = fields.Char(string='${2:string}', )
odoo_field_compute
# name: Odoo Compute Field
# key: compute odoo
# --
${1:name} = fields.${2:type}(compute='_${3:function_name}', string='${4:string}',)
@api.multi
@api.depends('${5:depends}')
def _$3(self):
for ${6:element} in self:
$6.$1 = True
odoo_field_date
# name: Odoo Date Field
# key: date odoo
# --
${1:name} = fields.Date(string='${2:string}', )
odoo_field_datetime
# name: Odoo Datetime Field
# key: datetime odoo
# --
${1:name} = fields.Datetime(string='${2:string}', )
odoo_field_float
# name: Odoo Float Field
# key: float odoo
# --
${1:name} = fields.Float(string='${2:string}',)
odoo_field_html
# name: Odoo Html Field
# key: html odoo
# --
${1:name} = fields.Html(string='${2:string}',)
odoo_field_integer
# name: Odoo Integer Field
# key: integer odoo
# --
${1:name} = fields.Integer(string='${2:string}',)
odoo_field_many2many
# name: Odoo Many2many Field
# key: m2m odoo
# --
${1:name}_ids = fields.Many2many('{2:object}', '{3:rel}', '${4:field1}', '${5:field2}', string='${6:string}',)
odoo_field_many2one
# name: Odoo Many2one Field
# key: m2o odoo
# --
${1:name}_id = fields.Many2one('${2:object}', string='${3:string}',)
odoo_field_one2many
# name: Odoo One2many Field
# key: o2m odoo
# --
${1:name}_ids = fields.One2many('${2:object}', '${3:field}', string='${4:string}',)
odoo_field_reference
# name: Odoo Reference Field
# key: reference odoo
# --
${1:name} = fields.Reference([('model_name', 'String')], string='${2:string}',)
odoo_field_selection
# name: Odoo Selection Field
# key: selection odoo
# --
${1:name} = fields.Selection([('var0', 'val0'),
('var1', 'val1')], string='${2:string}',)
odoo_field_text
# name: Odoo Text Field
# key: text odoo
# --
${1:name} = fields.Text(string='${2:string}',)
odoo_import
# name: Odoo Base import
# key: import odoo
# --
from openerp import _, api, fields, models
$0
odoo_onchange
# name: Odoo OnChange
# key: on_change odoo
# --
@api.onchange('${1:field}')
def onchnage_${2:name}(self):
${3:body}
odoo_orm_browse
# name: Odoo ORM Browse
# key: browse odoo
# --
${1:result} = ${2:object}.browse([('${3:field}', '${4:operator}', ${5:value})])
odoo_orm_create
# name: Odoo ORM Create
# key: create odoo
# --
${1:result} = ${2:object}.create({'${3:field}': ${4:field_value, }})
odoo_orm_create_definition
# name: Odoo ORM Create Definition
# key: create definition odoo
# --
@api.model
def create(self, vals):
${1:body}
return super(${2:class}, self).create(vals)
odoo_orm_name_get
# name: Odoo ORM name_get
# key: name_get odoo
# --
@api.multi
def name_get(self):
res = []
for ${1:element} in self:
res.append(($1.id, '${2:value}')))
return res
odoo_orm_name_search
# name: Odoo ORM Name Search
# key: name_search odoo
# --
@api.model
def name_search(self, name='', args=None, operator='ilike', context=None, limit=100):
res = super(${1:ClassName}, self).name_search(name, args, operator, context=context, limit=limit)
if not name:
return res
${2:body}
return res
odoo_orm_search
# name: Odoo ORM Search
# key: search odoo
# --
${1:result} = ${2:object}.search([('${3:field}', '${4:operator}', ${5:value})])
odoo_orm_unlink
# name: Odoo ORM Unlink
# key: unlink odoo
# --
${1:object}.unlink()
odoo_orm_unlink_definition
# name: Odoo ORM Unlink Definition
# key: unlink definition odoo
# --
@api.multi
def unlink(self):
${1:body}
return super(${2:ClassName}, self).unlink()
odoo_orm_write
# name: Odoo ORM Write
# key: write odoo
# --
${1:object}.write({'${2:field}': ${3:value}})
odoo_orm_write_definition
# name: Odoo ORM Write Definition
# key: write definition odoo
# --
@api.multi
def write(self, vals):
${1:body}
return super(${2:ClassName}, self).write(vals)
odoo_raise
# name: Odoo Raise
# key: raise odoo
# --
raise UserError('${1:message}')
odoorpc
# name: Odoo RPC
# key: odoorpc
# --
from odoorpc import ODOO
odoo = ODOO(host='${1:127.0.0.1}', port=${2:8069})
odoo.login('${4:db}', login='${5:user}', password='${6:pwd}')
$0
wdb.set_trace()
# name: wdb.set_trace()
# key: w
# --
import wdb; wdb.set_trace()
$0
wdb.start_trace()
# name: wdb.start_trace()
# key: ws
# --
import wdb; wdb.start_trace()
$0