From 9cd3d8132b5988b855541135f567ac8c4c3a7082 Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Mon, 5 Aug 2013 14:44:28 +0200 Subject: [PATCH 01/10] [IMP] website_event bzr revid: chm@openerp.com-20130805124428-9pnqbdb68lruqnxq --- addons/website_event/controllers/main.py | 28 ++++++++++++++------ addons/website_event/views/website_event.xml | 17 ++++-------- addons/website_mail/controllers/main.py | 2 -- 3 files changed, 25 insertions(+), 22 deletions(-) diff --git a/addons/website_event/controllers/main.py b/addons/website_event/controllers/main.py index 4d870730f34..a18948c1010 100644 --- a/addons/website_event/controllers/main.py +++ b/addons/website_event/controllers/main.py @@ -1,5 +1,6 @@ # -*- coding: utf-8 -*- +from openerp import SUPERUSER_ID from openerp.addons.web import http from openerp.addons.web.http import request from openerp.addons.website import website @@ -15,8 +16,11 @@ class website_hr(http.Controller): @http.route(['/event'], type='http', auth="public") def events(self, **searches): - data_obj = request.registry['event.event'] + event_obj = request.registry['event.event'] + searches.setdefault('date', 'all') + searches.setdefault('type', 'all') + domain_search = {} def sd(date): return date.strftime(tools.DEFAULT_SERVER_DATETIME_FORMAT) @@ -45,14 +49,21 @@ class website_hr(http.Controller): 0], ] - domain_search = { - 'date': 'all' - } - # search domains for date in dates: if searches.get("date") == date[0]: domain_search["date"] = date[2] + if searches.get("type") and searches.get("type") != 'all': + domain_search["type"] = [("type", "=", searches.get("type"))] + + + domain = [(1, "=", 1)] + for key, search in domain_search.items(): + if key != 'type': + domain += search + types = event_obj.read_group(request.cr, request.uid, domain, ["id", "type"], groupby="type", orderby="type") + types.insert(0, {'type_count': event_obj.search(request.cr, request.uid, domain, count=True), 'type': ("all", _("All Categories"))}) + # count by domains without self search domain = [(1, "=", 1)] @@ -60,7 +71,7 @@ class website_hr(http.Controller): if key != 'date': domain += search for date in dates: - date[3] = data_obj.search(request.cr, request.uid, domain + date[2], count=True) + date[3] = event_obj.search(request.cr, request.uid, domain + date[2], count=True) @@ -69,10 +80,11 @@ class website_hr(http.Controller): for key, search in domain_search.items(): domain += search - obj_ids = data_obj.search(request.cr, request.uid, domain) + obj_ids = event_obj.search(request.cr, request.uid, domain) values = { - 'event_ids': data_obj.browse(request.cr, request.uid, obj_ids), + 'event_ids': event_obj.browse(request.cr, request.uid, obj_ids), 'dates': dates, + 'types': types, 'searches': searches, 'search_path': "?%s" % urllib.urlencode(searches), } diff --git a/addons/website_event/views/website_event.xml b/addons/website_event/views/website_event.xml index e070c1c4f4f..72ae95ef192 100644 --- a/addons/website_event/views/website_event.xml +++ b/addons/website_event/views/website_event.xml @@ -49,18 +49,11 @@