odoo 为form表单视图添加chatter功能

简介: odoo 为form表单视图添加chatter功能

实践环境

Odoo 14.0-20221212 (Community Edition)

需求描述

如图,给表单新增一个类似聊天的窗口,当记录一些表单活动(本例为自动记录当前记录状态变化)

需求实现

模型定义

odoo14\custom\estate\models\estate_property.py

需要继承mail.thread模型,并为需要追踪的字段设置tracking属性,并设置属性值为真值

#!/usr/bin/env python
# -*- coding: utf-8 -*-
from odoo import models, fields, api
class EstateProperty(models.Model):
    _name = 'estate.property'
    _description = 'estate property table'
    _inherit = ['mail.thread'] # 必须继承该模型
    name = fields.Char(required=True)    
    state = fields.Selection(
        string='State',
        selection=[('new','New'),
                   ('offerReceived','Offer Received'),
                   ('offerAccepted', 'Offer Accepted'),
                   ('sold','Sold'),
                   ('canceled', 'Canceled')],
        copy=False,
        tracking=1 # 该属性不能少,且必须为真值 
    )
    # ...此处代码略

说明:

  • mail.thread 模型,该模型类型为models.AbstractModel,其定义文件为 odoo14\odoo\addons\mail\models\mail_thread.py,其字段命名均以message_开头
  • tracking 该属性为True或数字时,打开针对该属性所属字段的修改日志--当所属字段内容发生变化时,系统会将该字段变化前后的值写入日志中,这个数字的大小影响变更日志在日志中的排序。

__manifest__.py 配置

odoo14\custom\estate\__manifest__.py

需要配置mail模块依赖,因为mail.thread模型归属该模块

#!/usr/bin/env python
# -*- coding:utf-8 -*-
{
    'name': 'estate',
    'depends': ['base', 'mail'],
     # 此处代码略...
}

视图定义

添加<div class="oe_chatter">元素,内容如下

<?xml version="1.0"?>
<odoo>    
    <!--此处代码略--> 
    <record id="estate_property_view_form" model="ir.ui.view">
        <field name="name">estate.property.form</field>
        <field name="model">estate.property</field>
        <field name="arch" type="xml">
            <form string="estate property form">
                <!--此处代码略--> 
                <div class="oe_chatter">
                     <field name="message_follower_ids"/> 
                     <field name="message_ids"/>
                </div>
            </form>
        </field>
    </record>     
</odoo>

如果希望在窗口中展示添加更多功能,可以添加字段,如下

<div class="oe_chatter">
     <field name="message_follower_ids"/>
     <field name="activity_ids" widget="mail_activity"/>-->
     <field name="message_ids"/>
</div>

说明:activity_ids 来自mail.activity.mixin模型,类型为models.AbstractModel,定义在文件 odoo14\odoo\addons\mail\models\mail_activity.py,其字段命名均以activity_,对应的,模型定义中_inherit 属性也需要添加该模块,如下:

_inherity= ['mail.thread', 'mail.activity.mixin']

效果:

相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
目录
相关文章
|
SQL 关系型数据库 BI
草率了!没想pgadmin这么强大
草率了!没想pgadmin这么强大
1445 0
|
机器学习/深度学习 编解码 人工智能
扩散模型失宠?端侧非自回归图像生成基础模型Meissonic登场,超越SDXL!
Meissonic是一种新型图像生成模型,采用非自回归的掩码图像建模(MIM)方法,在性能和效率上超越了当前最先进的扩散模型SDXL。其创新点包括改进的注意力机制、多尺度特征提取、先进位置编码策略和优化采样条件等,能够生成高质量、高分辨率图像。此外,Meissonic引入人类偏好评分和特征压缩层,提升图像质量和计算效率。尽管存在一些挑战,Meissonic为统一语言-视觉模型的发展提供了新思路,并在创意设计、虚拟现实等领域展现出广泛应用前景。
321 24
|
Java Apache Maven
Aspose-Words文档处理类库
Aspose-Words文档处理类库
7304 1
|
Java Maven
maven配置阿里云镜像源
maven配置阿里云镜像源
43710 1
|
机器学习/深度学习 监控 算法
yolov8_track追踪加分割(yolo目标检测+追踪+分割)
yolov8_track追踪加分割(yolo目标检测+追踪+分割)
|
人工智能
不懂乐理,也能扒谱,基于openvpi将mp3转换为midi乐谱(Python3.10)
所谓"扒谱"是指通过听歌或观看演奏视频等方式,逐步分析和还原音乐作品的曲谱或乐谱的过程。它是音乐学习和演奏的一种常见方法,通常由音乐爱好者、乐手或学生使用。 在扒谱的过程中,人们会仔细聆听音乐作品,辨别和记录出各个音符、和弦、节奏等元素,并通过试错和反复推敲来逐渐还原出准确的曲谱或乐谱。这对于那些没有正式乐谱或想学习特定曲目的人来说,是一种有效的方式。 扒谱的目的是为了更好地理解和演奏音乐作品,从中学习技巧、乐曲结构和艺术表达等方面。但不懂乐理的人很难听出音符和音准,本次我们通过openvpi的开源项目some来直接针对mp3文件进行扒谱,将mp3转换为midi文件。
|
Java
解决办法:Invalid Gradle JDK configuration found
解决办法:Invalid Gradle JDK configuration found
1062 1
|
JavaScript 前端开发 程序员
VSCode实用插件集锦
VSCode实用插件集锦
448 0
|
Ubuntu Linux API
klogd&syslogd与dmesg-嵌入式系统获取linux内核log
klogd&syslogd与dmesg-嵌入式系统获取linux内核log
2005 0
klogd&syslogd与dmesg-嵌入式系统获取linux内核log