Блог

Как работают уведомления об активности в Odoo 19

post-title

В Odoo 19 уведомления о действиях помогают командам оставаться организованными, создавая напоминания и задачи, связанные с такими записями, как заказы на продажу, потенциальные клиенты или счета-фактуры. В этом руководстве мы рассмотрим простой и практичный пример создания и управления уведомлениями о действиях.

Настройка уведомлений о действиях:

Задания — это элементы, которые можно назначать пользователям, имеющие срок выполнения и требующие выполнения. При создании задания Odoo отправляет уведомления, чтобы держать всех в курсе. Уведомления отображаются:

  • От значка колокольчика на верхней странице Odoo
  • По электронной почте (в зависимости от настроек пользователя)
  • На панели мониторинга активности
  • В разговорах, зафиксированных в протоколах.

Пример автоматического создания последующих действий.

Мы хотим создать функцию, которая автоматически будет создавать задачу для менеджера по продажам после подтверждения заказа. Таким образом, менеджер по продажам будет знать, что нужно связаться с клиентом после получения заказа.

Шаг 1: Создайте структуру модуля.

Сначала создайте пользовательский модуль со следующей структурой:

sales_activity_automation/
+-- __init__.py
+-- __manifest__.py
+-- models/
¦   +-- __init__.py
¦   +-- sale_order.py
+-- data/
   +-- mail_activity_type.xml

Шаг 2: Манифест модуля

manifest.py:

{
   'name': 'Sales Activity Automation',
   'version': '19.0.1.0.0',
   'category': 'Sales',
   'summary': 'Automatically create follow-up activities for sales orders',
   'depends': ['sale', 'mail'],
   'data': [
       'data/mail_activity_type.xml',
   ],
   'installable': True,
   'application': False,
}

Шаг 3: Создание пользовательского типа действий

data/mail_activity_type.xml:

<?xml version="1.0" encoding="utf-8"?>
<odoo>
   <data noupdate="1">
      
       <record id="mail_activity_type_followup" model="mail.activity.type">
           <field name="name">Customer Follow-up</field>
           <field name="summary">Follow up with customer after order</field>
           <field name="delay_count">3</field>
           <field name="delay_unit">days</field>
           <field name="icon">fa-phone</field>
       </record>
      
   </data>
</odoo>

Шаг 4: Реализация логики на Python.

models/init.py:

from . import sale_order

models/sale_order.py:


from odoo import models, fields
from datetime import timedelta

class SaleOrder(models.Model):
   _inherit = 'sale.order'
   def action_confirm(self):
       """Override to create follow-up activity when order is confirmed"""
       # Call the parent method first
       res = super(SaleOrder, self).action_confirm()
       # Create a follow-up activity for each confirmed order
       for order in self:
           self._create_followup_activity(order)
       return res
   def _create_followup_activity(self, order):
       """Create a follow-up activity for the sales order"""
       # Get the custom activity type we created
       activity_type = self.env.ref(
           'sales_activity_automation.mail_activity_type_followup',
           raise_if_not_found=False
       )
       # If activity type not found, use default call activity
       if not activity_type:
           activity_type = self.env.ref('mail.mail_activity_data_call')
       # Calculate the due date (3 days from today)
       due_date = fields.Date.today() + timedelta(days=3)
       # Create the activity
       order.activity_schedule(
           activity_type_id=activity_type.id,
           summary=f'Follow up on order {order.name}',
           note=f'''
               <p>Customer: {order.partner_id.name}</p>
               <p>Order Amount: {order.amount_total} {order.currency_id.name}</p>
               <p>Action: Call customer to ensure satisfaction and check if they need assistance.</p>
           ''',
           user_id=order.user_id.id or self.env.user.id,
           date_deadline=due_date
       )
       # Show a notification to confirm activity was created
       return {
           'type': 'ir.actions.client',
           'tag': 'display_notification',
           'params': {
               'title': 'Activity Created',
               'message': f'Follow-up activity scheduled for {due_date}',
               'type': 'success',
               'sticky': False,
           }
       }

Как это работает

  1. Когда пользователь подтверждает заказ на продажу , вызывается метод action_confirm().
  2. Последующие действия будут автоматически созданы с помощью пользовательского кода.
  3. После этого продавец получит уведомление о новом последующем действии.
  4. Если последующее действие не будет выполнено, то на панели мониторинга активности продавца оно будет отображаться как просроченное.

Заключение

Функция уведомлений о действиях в Odoo 19 очень полезна для поддержания производительности ваших команд, обеспечивая автоматическое создание задач и предотвращая пропуск важных задач. С помощью нескольких строк пользовательского кода можно создать автоматизированные рабочие процессы для улучшения процесса продаж.