Ir al contenido
Odoo Menú
  • Identificarse
  • Pruébalo gratis
  • Aplicaciones
    Finanzas
    • Contabilidad
    • Facturación
    • Gastos
    • Hoja de cálculo (BI)
    • Documentos
    • Firma electrónica
    Ventas
    • CRM
    • Ventas
    • TPV para tiendas
    • TPV para restaurantes
    • Suscripciones
    • Alquiler
    Sitios web
    • Creador de sitios web
    • Comercio electrónico
    • Blog
    • Foro
    • Chat en directo
    • eLearning
    Cadena de suministro
    • Inventario
    • Fabricación
    • PLM
    • Compra
    • Mantenimiento
    • Calidad
    Recursos Humanos
    • Empleados
    • Reclutamiento
    • Ausencias
    • Evaluación
    • Referencias
    • Flota
    Marketing
    • Marketing social
    • Marketing por correo electrónico
    • Marketing por SMS
    • Eventos
    • Automatización de marketing
    • Encuestas
    Servicios
    • Proyecto
    • Partes de horas
    • Servicio de campo
    • Servicio de asistencia
    • Planificación
    • Citas
    Productividad
    • Conversaciones
    • Aprobaciones
    • IoT
    • VoIP
    • Información
    • WhatsApp
    Aplicaciones de terceros Studio de Odoo Plataforma de Odoo Cloud
  • Industrias
    Comercio al por menor
    • Librería
    • Tienda de ropa
    • Tienda de muebles
    • Tienda de ultramarinos
    • Ferretería
    • Juguetería
    Alimentación y hostelería
    • Bar y taberna
    • Restaurante
    • Comida rápida
    • Casa de huéspedes
    • Distribuidor de bebidas
    • Hotel
    Inmueble
    • Agencia inmobiliaria
    • Estudio de arquitectura
    • Construcción
    • Gestión inmobiliaria
    • Jardinería
    • Asociación de propietarios
    Consultoría
    • Empresa contable
    • Partner de Odoo
    • Agencia de marketing
    • Bufete de abogados
    • Adquisición de talentos
    • Auditorías y certificaciones
    Fabricación
    • Textil
    • Metal
    • Muebles
    • Alimentos
    • Brewery
    • Regalos de empresas
    Salud y bienestar
    • Club deportivo
    • Óptica
    • Gimnasio
    • Terapeutas
    • Farmacia
    • Peluquería
    Oficios
    • Handyman
    • Hardware y asistencia informática
    • Sistemas de energía solar
    • Zapatero
    • Servicios de limpieza
    • Servicios de calefacción, ventilación y aire acondicionado
    Otros
    • Organización sin ánimo de lucro
    • Agencia de protección del medio ambiente
    • Alquiler de paneles publicitarios
    • Estudio fotográfico
    • Alquiler de bicicletas
    • Distribuidor de software
    Browse all Industries
  • Comunidad
    Aprender
    • Tutoriales
    • Documentación
    • Certificaciones
    • Formación
    • Blog
    • Podcast
    Potenciar la educación
    • Programa de formación
    • Scale Up! El juego empresarial
    • Visita Odoo
    Obtener el software
    • Descargar
    • Comparar ediciones
    • Versiones
    Colaborar
    • GitHub
    • Foro
    • Eventos
    • Traducciones
    • Convertirse en partner
    • Services for Partners
    • Registrar tu empresa contable
    Obtener servicios
    • Encontrar un partner
    • Encontrar un asesor fiscal
    • Contacta con un experto
    • Servicios de implementación
    • Referencias de clientes
    • Ayuda
    • Actualizaciones
    GitHub YouTube Twitter Linkedin Instagram Facebook Spotify
    +1 (650) 691-3277
    Solicitar una demostración
  • Precios
  • Ayuda

Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:

  • CRM
  • e-Commerce
  • Contabilidad
  • Inventario
  • PoS
  • Proyecto
  • MRP
