独自のモジュールで同様の機能を実現したいと考えています。ページの下部だけでなく、メッセージモジュールで動的に生成されるレコードを作成するとき。
販売モジュールには同様の機能があることがわかりましたが、購入モジュールには機能がなく、調査でも原則が見つかりませんでした。mail.thread を継承しても機能しません。
関連する *.py コード:
class jp_stock_picking(osv.osv):
_name = "jp.stock.picking"
_inherit = ['mail.thread', 'ir.needaction_mixin']
_description = "Picking List"
_track = {
'state': {
'stock_jiup.mt_wait_prove': lambda self, cr, uid, obj, ctx=None: obj['state'] in ['wait_prove','overrule','wait_check','checked','cancel']
},
}
def get_employee(self, cr, uid, context={}):
obj = self.pool.get('hr.employee')
ids = obj.search(cr, uid, [('user_id','=',uid)])
res = obj.read(cr, uid, ids, ['id','name'], context)
return res and res[0]['id'] or 0
_columns = {
'name': fields.char('Reference',size=20),
'document_id': fields.char('Document Number',size=16, required=True),
'supplier_id': fields.many2one('res.partner', 'Supplier', required=True),
'create_time': fields.datetime('Create Time', required=True),
'operator': fields.many2one('hr.employee', 'Operator Perosn', required=True),
'origin': fields.char('Come From',size=50, required=True),
'state': fields.selection([('draft', 'New'),
('wait_handle','Wait Handle'),
('wait_prove', 'Wait Prove'),
('overrule', 'Overrule'),
('wait_check', 'Wait Quality Checking'),
('checked', 'Quality Checked'),
('cancel', 'Cancel'),
], 'Status', readonly=True, select=True, track_visibility='always'
),
'move_lines': fields.one2many('jp.stock.move', 'jp_picking_id', 'Internal Moves', readonly=True, states={'draft': [('readonly', False)],'wait_handle':[('readonly', False)],'overrule':[('readonly', False)]}),
'remark': fields.text('Remark')
}
これは関連する *_data.xml コードです:
<record id="mt_wait_prove" model="mail.message.subtype">
<field name="name">Picking Prove</field>
<field name="res_model">jp.stock.picking</field>
<field name="default" eval="False"/>
<field name="description">Picking Prove</field>
</record>