添加社交网络功能

来自Odoo大V社-odoo中文开发手册
跳转至: 导航搜索

社交网络模块 (技术名称mail) 提供留言板功能和关注的特征,以及消息和通知功能。这些功能是我们经常会想要添加在模块中的,所以让我们学习如何去做。

社交网络邮件功能由mail.thread模型的mail模块提供。要将其添加到自定义的模型,我们需要执行以下操作︰

依赖mail模块
继承mail.thread类
将关注者和线程小部件添加到form视图
为关注者设置记录规则。

我们按照以上步骤。

第一点,在我们模块的__manifest__.py清单文件中添加对mail的依赖︰

‘depends’: ['todo_app','mail'],

第二点,使用我们以前使用的_inherit属性继承mail.thread。但我们的类已经在使用 _inherit 属性。幸运的是,它可以接受列表,所以我们可以写成列表并添加mail.thread:

_name = 'todo.task'
_inherit = ['todo.task','mail.thread']

mail.thread是一种抽象的模型。抽象的模型和普通模型类似,只是他们没有数据库表示;也没有实际的表。抽象的模型不是直接使用。相反,他们都是被混合使用。我们可以将它们看作模板与准备使用的功能。若要创建一个抽象类,我们只需要在创建模块时,使用models.AbstractModel 替代models.Model。 第三点,我们在form视图的底部添加社交网络部件。通过扩展原视图的方式添加。我们使用view_form_todo_task_inherited继承已经创建的视图,并其arch数据块中添加以下内容︰

<sheet position="after">
       <field name="message_follower_ids"
        widget="mail_followers" />
       <field name="message_ids" widget="mail_thread" />
</sheet>

在这里添加的两个字段未被我们进行显式声明,他们由mail.thread模型声明的。 最后的一步,即第四步,是关注者设置记录规则︰ rowlevel 访问控制。如果我们的模型需要限制其他用户无法访问记录,就需要设置记录规则。在这里,我们希望每个待办任务记录可以被任何它的关注者看见。 我们已经为待办任务模型定义了记录规则,所以我们需要进行调整以添加这项新规定。这是在下一节我们会做的一件事情。

上一节:使用委托继承嵌入模型 
下一节:修改数据