All apps
Debe estar registrado para interactuar con la comunidad.
Todas las publicaciones Personas Insignias
Etiquetas (Ver todo)
odoo accounting v14 pos v15
Acerca de este foro
Debe estar registrado para interactuar con la comunidad.
Todas las publicaciones Personas Insignias
Etiquetas (Ver todo)
odoo accounting v14 pos v15
Acerca de este foro
Ayuda

how to send message(not email) programatically that can be seen by all /some users

Suscribirse

Reciba una notificación cuando haya actividad en esta publicación

Se marcó esta pregunta
programaticallymail.message
4 Respuestas
38376 Vistas
Avatar
raiye hailu

I am trying to programmatically post a message (not email). But I don't know how. The message for example can show up in the discussion app , #generals channel. I searched the internet but all I get it is how to send email messages to users using the mail.thread object.

in other words how to accomplish the following using python code

<record model="mail.message" id="module_install_notification">
<field name="model">mail.channel</field>
<field name="res_id" ref="mail.channel_all_employees"/>
<field name="message_type">notification</field>
<field name="subtype_id" ref="mail.mt_comment"/>
<field name="subject">Project Management application installed!</field>
<field name="body"><![CDATA[<p>Manage multi-level projects and tasks. You can delegate tasks, track task work, and review your planning.</p>
<p>You can manage todo lists on tasks by installing the <i>Todo Lists</i> application, supporting the Getting Things Done (GTD) methodology.</p>
<p>You can also manage issues/bugs in projects by installing the "Issue Tracker" application.</p>]]></field>
</record>

The above xml code posts the "body" to the #general channel of the Discuss app.

I am using odoo v9.

1
Avatar
Descartar
Avatar
Muhammad Younis
Mejor respuesta

Hello,

First of all, create a channel for a group of users. For example, I want to create for accountant group like this:


Accountant

Message Notifications.

then create a record in mail.message model like this:

def action_send_notification(self):
    self.env['mail.message'].create({
'email_from': self.env.user.partner_id.email, # add the sender email
'author_id': self.env.user.partner_id.id, # add the creator id
'model': 'mail.channel', # model should be mail.channel
'type': 'comment',
'subtype_id': self.env.ref('mail.mt_comment').id, Leave this as it is
'body': "Body of the message", # here add the message body
'channel_ids': [(4, self.env.ref('module_name.channel_accountant_group').id)], # This is the channel where you want to send the message and all the users of this channel will receive message
'res_id': self.env.ref('modulename.channel_accountant_group').id, # here add the channel you created.
})

This code will help you to understand and send messages (not email) programmatically).

Thank You.

6
Avatar
Descartar
Avatar
raiye hailu
Autor Mejor respuesta

For now I have figured out a way to send messages to followers of a record when a field's value is changed.

Suppose I have a field x.

