This commit translate the ics file for an event to the language chosen by the public user on the website. For connected users, the ics file is translated to the user's language. Task-3199180 closes odoo/odoo#115599 X-original-commit: 2fa5ceaf2978036f44027c19abaf17afec1d5db3 Signed-off-by: Warnon Aurélien (awa) <awa@odoo.com>
26 lines
976 B
Python
26 lines
976 B
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from werkzeug.exceptions import NotFound
|
|
|
|
from odoo.http import Controller, request, route, content_disposition
|
|
|
|
|
|
class EventController(Controller):
|
|
|
|
@route(['''/event/<model("event.event"):event>/ics'''], type='http', auth="public")
|
|
def event_ics_file(self, event, **kwargs):
|
|
if request.env.user._is_public():
|
|
frontend_lang = request.httprequest.cookies.get('frontend_lang')
|
|
if frontend_lang:
|
|
event = event.with_context(lang=frontend_lang)
|
|
files = event._get_ics_file()
|
|
if not event.id in files:
|
|
return NotFound()
|
|
content = files[event.id]
|
|
return request.make_response(content, [
|
|
('Content-Type', 'application/octet-stream'),
|
|
('Content-Length', len(content)),
|
|
('Content-Disposition', content_disposition('%s.ics' % event.name))
|
|
])
|