İçereği Atla
Menü
Bu soru işaretlendi
3 Cevaplar
8031 Görünümler

Normally, when we create a purchase order (PO), the vendor is automatically added as a follower. I am trying to create an automated action to remove the vendor from the follower list.


Can someone give me a sample please? Thank you!


We have Odoo v14 EE.

Avatar
Vazgeç

Hello Tushar,

No problem, I have updated my answer to better suit your question.

All the best,

En İyi Yanıt

You can't stop Odoo from adding followers to a Document, but you CAN

  • prevent followers from receiving ANY automated email notifications
  • prevent Users from accidentally sending emails to followers
  • force Users to choose recipients for each email Odoo sends


Note: Followers who are never sent any automated email notifications (see below for how to set this up) can also never be emailed unless they are added to the email via @ or as a Contact to notify – when using the full email composer. When automated email notifications are turned off either globally or for a specific record, Followers of the document functions as if it is empty.



 

You can control this

  • globally
  • by Sales Team member
  • by Record / Document Type (Sales Order, Project, Task, etc.)

 

Frequently Asked Questions

Can I get my notifications inside Odoo instead of via email? - https://www.odoo.com/documentation/17.0/applications/productivity/discuss.html#choose-notifications-preference

What is a follower? - https://www.odoo.com/documentation/17.0/applications/productivity/discuss/chatter.html#add-followers

How do I manage who is following a Document? - https://www.odoo.com/documentation/17.0/applications/productivity/discuss/chatter.html#manage-followers

How do I manage what automated notifications a follower receives? - https://www.odoo.com/documentation/17.0/applications/productivity/discuss/chatter.html#edit-follower-subscription

What does SEND MESSAGE do? - https://www.odoo.com/documentation/17.0/applications/productivity/discuss/chatter.html#send-messages

What does LOG NOTE do? - https://www.odoo.com/documentation/17.0/applications/productivity/discuss/chatter.html#log-notes

 

How Odoo follower and automated email notifications work by default

  • Message Subtypes define the notifications followers can subscribe to
  • Each one manages a single automated notification
  • There are three global Subtypes – Activities, Discussions, Notes – which apply to every Record Type
  • All others are setup per Record type

There are four checkboxes on each

  1. Default - every follower is automatically subscribed (opt out if True, opt in if False)
  2. Internal Only - only applicable for Internal Users (Employees)
  3. Hidden - not available for opt out via subscription management
  4. Track Recipients - shows the envelope icon to track who did and did not get the notification


 

 

They can be accessed in Developer Mode via Settings --> Technical --> Discuss --> Subtypes

 

The three global Subtypes:


 

Discussions – opt out - automatically applied to every follower. They all get a notification of every Message (they are blind copied on emails). The envelope icon* is shown to give Users access to verify if each recipient received the message.

Activities – opt in – applies to INTERNAL followers only. They get a notification of every Activity scheduled.

Note – opt in – applies to INTERNAL followers only. They get a notification of every Note added. The envelope icon* is shown to give Users access to verify if each recipient received the message


Remember that anyone who is specifically added when using SEND MESSAGE or LOG NOTE becomes a follower.  They receive that SINGLE email and by default get a copy of all others sent via SEND MESSAGE. LOG NOTE is only sent to the users specified via @ or those who have the Note subscription.

 

The default configuration of these three Subtypes means

  • anyone who is specifically named via @ will receive an email notification with a copy of what was sent via SEND MESSAGE or LOG NOTE.
  • everyone who is following a document receives an email notification with a copy of what was sent via SEND MESSAGE
  • only users who opt in will receive an email notification with a copy of what was sent via LOG NOTE
  • only users who opt in will receive a copy of email notifications related to Scheduled Activities

 

You can control which email notifications are sent out by modifying the way these Subtypes are setup. You can create a Discussions subtype per record where you want finer control. You can edit the Subtypes to determine when followers are automatically subscribed and when they have the option to subscribe and unsubscribe.


Common Configurations

