add --db-filter option
bzr revid: al@openerp.com-20110713102612-0lu8s1ausql3j07s
This commit is contained in:
parent
0485c630de
commit
3acbdf8153
|
@ -1,6 +1,5 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
import base64
|
import base64, glob, os, re
|
||||||
import glob, os
|
|
||||||
from xml.etree import ElementTree
|
from xml.etree import ElementTree
|
||||||
from cStringIO import StringIO
|
from cStringIO import StringIO
|
||||||
|
|
||||||
|
@ -55,6 +54,20 @@ class Xml2Json:
|
||||||
# OpenERP Web base Controllers
|
# OpenERP Web base Controllers
|
||||||
#----------------------------------------------------------
|
#----------------------------------------------------------
|
||||||
|
|
||||||
|
class Database(openerpweb.Controller):
|
||||||
|
_cp_path = "/base/database"
|
||||||
|
|
||||||
|
@openerpweb.jsonrequest
|
||||||
|
def get_databases_list(self, req):
|
||||||
|
proxy = req.session.proxy("db")
|
||||||
|
dbs = proxy.list()
|
||||||
|
h = req.httprequest.headers['Host'].split(':')[0]
|
||||||
|
d = h.split(':')[0]
|
||||||
|
r = cherrypy.config['openerp.dbfilter'].replace('%h',h).replace('%d',d)
|
||||||
|
print "h,d",h,d,r
|
||||||
|
dbs = [i for i in dbs if re.match(r,i)]
|
||||||
|
return {"db_list": dbs}
|
||||||
|
|
||||||
class Session(openerpweb.Controller):
|
class Session(openerpweb.Controller):
|
||||||
_cp_path = "/base/session"
|
_cp_path = "/base/session"
|
||||||
|
|
||||||
|
@ -103,13 +116,6 @@ class Session(openerpweb.Controller):
|
||||||
return req.session.model('ir.ui.view_sc').get_sc(req.session._uid, "ir.ui.menu",
|
return req.session.model('ir.ui.view_sc').get_sc(req.session._uid, "ir.ui.menu",
|
||||||
req.session.eval_context(req.context))
|
req.session.eval_context(req.context))
|
||||||
|
|
||||||
@openerpweb.jsonrequest
|
|
||||||
def get_databases_list(self, req):
|
|
||||||
proxy = req.session.proxy("db")
|
|
||||||
dbs = proxy.list()
|
|
||||||
|
|
||||||
return {"db_list": dbs}
|
|
||||||
|
|
||||||
@openerpweb.jsonrequest
|
@openerpweb.jsonrequest
|
||||||
def modules(self, req):
|
def modules(self, req):
|
||||||
return {"modules": [name
|
return {"modules": [name
|
||||||
|
@ -230,14 +236,14 @@ class Session(openerpweb.Controller):
|
||||||
if not saved_actions:
|
if not saved_actions:
|
||||||
return None
|
return None
|
||||||
return saved_actions["actions"].get(key)
|
return saved_actions["actions"].get(key)
|
||||||
|
|
||||||
def eval_context_and_domain(session, context, domain=None):
|
def eval_context_and_domain(session, context, domain=None):
|
||||||
e_context = session.eval_context(context)
|
e_context = session.eval_context(context)
|
||||||
# should we give the evaluated context as an evaluation context to the domain?
|
# should we give the evaluated context as an evaluation context to the domain?
|
||||||
e_domain = session.eval_domain(domain or [])
|
e_domain = session.eval_domain(domain or [])
|
||||||
|
|
||||||
return e_context, e_domain
|
return e_context, e_domain
|
||||||
|
|
||||||
def load_actions_from_ir_values(req, key, key2, models, meta, context):
|
def load_actions_from_ir_values(req, key, key2, models, meta, context):
|
||||||
Values = req.session.model('ir.values')
|
Values = req.session.model('ir.values')
|
||||||
actions = Values.get(key, key2, models, meta, context)
|
actions = Values.get(key, key2, models, meta, context)
|
||||||
|
@ -301,7 +307,6 @@ def generate_views(action):
|
||||||
return
|
return
|
||||||
action['views'] = [(view_id, view_modes[0])]
|
action['views'] = [(view_id, view_modes[0])]
|
||||||
|
|
||||||
|
|
||||||
def fix_view_modes(action):
|
def fix_view_modes(action):
|
||||||
""" For historical reasons, OpenERP has weird dealings in relation to
|
""" For historical reasons, OpenERP has weird dealings in relation to
|
||||||
view_mode and the view_type attribute (on window actions):
|
view_mode and the view_type attribute (on window actions):
|
||||||
|
@ -545,7 +550,7 @@ class View(openerpweb.Controller):
|
||||||
# todo fme?: check that we should pass the evaluated context here
|
# todo fme?: check that we should pass the evaluated context here
|
||||||
self.process_view(request.session, fvg, context, transform)
|
self.process_view(request.session, fvg, context, transform)
|
||||||
return fvg
|
return fvg
|
||||||
|
|
||||||
def process_view(self, session, fvg, context, transform):
|
def process_view(self, session, fvg, context, transform):
|
||||||
# depending on how it feels, xmlrpclib.ServerProxy can translate
|
# depending on how it feels, xmlrpclib.ServerProxy can translate
|
||||||
# XML-RPC strings to ``str`` or ``unicode``. ElementTree does not
|
# XML-RPC strings to ``str`` or ``unicode``. ElementTree does not
|
||||||
|
@ -809,3 +814,5 @@ class Action(openerpweb.Controller):
|
||||||
def run(self, req, action_id):
|
def run(self, req, action_id):
|
||||||
return clean_action(req.session.model('ir.actions.server').run(
|
return clean_action(req.session.model('ir.actions.server').run(
|
||||||
[action_id], req.session.eval_context(req.context)), req.session)
|
[action_id], req.session.eval_context(req.context)), req.session)
|
||||||
|
|
||||||
|
#
|
||||||
|
|
|
@ -930,7 +930,7 @@ openerp.base.Login = openerp.base.Controller.extend({
|
||||||
},
|
},
|
||||||
start: function() {
|
start: function() {
|
||||||
var self = this;
|
var self = this;
|
||||||
this.rpc("/base/session/get_databases_list", {}, function(result) {
|
this.rpc("/base/database/get_databases_list", {}, function(result) {
|
||||||
self.db_list = result.db_list;
|
self.db_list = result.db_list;
|
||||||
self.display();
|
self.display();
|
||||||
}, function() {
|
}, function() {
|
||||||
|
|
|
@ -270,6 +270,9 @@ class JsonRequest(object):
|
||||||
self.request = request
|
self.request = request
|
||||||
self.params = request.get("params", {})
|
self.params = request.get("params", {})
|
||||||
self.applicationsession = applicationsession
|
self.applicationsession = applicationsession
|
||||||
|
self.httprequest = cherrypy.request
|
||||||
|
self.httpresponse = cherrypy.response
|
||||||
|
self.httpsession = cherrypy.session
|
||||||
self.httpsession_id = "cookieid"
|
self.httpsession_id = "cookieid"
|
||||||
self.httpsession = cherrypy.session
|
self.httpsession = cherrypy.session
|
||||||
self.session_id = self.params.pop("session_id", None) or uuid.uuid4().hex
|
self.session_id = self.params.pop("session_id", None) or uuid.uuid4().hex
|
||||||
|
@ -454,22 +457,19 @@ def main(argv):
|
||||||
os.environ["TZ"] = "UTC"
|
os.environ["TZ"] = "UTC"
|
||||||
|
|
||||||
DEFAULT_CONFIG = {
|
DEFAULT_CONFIG = {
|
||||||
'openerp.server.host': '127.0.0.1',
|
|
||||||
'openerp.server.port': 8069,
|
|
||||||
'server.socket_port': 8002,
|
|
||||||
'server.socket_host': '0.0.0.0',
|
'server.socket_host': '0.0.0.0',
|
||||||
'tools.sessions.on': True,
|
'tools.sessions.on': True,
|
||||||
'tools.sessions.storage_type': 'file',
|
'tools.sessions.storage_type': 'file',
|
||||||
'tools.sessions.storage_path': os.path.join(tempfile.gettempdir(), "cpsessions"),
|
|
||||||
'tools.sessions.timeout': 60
|
'tools.sessions.timeout': 60
|
||||||
}
|
}
|
||||||
|
|
||||||
# Parse config
|
# Parse config
|
||||||
op = optparse.OptionParser()
|
op = optparse.OptionParser()
|
||||||
op.add_option("-p", "--port", dest="server.socket_port", help="listening port", type="int", metavar="NUMBER")
|
op.add_option("-p", "--port", dest="server.socket_port", default=8002, help="listening port", type="int", metavar="NUMBER")
|
||||||
op.add_option("-s", "--session-path", dest="tools.sessions.storage_path", help="directory used for session storage", metavar="DIR")
|
op.add_option("-s", "--session-path", dest="tools.sessions.storage_path", default=os.path.join(tempfile.gettempdir(), "cpsessions"), help="directory used for session storage", metavar="DIR")
|
||||||
op.add_option("--server-host", dest="openerp.server.host", help="OpenERP server hostname", metavar="HOST")
|
op.add_option("--server-host", dest="openerp.server.host", default='127.0.0.1', help="OpenERP server hostname", metavar="HOST")
|
||||||
op.add_option("--server-port", dest="openerp.server.port", help="OpenERP server port", type="int", metavar="NUMBER")
|
op.add_option("--server-port", dest="openerp.server.port", default=8069, help="OpenERP server port", type="int", metavar="NUMBER")
|
||||||
|
op.add_option("--db-filter", dest="openerp.dbfilter", default='.*', help="Filter listed database", metavar="REGEXP")
|
||||||
(o, args) = op.parse_args(argv[1:])
|
(o, args) = op.parse_args(argv[1:])
|
||||||
o = vars(o)
|
o = vars(o)
|
||||||
for k in o.keys():
|
for k in o.keys():
|
||||||
|
@ -480,8 +480,8 @@ def main(argv):
|
||||||
cherrypy.tree.mount(Root())
|
cherrypy.tree.mount(Root())
|
||||||
|
|
||||||
cherrypy.config.update(config=DEFAULT_CONFIG)
|
cherrypy.config.update(config=DEFAULT_CONFIG)
|
||||||
if os.path.exists(os.path.join(os.path.dirname( os.path.dirname(__file__)),'openerp-web.cfg')):
|
if os.path.exists(os.path.join(path_root,'openerp-web.cfg')):
|
||||||
cherrypy.config.update(os.path.join(os.path.dirname( os.path.dirname(__file__)),'openerp-web.cfg'))
|
cherrypy.config.update(os.path.join(path_root,'openerp-web.cfg'))
|
||||||
if os.path.exists(os.path.expanduser('~/.openerp_webrc')):
|
if os.path.exists(os.path.expanduser('~/.openerp_webrc')):
|
||||||
cherrypy.config.update(os.path.expanduser('~/.openerp_webrc'))
|
cherrypy.config.update(os.path.expanduser('~/.openerp_webrc'))
|
||||||
cherrypy.config.update(o)
|
cherrypy.config.update(o)
|
||||||
|
|
Loading…
Reference in New Issue