Hello,
is it possible to integrate the OpenChatter (mail.thread) in an existing Model like stock.move?
Regards
Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:
Hello,
is it possible to integrate the OpenChatter (mail.thread) in an existing Model like stock.move?
Regards
Hi, This is a simple example. Add this _inherit = ['mail.thread', 'ir.needaction_mixin'] to stock.move in py:
class stock_move(models.Model):
_name = "stock.move"
_inherit = ['stock.move','mail.thread', 'ir.needaction_mixin']
In xml:
Add this before to your end of form tag:
<div class="oe_chatter">
<field name="message_follower_ids" widget="mail_followers" groups="base.group_user"/>
<field name="message_ids" widget="mail_thread"/>
</div>
To track changes in your field, you may want to use track visiblity. You can find detail here....
I'm working in Version 7.
class stock_move(osv.osv):
_name = "stock.move"
_inherit = ['mail.thread', 'ir.needaction_mixin']
Raises:
Traceback (most recent call last):
File "/home/marvin/dev/erp-dev/7.0/parts/odoo/openerp/cli/server.py", line 97, in preload_registry
db, registry = openerp.pooler.get_db_and_pool(dbname,update_module=update_module)
File "/home/marvin/dev/erp-dev/7.0/parts/odoo/openerp/pooler.py", line 33, in get_db_and_pool
registry = RegistryManager.get(db_name, force_demo, status, update_module)
File "/home/marvin/dev/erp-dev/7.0/parts/odoo/openerp/modules/registry.py", line 203, in get
update_module)
File "/home/marvin/dev/erp-dev/7.0/parts/odoo/openerp/modules/registry.py", line 233, in new
openerp.modules.load_modules(registry.db, force_demo, status, update_module)
File "/home/marvin/dev/erp-dev/7.0/parts/odoo/openerp/modules/loading.py", line 351, in load_modules
force, status, report, loaded_modules, update_module)
File "/home/marvin/dev/erp-dev/7.0/parts/odoo/openerp/modules/loading.py", line 256, in load_marked_modules
loaded, processed = load_module_graph(cr, graph, progressdict, report=report, skip_modules=loaded_modules, perform_checks=perform_checks)
File "/home/marvin/dev/erp-dev/7.0/parts/odoo/openerp/modules/loading.py", line 165, in load_module_graph
init_module_models(cr, package.name, models)
File "/home/marvin/dev/erp-dev/7.0/parts/odoo/openerp/modules/module.py", line 374, in init_module_models
result = obj._auto_init(cr, {'module': module_name})
File "/home/marvin/dev/erp-dev/7.0/parts/odoo/openerp/osv/orm.py", line 3114, in _auto_init
self._o2m_raise_on_missing_reference(cr, f)
File "/home/marvin/dev/erp-dev/7.0/parts/odoo/openerp/osv/orm.py", line 3419, in _o2m_raise_on_missing_reference
raise except_orm('Programming Error', "There is no reference field '%s' found for '%s'" % (f._fields_id, f._obj,))
except_orm: ('Programming Error', "There is no reference field 'sale_line_id' found for 'stock.move'")
######################
class my_stock_move(osv.osv):
_inherit = ['stock.move', 'mail.thread', 'ir.needaction_mixin']
Raises:
Traceback (most recent call last):
File "/home/marvin/dev/erp-dev/7.0/parts/odoo/openerp/cli/server.py", line 97, in preload_registry
db, registry = openerp.pooler.get_db_and_pool(dbname,update_module=update_module)
File "/home/marvin/dev/erp-dev/7.0/parts/odoo/openerp/pooler.py", line 33, in get_db_and_pool
registry = RegistryManager.get(db_name, force_demo, status, update_module)
File "/home/marvin/dev/erp-dev/7.0/parts/odoo/openerp/modules/registry.py", line 203, in get
update_module)
File "/home/marvin/dev/erp-dev/7.0/parts/odoo/openerp/modules/registry.py", line 233, in new
openerp.modules.load_modules(registry.db, force_demo, status, update_module)
File "/home/marvin/dev/erp-dev/7.0/parts/odoo/openerp/modules/loading.py", line 351, in load_modules
force, status, report, loaded_modules, update_module)
File "/home/marvin/dev/erp-dev/7.0/parts/odoo/openerp/modules/loading.py", line 256, in load_marked_modules
loaded, processed = load_module_graph(cr, graph, progressdict, report=report, skip_modules=loaded_modules, perform_checks=perform_checks)
File "/home/marvin/dev/erp-dev/7.0/parts/odoo/openerp/modules/loading.py", line 161, in load_module_graph
models = pool.load(cr, package)
File "/home/marvin/dev/erp-dev/7.0/parts/odoo/openerp/modules/registry.py", line 118, in load
model = cls.create_instance(self, cr)
File "/home/marvin/dev/erp-dev/7.0/parts/odoo/openerp/osv/orm.py", line 898, in create_instance
raise TypeError('_name is mandatory in case of multiple inheritance')
TypeError: _name is mandatory in case of multiple inheritance
I have updated my answer. Put _name = "stock.move" and try again.
Thanks! It works! I have not enough karma to vote or to mark my question as answerd... Stupid!
Karma restrictions have been changed now due to spammers. I have upvoted your question so that you can get minimum points.
@Dhinesh forgets to put 'stock.move' in the _inherit. It should be _inherit = ['stock.move', 'mail.thread', 'ir.needaction_mixin']. Well, to get the discussion thread _inherit = ['stock.move', 'mail.thread'] would suffice. The 'ir.needaction_mixin' is used more for validation feature (if an action is needed for this record).
Thanks. I forget to add 'stock.move' in _inherit.