[FIX]Web: Refixed the issue of context propagation, we must not remove search_default...
[odoo/odoo.git] / addons / edi / controllers / main.py
1 import simplejson
2 import urllib
3
4 import openerp.addons.web.http as openerpweb
5 import openerp.addons.web.controllers.main as webmain
6
7 class EDI(openerpweb.Controller):
8     # http://hostname:8069/edi/import_url?url=URIEncodedURL
9     _cp_path = "/edi"
10
11     @openerpweb.httprequest
12     def import_url(self, req, url):
13         modules = webmain.module_boot(req) + ['edi']
14         modules_str = ','.join(modules)
15         modules_json = simplejson.dumps(modules)
16         js = "\n        ".join('<script type="text/javascript" src="%s"></script>' % i for i in webmain.manifest_list(req, modules_str, 'js'))
17         css = "\n        ".join('<link rel="stylesheet" href="%s">' % i for i in webmain.manifest_list(req, modules_str, 'css'))
18
19         # `url` may contain a full URL with a valid query string, we basically want to watch out for XML brackets and double-quotes 
20         safe_url = urllib.quote_plus(url,':/?&;=')
21
22         return webmain.html_template % {
23             'js': js,
24             'css': css,
25             'modules': modules_json,
26             'init': 's.edi.edi_import("%s");' % safe_url,
27         }
28
29     @openerpweb.jsonrequest
30     def import_edi_url(self, req, url):
31         result = req.session.proxy('edi').import_edi_url(req.session._db, req.session._uid, req.session._password, url)
32         if len(result) == 1:
33             return {"action": webmain.clean_action(req, result[0][2])}
34         return True
35
36 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: