|
12 | 12 | from werkzeug import urls |
13 | 13 |
|
14 | 14 | from odoo import api, fields, models, tools, _ |
| 15 | +from odoo.exceptions import UserError |
15 | 16 | from odoo.osv import expression |
16 | 17 | from odoo.tools import exception_to_unicode |
17 | 18 |
|
@@ -263,7 +264,20 @@ def create_an_event(self, event): |
263 | 264 | url = "/calendar/v3/calendars/%s/events?fields=%s&access_token=%s" % ('primary', urls.url_quote('id,updated'), self.get_token()) |
264 | 265 | headers = {'Content-type': 'application/json', 'Accept': 'text/plain'} |
265 | 266 | data_json = json.dumps(data) |
266 | | - return self.env['google.service']._do_request(url, data_json, headers, type='POST') |
| 267 | + try: |
| 268 | + return self.env['google.service']._do_request(url, data_json, headers, type='POST') |
| 269 | + except requests.HTTPError as e: |
| 270 | + try: |
| 271 | + response = e.response.json() |
| 272 | + error = response.get('error', {}).get('message') |
| 273 | + except Exception: |
| 274 | + error = None |
| 275 | + if not error: |
| 276 | + raise e |
| 277 | + message = _('The event "%s", %s (ID: %s) cannot be synchronized because of the following error: %s') % ( |
| 278 | + event.name, event.start, event.id, error |
| 279 | + ) |
| 280 | + raise UserError(message) |
267 | 281 |
|
268 | 282 | def delete_an_event(self, event_id): |
269 | 283 | """ Delete the given event in primary calendar of google cal. |
|
0 commit comments