summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--addons/calendar/models/calendar_event.py14
-rw-r--r--addons/calendar/tests/test_attendees.py4
-rw-r--r--addons/google_calendar/models/calendar.py3
-rw-r--r--addons/hr_holidays/models/hr_leave.py1
-rw-r--r--addons/hr_holidays/tests/test_company_leave.py2
5 files changed, 14 insertions, 10 deletions
diff --git a/addons/calendar/models/calendar_event.py b/addons/calendar/models/calendar_event.py
index 903e5a772a7..ab446d2ff69 100644
--- a/addons/calendar/models/calendar_event.py
+++ b/addons/calendar/models/calendar_event.py
@@ -475,11 +475,12 @@ class Meeting(models.Model):
added_partner_ids += [command[1]] if command[1] not in self.partner_ids.ids else []
# commands 0 and 1 not supported
- attendees_to_unlink = self.env['calendar.attendee'].search([
- ('event_id', 'in', self.ids),
- ('partner_id', 'in', removed_partner_ids),
- ])
- attendee_commands += [[2, attendee.id] for attendee in attendees_to_unlink] # Removes and delete
+ if removed_partner_ids:
+ attendees_to_unlink = self.env['calendar.attendee'].search([
+ ('event_id', 'in', self.ids),
+ ('partner_id', 'in', removed_partner_ids),
+ ])
+ attendee_commands += [[2, attendee.id] for attendee in attendees_to_unlink] # Removes and delete
attendee_commands += [
[0, 0, dict(partner_id=partner_id)]
@@ -699,8 +700,9 @@ class Meeting(models.Model):
activity_vals['user_id'] = user_id
values['activity_ids'] = [(0, 0, activity_vals)]
+ self_partner_id = [(4, self.env.user.partner_id.id)]
vals_list = [
- dict(vals, attendee_ids=self._attendees_values(vals['partner_ids'])) if 'partner_ids' in vals else vals
+ dict(vals, attendee_ids=self._attendees_values(vals.get('partner_ids', self_partner_id)))
for vals in vals_list
]
recurrence_fields = self._get_recurrent_fields()
diff --git a/addons/calendar/tests/test_attendees.py b/addons/calendar/tests/test_attendees.py
index 7b3389b717c..74c3f843ced 100644
--- a/addons/calendar/tests/test_attendees.py
+++ b/addons/calendar/tests/test_attendees.py
@@ -11,12 +11,12 @@ class TestEventNotifications(SavepointCase):
@classmethod
def setUpClass(cls):
super().setUpClass()
- cls.event = cls.env['calendar.event'].create({
+ cls.user = new_test_user(cls.env, 'xav', email='em@il.com', notification_type='inbox')
+ cls.event = cls.env['calendar.event'].with_user(cls.user).create({
'name': "Doom's day",
'start': datetime(2019, 10, 25, 8, 0),
'stop': datetime(2019, 10, 27, 18, 0),
}).with_context(mail_notrack=True)
- cls.user = new_test_user(cls.env, 'xav', email='em@il.com', notification_type='inbox')
cls.partner = cls.user.partner_id
def test_attendee_added(self):
diff --git a/addons/google_calendar/models/calendar.py b/addons/google_calendar/models/calendar.py
index 765473509ba..80d2cb7ca9d 100644
--- a/addons/google_calendar/models/calendar.py
+++ b/addons/google_calendar/models/calendar.py
@@ -167,6 +167,7 @@ class Meeting(models.Model):
'method': "email" if alarm.alarm_type == "email" else "popup",
'minutes': alarm.duration_minutes
} for alarm in self.alarm_ids]
+ attendee_ids = self.attendee_ids.filtered(lambda a: a.partner_id != self.env.user.partner_id)
values = {
'id': self.google_id,
'start': start,
@@ -176,7 +177,7 @@ class Meeting(models.Model):
'location': self.location or '',
'guestsCanModify': True,
'organizer': {'email': self.user_id.email, 'self': self.user_id == self.env.user},
- 'attendees': [{'email': attendee.email, 'responseStatus': attendee.state} for attendee in self.attendee_ids],
+ 'attendees': [{'email': attendee.email, 'responseStatus': attendee.state} for attendee in attendee_ids],
'extendedProperties': {
'shared': {
'%s_odoo_id' % self.env.cr.dbname: self.id,
diff --git a/addons/hr_holidays/models/hr_leave.py b/addons/hr_holidays/models/hr_leave.py
index fed3140b8a8..e7cd61bc870 100644
--- a/addons/hr_holidays/models/hr_leave.py
+++ b/addons/hr_holidays/models/hr_leave.py
@@ -895,6 +895,7 @@ class HolidaysRequest(models.Model):
'privacy': 'confidential',
'event_tz': holiday.user_id.tz,
'activity_ids': [(5, 0, 0)],
+ 'partner_ids': [],
}
# Add the partner_id (if exist) as an attendee
if holiday.user_id and holiday.user_id.partner_id:
diff --git a/addons/hr_holidays/tests/test_company_leave.py b/addons/hr_holidays/tests/test_company_leave.py
index c34c3c93fa2..00217a267b5 100644
--- a/addons/hr_holidays/tests/test_company_leave.py
+++ b/addons/hr_holidays/tests/test_company_leave.py
@@ -313,7 +313,7 @@ class TestCompanyLeave(SavepointCase):
})
company_leave._compute_date_from_to()
- count = 865
+ count = 863
with self.assertQueryCount(__system__=count, admin=count):
# Original query count: 1987
# Without tracking/activity context keys: 5154