"We don't want any emails going to people automatically. We want to manually email people AND specify each time who the email goes to."

  • unmark the Dicussions Subtype as Default. 
  • You will now have to explicitly @ the recipients for every Message you send, except the first time you send one to the Customer or Vendor BUT you will have an option to uncheck them from the first Message. In this way, Users are aware who they are sending the manual email to each time. Just the first Message.
  • Nobody will ever get an email they were not supposed to get because they have to be specifically added as a recipient via @.

 

"We are concerned about email notifications on Sales Orders and Invoices, we don't want any emails going to people automatically. We want Users to choose who gets every email that is sent out.”

  • unmark the Sales Order related Subtypes as Default.
  • You will now have to explicitly @ the recipients for every Message you add to a Document, except the first time you send one to the Customer BUT you will have an option to uncheck them from the Message. In this way, Users are aware who they are sending the manual email to each time. 
  • Nobody will ever get an email they were not supposed to get because they have to be specifically added as a recipient via @.

 

"We want to control automated email notifications for Sales Teams members"

  • Unmark as default the Sales Team based Subtypes as needed.
  • open each Team Member on each Team and change the notifications they are subscribed to.

 

"We want to control automated email notifications for Projects"

  • Unmark as default the Project based Subtypes as needed.



With ANY of these options, you can edit the Subtype subscriptions for Particular Sales Orders, Sales Teams, Projects, etc when you DO want automated email notifications to go out and/or when you do want followers to automatically receive copies of emails sent specifically to others (BCC).

With ANY of these options, Users still have the option to opt-in themselves, other Users and Customers or Vendor on a record by record basis.



Avatar
Vazgeç
En İyi Yanıt

Hello Tushar,

I assumed in your question that you mean the field which is labelled as a supplier for the vendor. 

To do this you can iterate through the followers of the purchase order and see if the related followers email is equal to the suppliers email on creation. 

The code:

# get the vendors email address
vendor_email = record.partner_id.email
if vendor_email:
  # for all the followers that are currently following the document
  for follower in record.message_follower_ids:
    # if the follower's email is equal to the vendors email address
    if follower.partner_id.email == vendor_email:
      follower.unlink()

The automated action:

https://imgur.com/a/S7kpd7b

This automated action will work on creation of the record but it still means that the supplier will be added as a follower when you send the purchase order to the supplier. 

If you never want the supplier to be a follower of the purchase order, I would probably suggest creating an automated action on the followers plus a scheduled action. If this is the case, let me know and I will adapt the code.

I hope this helps.

Thanks, 

EDIT: Never allow the supplier to be a follower of the document.

For this, I would suggest changing the automated action to be on the followers model rather than the purchase model. Here.

The code for this is:

# get the vendors email address
vendor_email = record.partner_id.email
# get the related purchase order
related_purchase_order = env["purchase.order"].search([("id", "=", record.res_id)], limit=1)
# where the emails are the same, delete this record (follower record)
if vendor_email == related_purchase_order.partner_id.email:
  record.unlink()

Make sure in the automated action to have the "Apply On" set to "Related Document Model Name" = "purchase.order" to make sure this is only ever called when the related document is a purchase order and not crm etc. 

This should stop any followers being created, it may also be worth creating a scheduled action which runs every 5 mins or so which checks to see if any have slipped through the net. If you require it would be better to send me an email. 

I hope this helps,

Thanks, 

Avatar
Vazgeç
Üretici

Hi Jack, thanks! You're right, I never want the supplier to be added as a follower. Could you please guide me on that?

Hello Jack, (it is an old thread, we know, but it is the closer we got to hat we are looking for): we are trying to do either (for both the options to provide to this user) but in the Project model: specifically, we are trying to stop odoo to add a specific user as a follower to a task. Could you please provide a sample on this formula for the Project/task modules? (I apologize if this is a basic question, we are not familiar with codes) thank you!

En İyi Yanıt

Thanks Jack! I've been trying this but it prevents us from sending the documents via e-mail. The error that pops up is:

Missing Record

Record does not exist or has been deleted.

(Record: mail.followers(xxx,), User: xx)


Any idea how to solve this? I'd like to be able to send e-mails without adding the contact to the followers.

Avatar
Vazgeç
İlgili Gönderiler Cevaplar Görünümler Aktivite
0
Mar 24
2542
1
Kas 24
1304
0
Mar 22
1588
2
May 25
2053
1
Ara 24
2519