"name" : "web",
"depends" : [],
'active': True,
"name" : "web",
"depends" : [],
'active': True,
+ 'post_load' : 'wsgi_postload',
+ 'web_preload' : True,
'js' : [
"static/lib/datejs/globalization/en-US.js",
"static/lib/datejs/core.js",
'js' : [
"static/lib/datejs/globalization/en-US.js",
"static/lib/datejs/core.js",
"static/src/css/data_export.css",
"static/src/css/data_import.css",
],
"static/src/css/data_export.css",
"static/src/css/data_import.css",
],
- 'post_load' : 'wsgi_postload',
# 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 = []
for addon in addons:
manifest = openerpweb.addons_manifest.get(addon, {})
files = []
for addon in addons:
manifest = openerpweb.addons_manifest.get(addon, {})
files.append(path[len(addons_path):])
return files
files.append(path[len(addons_path):])
return files
+# TODO change into concat_file(addons,key) taking care of addons_path
def concat_files(addons_path, file_list):
""" Concatenate file content
return (concat,timestamp)
def concat_files(addons_path, file_list):
""" Concatenate file content
return (concat,timestamp)
_cp_path = "/web/webclient"
@openerpweb.jsonrequest
_cp_path = "/web/webclient"
@openerpweb.jsonrequest
- def csslist(self, req, mods='web'):
- return manifest_glob(mods.split(','), 'css')
+ def csslist(self, req, mods=None):
+ return manifest_glob(mods, 'css')
- def jslist(self, req, mods='web'):
- return manifest_glob(mods.split(','), 'js')
+ def jslist(self, req, mods=None):
+ return manifest_glob(mods, 'js')
- def css(self, req, mods='web'):
- files = manifest_glob(mods.split(','), 'css')
+ def css(self, req, mods=None):
+ files = manifest_glob(mods, 'css')
content,timestamp = concat_files(req.config.addons_path, files)
# TODO request set the Date of last modif and Etag
return req.make_response(content, [('Content-Type', 'text/css')])
@openerpweb.httprequest
content,timestamp = concat_files(req.config.addons_path, files)
# TODO request set the Date of last modif and Etag
return req.make_response(content, [('Content-Type', 'text/css')])
@openerpweb.httprequest
- def js(self, req, mods='web'):
- files = manifest_glob(mods.split(','), 'js')
+ def js(self, req, mods=None):
+ files = manifest_glob(mods, 'js')
content,timestamp = concat_files(req.config.addons_path, files)
# TODO request set the Date of last modif and Etag
return req.make_response(content, [('Content-Type', 'application/javascript')])
content,timestamp = concat_files(req.config.addons_path, files)
# TODO request set the Date of last modif and Etag
return req.make_response(content, [('Content-Type', 'application/javascript')])
# script tags
jslist = ['/web/webclient/js']
if req.debug:
# script tags
jslist = ['/web/webclient/js']
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])
# css tags
csslist = ['/web/webclient/css']
if req.debug:
js = "\n ".join(['<script type="text/javascript" src="%s"></script>'%i for i in jslist])
# css tags
csslist = ['/web/webclient/css']
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])
r = home_template % {
'javascript': js,
css = "\n ".join(['<link rel="stylesheet" href="%s">'%i for i in csslist])
r = home_template % {
'javascript': js,
"context": ctx,
"db": req.session._db
}
"context": ctx,
"db": req.session._db
}
@openerpweb.jsonrequest
def get_session_info(self, req):
req.session.assert_valid(force=True)
@openerpweb.jsonrequest
def get_session_info(self, req):
req.session.assert_valid(force=True)
"context": req.session.get_context() if req.session._uid else False,
"db": req.session._db
}
"context": req.session.get_context() if req.session._uid else False,
"db": req.session._db
}
@openerpweb.jsonrequest
def change_password (self,req,fields):
old_password, new_password,confirm_password = operator.itemgetter('old_pwd', 'new_password','confirm_pwd')(
@openerpweb.jsonrequest
def change_password (self,req,fields):
old_password, new_password,confirm_password = operator.itemgetter('old_pwd', 'new_password','confirm_pwd')(
except:
return {'error': 'Original password incorrect, your password was not changed.', 'title': 'Change Password'}
return {'error': 'Error, password not changed !', 'title': 'Change Password'}
except:
return {'error': 'Original password incorrect, your password was not changed.', 'title': 'Change Password'}
return {'error': 'Error, password not changed !', 'title': 'Change Password'}
@openerpweb.jsonrequest
def sc_list(self, req):
return req.session.model('ir.ui.view_sc').get_sc(
@openerpweb.jsonrequest
def sc_list(self, req):
return req.session.model('ir.ui.view_sc').get_sc(
# TODO query server for installed web modules
mods = []
for name, manifest in openerpweb.addons_manifest.items():
# TODO query server for installed web modules
mods = []
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)
return mods
mods.append(name)
return mods