summaryrefslogtreecommitdiff
path: root/addons/website_event/controllers/main.py
diff options
context:
space:
mode:
authorChristophe Simonis <chs@odoo.com>2019-10-09 02:08:17 +0200
committerChristophe Simonis <chs@odoo.com>2019-10-09 02:08:17 +0200
commitd74b4518052066446e2a1975a91ce53c745ca75a (patch)
treec08180f88a512d15e37fbec628931f02b3825f65 /addons/website_event/controllers/main.py
parentec162dd0cb5622ab6e56db1a63dab5f531a96f4a (diff)
parentf4105eb9c7010f8693e5d2fd20c0bd9d9cc2e483 (diff)
[MERGE] forward port branch 13.0 up to f4105eb9c70
Diffstat (limited to 'addons/website_event/controllers/main.py')
-rw-r--r--addons/website_event/controllers/main.py23
1 files changed, 18 insertions, 5 deletions
diff --git a/addons/website_event/controllers/main.py b/addons/website_event/controllers/main.py
index 6ee8b01a42b..20031a67781 100644
--- a/addons/website_event/controllers/main.py
+++ b/addons/website_event/controllers/main.py
@@ -10,7 +10,9 @@ from dateutil.relativedelta import relativedelta
from odoo import fields, http, _
from odoo.addons.http_routing.models.ir_http import slug
+from odoo.addons.website.controllers.main import QueryURL
from odoo.http import request
+from odoo.tools.misc import get_lang
class WebsiteEventController(http.Controller):
@@ -24,6 +26,7 @@ class WebsiteEventController(http.Controller):
Event = request.env['event.event']
EventType = request.env['event.type']
+ searches.setdefault('search', '')
searches.setdefault('date', 'all')
searches.setdefault('type', 'all')
searches.setdefault('country', 'all')
@@ -65,6 +68,10 @@ class WebsiteEventController(http.Controller):
# search domains
domain_search = {'website_specific': website.website_domain()}
+
+ if searches['search']:
+ domain_search['search'] = [('name', 'ilike', searches['search'])]
+
current_date = None
current_type = None
current_country = None
@@ -73,6 +80,7 @@ class WebsiteEventController(http.Controller):
domain_search["date"] = date[2]
if date[0] != 'all':
current_date = date[1]
+
if searches["type"] != 'all':
current_type = EventType.browse(int(searches['type']))
domain_search["type"] = [("event_type_id", "=", int(searches["type"]))]
@@ -113,7 +121,7 @@ class WebsiteEventController(http.Controller):
event_count = Event.search_count(dom_without("none"))
pager = website.pager(
url="/event",
- url_args={'date': searches.get('date'), 'type': searches.get('type'), 'country': searches.get('country')},
+ url_args=searches,
total=event_count,
page=page,
step=step,
@@ -127,6 +135,8 @@ class WebsiteEventController(http.Controller):
order = 'is_published desc, ' + order
events = Event.search(dom_without("none"), limit=step, offset=pager['offset'], order=order)
+ keep = QueryURL('/event', **{key: value for key, value in searches.items() if (key == 'search' or value != 'all')})
+
values = {
'current_date': current_date,
'current_country': current_country,
@@ -137,7 +147,7 @@ class WebsiteEventController(http.Controller):
'countries': countries,
'pager': pager,
'searches': searches,
- 'search_path': "?%s" % werkzeug.url_encode(searches),
+ 'keep': keep,
}
if searches['date'] == 'old':
@@ -188,11 +198,14 @@ class WebsiteEventController(http.Controller):
if not event.can_access_from_current_website():
raise werkzeug.exceptions.NotFound()
+ urls = event._get_event_resource_urls()
values = {
'event': event,
'main_object': event,
'range': range,
- 'registrable': event.sudo()._is_event_registrable()
+ 'registrable': event.sudo()._is_event_registrable(),
+ 'google_url': urls.get('google_url'),
+ 'iCal_url': urls.get('iCal_url'),
}
return request.render("website_event.event_description_full", values)
@@ -217,7 +230,7 @@ class WebsiteEventController(http.Controller):
def get_formated_date(self, event):
start_date = fields.Datetime.from_string(event.date_begin).date()
end_date = fields.Datetime.from_string(event.date_end).date()
- month = babel.dates.get_month_names('abbreviated', locale=event.env.context.get('lang') or 'en_US')[start_date.month]
+ month = babel.dates.get_month_names('abbreviated', locale=get_lang(event.env).code)[start_date.month]
return ('%s %s%s') % (month, start_date.strftime("%e"), (end_date != start_date and ("-" + end_date.strftime("%e")) or ""))
@http.route('/event/get_country_event_list', type='json', auth='public', website=True)
@@ -282,7 +295,7 @@ class WebsiteEventController(http.Controller):
Attendees += Attendees.sudo().create(
Attendees._prepare_attendee_values(registration))
- urls = event._get_event_resource_urls(Attendees.ids)
+ urls = event._get_event_resource_urls()
return request.render("website_event.registration_complete", {
'attendees': Attendees.sudo(),
'event': event,