x=fields.Integer('a var', track_visibility='onchange')
    the track_visibility attribute tells odoo to log any change of x , either from a form view or by a function. The log is posted as an internal note. For this to happen your class must inhert mail.thread and use appropriate widget in the definition of the form view. For that check out  https://www.odoo.com/documentation/10.0/reference/mixins.html


    The internal log note taken by the track_visibility option can be sent as a message to users following the record. On the left of the open chatter you can see that there is a button to add followers for the record. There is also a button which says 'following'. Clicking it gives a list of options with check marks for each. Followers of the record will get messages corresponding to the events represented by each choice in the list. We will first have to add a choice to this list. A choice that corresponds to change of value of x. It is called message sub type.
    In the xml file where you define your form,list...views put the following.
    <record id="mt_x_value_changed" model="mail.message.subtype">
    <field name="name">The value of x changed</field>
    <field name="res_model">modelname</field>
    <field name="default" eval="True"/>
    <field name="description">The value of x changed</field>
    </record>
     Then in your module python file override the _track_subtype(init_values) method. init_values contains a dictionary of changed fields and their previous values. self.x is the current x value. If the option 'The value of x changed' is checked, when x is changed the followers of the record will get a message saying the 'The value of x changed'. In this case it  only when x is < 5 the message is sent.



    def _track_subtype(self,init_values):
    self.ensure_one()
    if (('x' in init_values) and (self.x <= 5)):

    return 'module_name.mt_x_value_changed'
    return super(class_name,self)._track_subtype(init_values)
    1
    Avatar
    Descartar
    Avatar
    Jainesh Shah(Aktiv Software)
    Mejor respuesta

    Hi raiye hailu,

    To post a message that can seen by specific recipients,you can simply write below python code into your model:

     partner_ids = self.env['res.partner'].search(search_domain).ids

     # search domain to filter specific partners

     self.message_post(subject=subject,body=body,partner_ids=[(4, [partner_ids])])

     Hope this will helpful to you!

    Thanks!

    0
    Avatar
    Descartar
    raiye hailu
    Autor

    Thank you Jainesh for the answer. But it did not work. Even if it did, I think your code sends email message to partners using the email address input when the partners were created. I don't want to send email messages. I want to send a message to a user of odoo(or post a message to a channel).

    I expect the solution to contain references to res.users not res.partner(or contain a reference a channel id).

    Avatar
    Obay Abdelgadir
    Mejor respuesta

    Dude!!! you are commenting python code with //

    0
    Avatar
    Descartar
    ¿Le interesa esta conversación? ¡Participe en ella!

    Cree una cuenta para poder utilizar funciones exclusivas e interactuar con la comunidad.

    Inscribirse
    Publicaciones relacionadas Respuestas Vistas Actividad
    Invite new users
    mail.message
    Avatar
    Avatar
    Avatar
    Avatar
    4
    ene 24
    14441
    Displaying an attachement in a mail.message programmatically
    programatically timeline mail_thread attachement mail.message
    Avatar
    0
    dic 15
    5824
    I cannot add Field to "pos.order" in "modelo.Order"
    pos programatically
    Avatar
    Avatar
    2
    dic 24
    3731
    Cannot create mail.message even though I have set permissions
    mail.message PERMISSION
    Avatar
    0
    jul 24
    1960
    How to show message_type = notification in a portal chatter? Resuelto
    chatter mail.message
    Avatar
    Avatar
    1
    sept 21
    7570
    Comunidad
    • Tutoriales
    • Documentación
    • Foro
    Código abierto
    • Descargar
    • GitHub
    • Runbot
    • Traducciones
    Servicios
    • Alojamiento Odoo.sh
    • Ayuda
    • Actualizar
    • Desarrollos personalizados
    • Educación
    • Encontrar un asesor fiscal
    • Encontrar un partner
    • Convertirse en partner
    Sobre nosotros
    • Nuestra empresa
    • Activos de marca
    • Contacta con nosotros
    • Puestos de trabajo
    • Eventos
    • Podcast
    • Blog
    • Clientes
    • Información legal • Privacidad
    • Seguridad
    الْعَرَبيّة Català 简体中文 繁體中文 (台灣) Čeština Dansk Nederlands English Suomi Français Deutsch हिंदी Bahasa Indonesia Italiano 日本語 한국어 (KR) Lietuvių kalba Język polski Português (BR) română русский язык Slovenský jazyk slovenščina Español (América Latina) Español ภาษาไทย Türkçe українська Tiếng Việt

    Odoo es un conjunto de aplicaciones de código abierto que cubren todas las necesidades de tu empresa: CRM, comercio electrónico, contabilidad, inventario, punto de venta, gestión de proyectos, etc.

    La propuesta única de valor de Odoo es ser muy fácil de usar y totalmente integrado.

    Website made with

    Odoo Experience on YouTube

    1. Use the live chat to ask your questions.
    2. The operator answers within a few minutes.

    Live support on Youtube
    Watch now