Я хочу создать кнопку в возможностях CRM в Odoo 11. Я хочу открыть окно со всеми сообщениями этой возможности (Model mail.message)
Я попытался создать свой первый аддон.
Вот моя структура:
Вот мой код:
/odoo/addons/test/__manifest__.py
{
'name': 'test',
'version': '2.0',
'category': 'Sales',
'sequence': 5,
'summary': 'test',
'description': "",
'website': 'https://test.net',
'depends': [
'crm'
],
'data': [
],
'demo': [
],
'css': [],
'installable': True,
'application': True,
'auto_install': False,
}
/odoo/addons/test/__init__.py
from . import models
/odoo/addons/test/models/__init__.py
from . import test
/odoo/addons/test/models/test.py
from odoo import models, fields
class test_test(models.Model):
_inherit = 'crm.lead'
@api.multi
def test_test(self):
return {
'name': 'test_test',
'res_model': 'mail.message',
'view_type': 'list',
'view_mode': 'tree,list',
'type': 'ir.actions.act_window',
'target': 'inline'
}
crm.lead.form.opportunity
<button name='%(test_test)d' string="test" type="action" />
Я установил приложение, но кнопка не работает, и она не показывает никаких ошибок. И я не могу видеть свое действие в пользовательском интерфейсе.
для вызова функции из представления вам нужно определить кнопку типа объекта, как показано ниже.
<button name='test_test' string="test" type="object" />
он вызовет функцию test_test
в вашей модели crm.lead
(убедитесь, что ваша кнопка находится в crm.lead
модели crm.lead
.)
и вам нужно изменить свою функцию, как показано ниже.
@api.multi
def test_test(self):
return {
'name': 'test_test',
'res_model': 'mail.message',
'view_type': 'list',
'view_mode': 'tree,list',
'type': 'ir.actions.act_window',
'target': 'new' # will open a popup with mail.message list
}
надеюсь это поможет!