+ @http.route(['/website/seo_suggest/<keywords>'], type='http', auth="public", website=True)
+ def seo_suggest(self, keywords):
+ url = "http://google.com/complete/search"
+ try:
+ req = urllib2.Request("%s?%s" % (url, werkzeug.url_encode({
+ 'ie': 'utf8', 'oe': 'utf8', 'output': 'toolbar', 'q': keywords})))
+ request = urllib2.urlopen(req)
+ except (urllib2.HTTPError, urllib2.URLError):
+ return []
+ xmlroot = ET.fromstring(request.read())
+ return json.dumps([sugg[0].attrib['data'] for sugg in xmlroot if len(sugg) and sugg[0].attrib['data']])
+
+ #------------------------------------------------------
+ # Themes
+ #------------------------------------------------------
+
+ def get_view_ids(self, xml_ids):
+ ids = []
+ imd = request.registry['ir.model.data']
+ for xml_id in xml_ids:
+ if "." in xml_id:
+ xml = xml_id.split(".")
+ view_model, id = imd.get_object_reference(request.cr, request.uid, xml[0], xml[1])
+ else:
+ id = int(xml_id)
+ ids.append(id)
+ return ids
+
+ @http.route(['/website/theme_customize_get'], type='json', auth="public", website=True)
+ def theme_customize_get(self, xml_ids):
+ view = request.registry["ir.ui.view"]
+ enable = []
+ disable = []
+ ids = self.get_view_ids(xml_ids)
+ context = dict(request.context or {}, active_test=True)
+ for v in view.browse(request.cr, request.uid, ids, context=context):
+ if v.active:
+ enable.append(v.xml_id)
+ else:
+ disable.append(v.xml_id)
+ return [enable, disable]
+
+ @http.route(['/website/theme_customize'], type='json', auth="public", website=True)
+ def theme_customize(self, enable, disable):
+ """ enable or Disable lists of ``xml_id`` of the inherit templates
+ """
+ cr, uid, context, pool = request.cr, request.uid, request.context, request.registry
+ view = pool["ir.ui.view"]
+
+ def set_active(ids, active):
+ if ids:
+ view.write(cr, uid, ids, {'active': active}, context=dict(request.context or {}, active_test=True))
+
+ set_active(disable, False)
+ set_active(enable, True)
+
+ return True
+
+ @http.route(['/website/theme_customize_reload'], type='http', auth="public", website=True)
+ def theme_customize_reload(self, href, enable, disable):
+ self.theme_customize(enable and enable.split(",") or [],disable and disable.split(",") or [])
+ return request.redirect(href + ("&theme=true" if "#" in href else "#theme=true"))
+