[IMP] web_preload python-side
bzr revid: al@openerp.com-20110927001435-vttw23epyru5gm0b
This commit is contained in:
parent
56435cf23d
commit
5e303d0ea4
|
@ -2,6 +2,8 @@
|
||||||
"name" : "web",
|
"name" : "web",
|
||||||
"depends" : [],
|
"depends" : [],
|
||||||
'active': True,
|
'active': True,
|
||||||
|
'post_load' : 'wsgi_postload',
|
||||||
|
'web_preload' : True,
|
||||||
'js' : [
|
'js' : [
|
||||||
"static/lib/datejs/globalization/en-US.js",
|
"static/lib/datejs/globalization/en-US.js",
|
||||||
"static/lib/datejs/core.js",
|
"static/lib/datejs/core.js",
|
||||||
|
@ -48,5 +50,4 @@
|
||||||
"static/src/css/data_export.css",
|
"static/src/css/data_export.css",
|
||||||
"static/src/css/data_import.css",
|
"static/src/css/data_import.css",
|
||||||
],
|
],
|
||||||
'post_load' : 'wsgi_postload',
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -68,7 +68,19 @@ class Xml2Json:
|
||||||
# OpenERP Web web Controllers
|
# OpenERP Web web Controllers
|
||||||
#----------------------------------------------------------
|
#----------------------------------------------------------
|
||||||
|
|
||||||
|
def manifest_preload():
|
||||||
|
modules = [k for k,v in openerpweb.addons_manifest.items() if v.get('web_preload')]
|
||||||
|
return modules
|
||||||
|
|
||||||
|
def manifest_addons(addons):
|
||||||
|
if addons==None:
|
||||||
|
addons = manifest_preload()
|
||||||
|
else:
|
||||||
|
addons = addons.split(',')
|
||||||
|
return addons
|
||||||
|
|
||||||
def manifest_glob(addons, key):
|
def manifest_glob(addons, key):
|
||||||
|
addons = manifest_addons(addons)
|
||||||
files = []
|
files = []
|
||||||
for addon in addons:
|
for addon in addons:
|
||||||
manifest = openerpweb.addons_manifest.get(addon, {})
|
manifest = openerpweb.addons_manifest.get(addon, {})
|
||||||
|
@ -79,6 +91,7 @@ def manifest_glob(addons, key):
|
||||||
files.append(path[len(addons_path):])
|
files.append(path[len(addons_path):])
|
||||||
return files
|
return files
|
||||||
|
|
||||||
|
# TODO change into concat_file(addons,key) taking care of addons_path
|
||||||
def concat_files(addons_path, file_list):
|
def concat_files(addons_path, file_list):
|
||||||
""" Concatenate file content
|
""" Concatenate file content
|
||||||
return (concat,timestamp)
|
return (concat,timestamp)
|
||||||
|
@ -119,23 +132,23 @@ class WebClient(openerpweb.Controller):
|
||||||
_cp_path = "/web/webclient"
|
_cp_path = "/web/webclient"
|
||||||
|
|
||||||
@openerpweb.jsonrequest
|
@openerpweb.jsonrequest
|
||||||
def csslist(self, req, mods='web'):
|
def csslist(self, req, mods=None):
|
||||||
return manifest_glob(mods.split(','), 'css')
|
return manifest_glob(mods, 'css')
|
||||||
|
|
||||||
@openerpweb.jsonrequest
|
@openerpweb.jsonrequest
|
||||||
def jslist(self, req, mods='web'):
|
def jslist(self, req, mods=None):
|
||||||
return manifest_glob(mods.split(','), 'js')
|
return manifest_glob(mods, 'js')
|
||||||
|
|
||||||
@openerpweb.httprequest
|
@openerpweb.httprequest
|
||||||
def css(self, req, mods='web'):
|
def css(self, req, mods=None):
|
||||||
files = manifest_glob(mods.split(','), 'css')
|
files = manifest_glob(mods, 'css')
|
||||||
content,timestamp = concat_files(req.config.addons_path, files)
|
content,timestamp = concat_files(req.config.addons_path, files)
|
||||||
# TODO request set the Date of last modif and Etag
|
# TODO request set the Date of last modif and Etag
|
||||||
return req.make_response(content, [('Content-Type', 'text/css')])
|
return req.make_response(content, [('Content-Type', 'text/css')])
|
||||||
|
|
||||||
@openerpweb.httprequest
|
@openerpweb.httprequest
|
||||||
def js(self, req, mods='web'):
|
def js(self, req, mods=None):
|
||||||
files = manifest_glob(mods.split(','), 'js')
|
files = manifest_glob(mods, 'js')
|
||||||
content,timestamp = concat_files(req.config.addons_path, files)
|
content,timestamp = concat_files(req.config.addons_path, files)
|
||||||
# TODO request set the Date of last modif and Etag
|
# TODO request set the Date of last modif and Etag
|
||||||
return req.make_response(content, [('Content-Type', 'application/javascript')])
|
return req.make_response(content, [('Content-Type', 'application/javascript')])
|
||||||
|
@ -145,13 +158,13 @@ class WebClient(openerpweb.Controller):
|
||||||
# script tags
|
# script tags
|
||||||
jslist = ['/web/webclient/js']
|
jslist = ['/web/webclient/js']
|
||||||
if req.debug:
|
if req.debug:
|
||||||
jslist = [i + '?debug=' + str(time.time()) for i in manifest_glob(['web'], 'js')]
|
jslist = [i + '?debug=' + str(time.time()) for i in manifest_glob(None, 'js')]
|
||||||
js = "\n ".join(['<script type="text/javascript" src="%s"></script>'%i for i in jslist])
|
js = "\n ".join(['<script type="text/javascript" src="%s"></script>'%i for i in jslist])
|
||||||
|
|
||||||
# css tags
|
# css tags
|
||||||
csslist = ['/web/webclient/css']
|
csslist = ['/web/webclient/css']
|
||||||
if req.debug:
|
if req.debug:
|
||||||
csslist = [i + '?debug=' + str(time.time()) for i in manifest_glob(['web'], 'css')]
|
csslist = [i + '?debug=' + str(time.time()) for i in manifest_glob(None, 'css')]
|
||||||
css = "\n ".join(['<link rel="stylesheet" href="%s">'%i for i in csslist])
|
css = "\n ".join(['<link rel="stylesheet" href="%s">'%i for i in csslist])
|
||||||
r = home_template % {
|
r = home_template % {
|
||||||
'javascript': js,
|
'javascript': js,
|
||||||
|
@ -302,6 +315,7 @@ class Session(openerpweb.Controller):
|
||||||
"context": ctx,
|
"context": ctx,
|
||||||
"db": req.session._db
|
"db": req.session._db
|
||||||
}
|
}
|
||||||
|
|
||||||
@openerpweb.jsonrequest
|
@openerpweb.jsonrequest
|
||||||
def get_session_info(self, req):
|
def get_session_info(self, req):
|
||||||
req.session.assert_valid(force=True)
|
req.session.assert_valid(force=True)
|
||||||
|
@ -310,6 +324,7 @@ class Session(openerpweb.Controller):
|
||||||
"context": req.session.get_context() if req.session._uid else False,
|
"context": req.session.get_context() if req.session._uid else False,
|
||||||
"db": req.session._db
|
"db": req.session._db
|
||||||
}
|
}
|
||||||
|
|
||||||
@openerpweb.jsonrequest
|
@openerpweb.jsonrequest
|
||||||
def change_password (self,req,fields):
|
def change_password (self,req,fields):
|
||||||
old_password, new_password,confirm_password = operator.itemgetter('old_pwd', 'new_password','confirm_pwd')(
|
old_password, new_password,confirm_password = operator.itemgetter('old_pwd', 'new_password','confirm_pwd')(
|
||||||
|
@ -325,6 +340,7 @@ class Session(openerpweb.Controller):
|
||||||
except:
|
except:
|
||||||
return {'error': 'Original password incorrect, your password was not changed.', 'title': 'Change Password'}
|
return {'error': 'Original password incorrect, your password was not changed.', 'title': 'Change Password'}
|
||||||
return {'error': 'Error, password not changed !', 'title': 'Change Password'}
|
return {'error': 'Error, password not changed !', 'title': 'Change Password'}
|
||||||
|
|
||||||
@openerpweb.jsonrequest
|
@openerpweb.jsonrequest
|
||||||
def sc_list(self, req):
|
def sc_list(self, req):
|
||||||
return req.session.model('ir.ui.view_sc').get_sc(
|
return req.session.model('ir.ui.view_sc').get_sc(
|
||||||
|
@ -345,7 +361,8 @@ class Session(openerpweb.Controller):
|
||||||
# TODO query server for installed web modules
|
# TODO query server for installed web modules
|
||||||
mods = []
|
mods = []
|
||||||
for name, manifest in openerpweb.addons_manifest.items():
|
for name, manifest in openerpweb.addons_manifest.items():
|
||||||
if name != 'web' and manifest.get('active', True):
|
# TODO replace by ir.module.module installed web
|
||||||
|
if not manifest.get('web_preload') and manifest.get('active', True):
|
||||||
mods.append(name)
|
mods.append(name)
|
||||||
return mods
|
return mods
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue