diff options
| author | Christophe Matthieu <chm@odoo.com> | 2014-06-18 14:50:24 +0200 |
|---|---|---|
| committer | Christophe Matthieu <chm@odoo.com> | 2014-06-18 14:50:24 +0200 |
| commit | 890a9ac65211f4ecf15919195bf6c355c866922e (patch) | |
| tree | 4518919bc066f42169bb9301fe3fdfff22273bfb /addons/website_event/controllers/main.py | |
| parent | 3160eb74c4432fd07887a59cc8ef461af4979da2 (diff) | |
[IMP] website: set geoip in user session
Diffstat (limited to 'addons/website_event/controllers/main.py')
| -rw-r--r-- | addons/website_event/controllers/main.py | 30 |
1 files changed, 7 insertions, 23 deletions
diff --git a/addons/website_event/controllers/main.py b/addons/website_event/controllers/main.py index 16a6bd24edf..2e9aa4616d2 100644 --- a/addons/website_event/controllers/main.py +++ b/addons/website_event/controllers/main.py @@ -19,28 +19,18 @@ # ############################################################################## -import logging import time from datetime import datetime, timedelta from dateutil.relativedelta import relativedelta import werkzeug.urls -from openerp import SUPERUSER_ID from openerp import http from openerp import tools from openerp.http import request from openerp.tools.translate import _ from openerp.addons.website.models.website import slug -_logger = logging.getLogger(__name__) - -try: - import GeoIP -except ImportError: - GeoIP = None - _logger.warn("Please install GeoIP python module to use events localisation.") - class website_event(http.Controller): @http.route(['/event', '/event/page/<int:page>'], type='http', auth="public", website=True) def events(self, page=1, **searches): @@ -214,10 +204,6 @@ class website_event(http.Controller): event = Event.browse(request.cr, request.uid, event_id, context=context) return request.redirect("/event/%s/register?enable_editor=1" % slug(event)) - def get_visitors_country(self): - GI = GeoIP.open('/usr/share/GeoIP/GeoIP.dat', 0) - return {'country_code': GI.country_code_by_addr(request.httprequest.remote_addr), 'country_name': GI.country_name_by_addr(request.httprequest.remote_addr)} - def get_formated_date(self, event): start_date = datetime.strptime(event.date_begin, tools.DEFAULT_SERVER_DATETIME_FORMAT).date() end_date = datetime.strptime(event.date_end, tools.DEFAULT_SERVER_DATETIME_FORMAT).date() @@ -225,21 +211,19 @@ class website_event(http.Controller): @http.route('/event/get_country_event_list', type='http', auth='public', website=True) def get_country_events(self ,**post): - if not GeoIP: - return "" + cr, uid, context, event_ids = request.cr, request.uid, request.context,[] country_obj = request.registry['res.country'] event_obj = request.registry['event.event'] - cr, uid, context,event_ids = request.cr, request.uid, request.context,[] - country_code = self.get_visitors_country()['country_code'] + country_code = request.session['geoip'].get('country_code') result = {'events':[],'country':False} if country_code: - country_ids = country_obj.search(request.cr, request.uid, [('code', '=', country_code)], context=request.context) - event_ids = event_obj.search(request.cr, request.uid, ['|', ('address_id', '=', None),('country_id.code', '=', country_code),('date_begin','>=', time.strftime('%Y-%m-%d 00:00:00')),('state', '=', 'confirm')], order="date_begin", context=request.context) + country_ids = country_obj.search(cr, uid, [('code', '=', country_code)], context=context) + event_ids = event_obj.search(cr, uid, ['|', ('address_id', '=', None),('country_id.code', '=', country_code),('date_begin','>=', time.strftime('%Y-%m-%d 00:00:00')),('state', '=', 'confirm')], order="date_begin", context=context) if not event_ids: - event_ids = event_obj.search(request.cr, request.uid, [('date_begin','>=', time.strftime('%Y-%m-%d 00:00:00')),('state', '=', 'confirm')], order="date_begin", context=request.context) - for event in event_obj.browse(request.cr, request.uid, event_ids, context=request.context)[:6]: + event_ids = event_obj.search(cr, uid, [('date_begin','>=', time.strftime('%Y-%m-%d 00:00:00')),('state', '=', 'confirm')], order="date_begin", context=context) + for event in event_obj.browse(cr, uid, event_ids, context=context)[:6]: if country_code and event.country_id.code == country_code: - result['country'] = country_obj.browse(request.cr, request.uid, country_ids[0], context=request.context) + result['country'] = country_obj.browse(cr, uid, country_ids[0], context=context) result['events'].append({ "date": self.get_formated_date(event), "event": event, |
