From cdce2e22837e6beafb3f2d8584f8c125bdaba596 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Bellier?= Date: Fri, 31 Oct 2014 15:07:08 +0100 Subject: [PATCH 1/3] [FIX] stock: Never hide the invoice control on pickings Invoice control field was invisible, and we cannot change value if none selected or copy picking in. Fixes #3636 --- addons/stock/stock_view.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/stock/stock_view.xml b/addons/stock/stock_view.xml index 6a58107d7fe..74d9c76d016 100644 --- a/addons/stock/stock_view.xml +++ b/addons/stock/stock_view.xml @@ -765,7 +765,7 @@ - + From 29f895f947d5aaf7d267f7bd884712d93ca31194 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A9ry=20Debongnie?= Date: Mon, 1 Dec 2014 10:29:00 +0100 Subject: [PATCH 2/3] [FIX] fix editing one2many in some cases (web) See issue #3964 for more detail. Main problem was caused by commit f0e331e005d8. It set the key name+'__display' to false when reloading a record for all field types, but it was only concerned with many2many. --- addons/web/static/src/js/view_list.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/addons/web/static/src/js/view_list.js b/addons/web/static/src/js/view_list.js index f9c857c957c..3a3e8d55848 100644 --- a/addons/web/static/src/js/view_list.js +++ b/addons/web/static/src/js/view_list.js @@ -528,6 +528,7 @@ instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListVi }, reload_record: function (record) { var self = this; + var fields = this.fields_view.fields; // Use of search_read instead of read to check if we can still read the record (security rules) return this.dataset.read_ids( [record.get('id')], @@ -542,7 +543,8 @@ instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListVi return; } _.each(values, function (value, key) { - record.set(key + '__display', false, {silent: true}); + if (fields[key] && fields[key].type === 'many2many') + record.set(key + '__display', false, {silent: true}); record.set(key, value, {silent: true}); }); record.trigger('change', record); From 419d934143423c524fa5d5f9c6257ee4231b8502 Mon Sep 17 00:00:00 2001 From: Eddy Ernesto del Valle Pino Date: Thu, 20 Nov 2014 13:38:40 -0500 Subject: [PATCH 3/3] [FIX] base_calendar: meetings email notification recipients Reminder emails are generated based on the list of attendees. The email_to field used to be a string with a list of emails separated by spaces while the comma is the valid separator (RFC2822). Fixes #3933 #3784 #2033 --- addons/base_calendar/base_calendar.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/addons/base_calendar/base_calendar.py b/addons/base_calendar/base_calendar.py index 0f7ef0c45b0..64053bba712 100644 --- a/addons/base_calendar/base_calendar.py +++ b/addons/base_calendar/base_calendar.py @@ -839,8 +839,7 @@ class calendar_alarm(osv.osv): current_datetime = datetime.now() alarm_ids = self.search(cr, uid, [('state', '!=', 'done')], context=context) - mail_to = "" - + mail_to = set() for alarm in self.browse(cr, uid, alarm_ids, context=context): next_trigger_date = None update_vals = {} @@ -890,10 +889,12 @@ From: """ % (alarm.name, alarm.trigger_date, alarm.description, \ alarm.user_id.name, alarm.user_id.signature) - mail_to = alarm.user_id.email + mail_to.add(alarm.user_id.email) for att in alarm.attendee_ids: - mail_to = mail_to + " " + att.user_id.email + if att.user_id.email: + mail_to.add(att.user_id.email) if mail_to: + mail_to = ','.join(mail_to) vals = { 'state': 'outgoing', 'subject': sub, @@ -1121,7 +1122,7 @@ rule or repeating pattern of time to exclude from the recurring rule."), for att in event.attendee_ids: attendees[att.partner_id.id] = True new_attendees = [] - mail_to = "" + mail_to = set() for partner in event.partner_ids: if partner.id in attendees: continue @@ -1134,13 +1135,14 @@ rule or repeating pattern of time to exclude from the recurring rule."), 'email': partner.email }, context=local_context) if partner.email: - mail_to = mail_to + " " + partner.email + mail_to.add(partner.email) self.write(cr, uid, [event.id], { 'attendee_ids': [(4, att_id)] }, context=context) new_attendees.append(att_id) if mail_to and current_user.email: + mail_to = ','.join(mail_to) att_obj._send_mail(cr, uid, new_attendees, mail_to, email_from = current_user.email, context=context) return True