Overslaan naar inhoud
Menu
Je moet geregistreerd zijn om te kunnen communiceren met de community.
Deze vraag is gerapporteerd
1 Beantwoorden
3062 Weergaven

When using odoo's default apps, every time I send a message using chatter or creating activity, it display the app's icon in the notification.

But when I use a custom module (x_custom_module), it only shows the avatar.jpg for message notification and no icon for activities.


The server actions I've used are self.message_post() and env['mail.activity']. How can I configure the notification icon with Odoo online/Odoo studio? Thank you.

Avatar
Annuleer
Beste antwoord

To configure and display proper icons for notifications and chatter messages in Odoo 18, including those triggered by custom modules, you need to ensure the module is correctly configured to associate the relevant icons with notifications and activities. Here's a step-by-step guide:

1. Understand Odoo's Notification Mechanism

  • Message Notifications: Triggered by self.message_post().
  • Activity Notifications: Triggered by the mail.activity model.
  • Icons for notifications and activities are determined by the model's associated app and the configuration of the module.

2. Steps to Configure Notification Icons

A. Ensure Your Module Has an Icon Defined

  1. Navigate to your module's directory and check the __manifest__.py file.
  2. Ensure that the module defines an icon in the manifest. Example:
    {
        'name': 'Custom Module',
        'summary': 'Custom Module Description',
        'author': 'Your Name/Company',
        'category': 'Custom',
        'icon': '/x_custom_module/static/description/icon.png',  # Path to your module's icon
        'data': [
            # Your module's XML or data files
        ],
    }
    
  3. Add the icon file (icon.png) to the static/description/ folder of your module.
  4. Update the module by restarting the server and upgrading the module.

B. Add an Icon to Activities

  1. Customize your mail.activity.type records:
    • Go to Settings > Technical > Email > Activity Types.
    • Open or create the activity type related to your custom module.
    • Add an Icon field:
      • Either choose an existing icon from Odoo’s library (e.g., fa-check, fa-envelope).
      • Or upload a custom icon for your activity type.
  2. Link the activity type to your model:
    • Assign the res_model of your custom module to the activity type.
    • Example: If your model is x_custom_model, set the res_model in the activity type configuration to match this.

3. Example Code for self.message_post()

Ensure self.message_post() includes the appropriate subtype and model name. Example:

self.message_post(
    body="Your custom message",
    message_type='notification',
    subtype_id=self.env.ref('mail.mt_comment').id,
    author_id=self.env.user.partner_id.id
)

If you're triggering notifications for specific activities, use the following code snippet:

activity = self.env['mail.activity'].create({
    'res_id': record.id,
    'res_model_id': self.env['ir.model'].search([('model', '=', 'x_custom_model')], limit=1).id,
    'activity_type_id': self.env.ref('mail.mail_activity_data_todo').id,
    'user_id': self.env.uid,
    'summary': 'Your activity summary',
    'note': 'Details about the activity',
})

4. Customize the Icon in Notification Bar

The icons displayed in the navbar or notification bar come from the mail.thread mixin. To associate your custom icon:

  1. Inherit and Customize Mail Notification Logic: Create a Python file in your custom module:
    from odoo import models, fields
    
    class CustomModel(models.Model):
        _inherit = 'mail.thread'
    
        def _notify_get_action_link(self):
            res = super(CustomModel, self)._notify_get_action_link()
            res['icon'] = '/x_custom_module/static/description/icon.png'  # Custom icon
            return res
    
  2. Add the Icon Logic to Activity Views: Extend the activity kanban view or notification template to include your module's icon.

5. Clear Cache and Test

  • Clear the browser and Odoo caches after making changes.
  • Test by sending a message or creating an activity to ensure the icons appear correctly.

6. Troubleshooting

  • Icon Not Displaying: Double-check the icon file path and ensure it’s accessible.
  • No Activity Notifications: Verify the mail.activity record creation logic.
  • Custom Module Not Linked: Ensure your module is linked to the appropriate res_model.

By following these steps, you can successfully configure your custom module to display appropriate icons for notifications and chatter activities in Odoo 18. Let me know if you need further assistance!

Avatar
Annuleer
Auteur

Is this all possible with Odoo Online/Studio/Enterprise Version?

Gerelateerde posts Antwoorden Weergaven Activiteit
3
jul. 25
808
1
jul. 21
2224
1
jun. 25
707
5
jul. 25
2312
1
jun. 25
1063