[IMP] Mail Improvements

bzr revid: kjo@tinyerp.com-20131218131805-e97d5tmq2tr6pvh2
This commit is contained in:
Mahendra Barad
2013-12-18 18:48:05 +05:30
committed by Kuldeep Joshi
parent 20dba40661
commit caa3510ea4
11 changed files with 44 additions and 51 deletions
+1 -1
View File
@@ -11,7 +11,7 @@
'view_mailbox': True,
'view_inbox': True,
'read_action': 'read',
'show_compose_message': True
'show_compose_message': False
}""/>
</record>
+1 -1
View File
@@ -42,7 +42,7 @@
<!-- Admin should not receivve emails at creation -->
<record id="base.partner_root" model="res.partner">
<field name="notification_email_send">none</field>
<field name="notification_email_send">never</field>
</record>
<!-- Catchall Email Alias -->
+24 -24
View File
@@ -4,76 +4,76 @@
<!-- Update 'Demo user' and partners email preferences to avoid mail bombing -->
<record id="base.partner_demo" model="res.partner">
<field name="notification_email_send">none</field>
<field name="notification_email_send">never</field>
</record>
<record id="base.res_partner_1" model="res.partner">
<field name="notification_email_send">none</field>
<field name="notification_email_send">never</field>
</record>
<record id="base.res_partner_2" model="res.partner">
<field name="notification_email_send">none</field>
<field name="notification_email_send">never</field>
</record>
<record id="base.res_partner_3" model="res.partner">
<field name="notification_email_send">none</field>
<field name="notification_email_send">never</field>
</record>
<record id="base.res_partner_4" model="res.partner">
<field name="notification_email_send">none</field>
<field name="notification_email_send">never</field>
</record>
<record id="base.res_partner_5" model="res.partner">
<field name="notification_email_send">none</field>
<field name="notification_email_send">never</field>
</record>
<record id="base.res_partner_6" model="res.partner">
<field name="notification_email_send">none</field>
<field name="notification_email_send">never</field>
</record>
<record id="base.res_partner_7" model="res.partner">
<field name="notification_email_send">none</field>
<field name="notification_email_send">never</field>
</record>
<record id="base.res_partner_8" model="res.partner">
<field name="notification_email_send">none</field>
<field name="notification_email_send">never</field>
</record>
<record id="base.res_partner_9" model="res.partner">
<field name="notification_email_send">none</field>
<field name="notification_email_send">never</field>
</record>
<record id="base.res_partner_10" model="res.partner">
<field name="notification_email_send">none</field>
<field name="notification_email_send">never</field>
</record>
<record id="base.res_partner_11" model="res.partner">
<field name="notification_email_send">none</field>
<field name="notification_email_send">never</field>
</record>
<record id="base.res_partner_12" model="res.partner">
<field name="notification_email_send">none</field>
<field name="notification_email_send">never</field>
</record>
<record id="base.res_partner_13" model="res.partner">
<field name="notification_email_send">none</field>
<field name="notification_email_send">never</field>
</record>
<record id="base.res_partner_14" model="res.partner">
<field name="notification_email_send">none</field>
<field name="notification_email_send">never</field>
</record>
<record id="base.res_partner_15" model="res.partner">
<field name="notification_email_send">none</field>
<field name="notification_email_send">never</field>
</record>
<record id="base.res_partner_16" model="res.partner">
<field name="notification_email_send">none</field>
<field name="notification_email_send">never</field>
</record>
<record id="base.res_partner_17" model="res.partner">
<field name="notification_email_send">none</field>
<field name="notification_email_send">never</field>
</record>
<record id="base.res_partner_18" model="res.partner">
<field name="notification_email_send">none</field>
<field name="notification_email_send">never</field>
</record>
<record id="base.res_partner_19" model="res.partner">
<field name="notification_email_send">none</field>
<field name="notification_email_send">never</field>
</record>
<record id="base.res_partner_20" model="res.partner">
<field name="notification_email_send">none</field>
<field name="notification_email_send">never</field>
</record>
<record id="base.res_partner_21" model="res.partner">
<field name="notification_email_send">none</field>
<field name="notification_email_send">never</field>
</record>
<record id="base.res_partner_22" model="res.partner">
<field name="notification_email_send">none</field>
<field name="notification_email_send">never</field>
</record>
<record id="base.res_partner_23" model="res.partner">
<field name="notification_email_send">none</field>
<field name="notification_email_send">never</field>
</record>
<!-- Discussion: attachments and spec [DEMO: search on has_attachments -->
+3 -6
View File
@@ -96,13 +96,10 @@ class mail_notification(osv.Model):
if message.author_id and message.author_id.email == partner.email:
continue
# Partner does not want to receive any emails or is opt-out
if partner.notification_email_send == 'none':
if partner.notification_email_send == 'never':
continue
# Partner wants to receive only emails and comments
if partner.notification_email_send == 'comment' and message.type not in ('email', 'comment'):
continue
# Partner wants to receive only emails
if partner.notification_email_send == 'email' and message.type != 'email':
# Partner wants to receive emails, comments and notification
if partner.notification_email_send == 'always' and message.type not in ('email', 'comment', 'notification'):
continue
notify_pids.append(partner.id)
return notify_pids
+3 -7
View File
@@ -31,20 +31,16 @@ class res_partner_mail(osv.Model):
_columns = {
'notification_email_send': fields.selection([
('none', 'Never'),
('email', 'Incoming Emails only'),
('comment', 'Incoming Emails and Discussions'),
('all', 'All Messages (discussions, emails, followed system notifications)'),
('never', 'Never'),
('always', 'All Messages'),
], 'Receive Messages by Email', required=True,
help="Policy to receive emails for new messages pushed to your personal Inbox:\n"
"- Never: no emails are sent\n"
"- Incoming Emails only: for messages received by the system via email\n"
"- Incoming Emails and Discussions: for incoming emails along with internal discussions\n"
"- All Messages: for every notification you receive in your Inbox"),
}
_defaults = {
'notification_email_send': lambda *args: 'comment'
'notification_email_send': lambda *args: 'always'
}
def message_get_suggested_recipients(self, cr, uid, ids, context=None):
+1 -1
View File
@@ -8,7 +8,7 @@
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='active']" position="after">
<field name='notification_email_send'/>
<field name='notification_email_send' widget="radio"/>
</xpath>
<xpath expr="//sheet" position="after">
<div class="oe_chatter">
+2 -2
View File
@@ -10,7 +10,7 @@
<field name="arch" type="xml">
<data>
<field name="email" position="before">
<field name="notification_email_send" readonly="0"/>
<field name="notification_email_send" widget="radio" readonly="0"/>
</field>
</data>
</field>
@@ -24,7 +24,7 @@
<field name="arch" type="xml">
<data>
<field name="signature" position="before">
<field name="notification_email_send"/>
<field name="notification_email_send" widget="radio"/>
</field>
<field name="signature" position="before">
<label for="alias_id" string="Messaging Alias" class="oe_read_only"
@@ -44,7 +44,7 @@ instance.web.form.FieldMany2ManyTagsEmail = instance.web.form.FieldMany2ManyTags
new instance.web.Model('res.partner').call("search", [[
["id", "in", ids],
["email", "=", false],
["notification_email_send", "in", ['all', 'comment']] ]],
["notification_email_send", "=", 'always'] ]],
{context: this.build_context()})
.then(function (record_ids) {
// valid partner
+2 -2
View File
@@ -77,7 +77,7 @@ class TestMail(common.TransactionCase):
'alias_name': 'ernest',
'email': 'e.e@example.com',
'signature': '--\nErnest',
'notification_email_send': 'comment',
'notification_email_send': 'always',
'groups_id': [(6, 0, [self.group_employee_id])]
}, {'no_reset_password': True})
self.user_noone_id = self.res_users.create(cr, uid, {
@@ -86,7 +86,7 @@ class TestMail(common.TransactionCase):
'alias_name': 'noemie',
'email': 'n.n@example.com',
'signature': '--\nNoemie',
'notification_email_send': 'comment',
'notification_email_send': 'always',
'groups_id': [(6, 0, [])]
}, {'no_reset_password': True})
+5 -5
View File
@@ -366,14 +366,14 @@ class test_mail(TestMail):
# Data creation
# --------------------------------------------------
# 0 - Update existing users-partners
self.res_users.write(cr, uid, [uid], {'email': 'a@a', 'notification_email_send': 'comment'})
self.res_users.write(cr, uid, [uid], {'email': 'a@a', 'notification_email_send': 'always'})
self.res_users.write(cr, uid, [self.user_raoul_id], {'email': 'r@r'})
# 1 - Bert Tartopoils, with email, should receive emails for comments and emails
p_b_id = self.res_partner.create(cr, uid, {'name': 'Bert Tartopoils', 'email': 'b@b'})
# 2 - Carine Poilvache, with email, should receive emails for emails
p_c_id = self.res_partner.create(cr, uid, {'name': 'Carine Poilvache', 'email': 'c@c', 'notification_email_send': 'email'})
p_c_id = self.res_partner.create(cr, uid, {'name': 'Carine Poilvache', 'email': 'c@c', 'notification_email_send': 'never'})
# 3 - Dédé Grosbedon, without email, to test email verification; should receive emails for every message
p_d_id = self.res_partner.create(cr, uid, {'name': 'Dédé Grosbedon', 'email': 'd@d', 'notification_email_send': 'all'})
p_d_id = self.res_partner.create(cr, uid, {'name': 'Dédé Grosbedon', 'email': 'd@d', 'notification_email_send': 'always'})
# 4 - Attachments
attach1_id = self.ir_attachment.create(cr, user_raoul.id, {
'name': 'Attach1', 'datas_fname': 'Attach1',
@@ -600,9 +600,9 @@ class test_mail(TestMail):
# 1 - Bert Tartopoils, with email, should receive emails for comments and emails
p_b_id = self.res_partner.create(cr, uid, {'name': 'Bert Tartopoils', 'email': 'b@b'})
# 2 - Carine Poilvache, with email, should receive emails for emails
p_c_id = self.res_partner.create(cr, uid, {'name': 'Carine Poilvache', 'email': 'c@c', 'notification_email_send': 'email'})
p_c_id = self.res_partner.create(cr, uid, {'name': 'Carine Poilvache', 'email': 'c@c', 'notification_email_send': 'always'})
# 3 - Dédé Grosbedon, without email, to test email verification; should receive emails for every message
p_d_id = self.res_partner.create(cr, uid, {'name': 'Dédé Grosbedon', 'email': 'd@d', 'notification_email_send': 'all'})
p_d_id = self.res_partner.create(cr, uid, {'name': 'Dédé Grosbedon', 'email': 'd@d', 'notification_email_send': 'always'})
# 4 - Create a Bird mail.group, that will be used to test mass mailing
group_bird_id = self.mail_group.create(cr, uid,
{
+1 -1
View File
@@ -8,7 +8,7 @@
<field name="email">demo@portal.example.com</field>
<field name="supplier" eval="False"/>
<field name="customer" eval="True"/>
<field name="notification_email_send">none</field>
<field name="notification_email_send">never</field>
</record>
<record id="demo_user0" model="res.users" context="{'no_reset_password': True}">
<field name="partner_id" ref="partner_demo_portal"/>