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 -*-
|
||||
import base64
|
||||
import glob, os
|
||||
import base64, glob, os, re
|
||||
from xml.etree import ElementTree
|
||||
from cStringIO import StringIO
|
||||
|
||||
|
@ -55,6 +54,20 @@ class Xml2Json:
|
|||
# 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):
|
||||
_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",
|
||||
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
|
||||
def modules(self, req):
|
||||
return {"modules": [name
|
||||
|
@ -230,14 +236,14 @@ class Session(openerpweb.Controller):
|
|||
if not saved_actions:
|
||||
return None
|
||||
return saved_actions["actions"].get(key)
|
||||
|
||||
|
||||
def eval_context_and_domain(session, context, domain=None):
|
||||
e_context = session.eval_context(context)
|
||||
# should we give the evaluated context as an evaluation context to the domain?
|
||||
e_domain = session.eval_domain(domain or [])
|
||||
|
||||
return e_context, e_domain
|
||||
|
||||
|
||||
def load_actions_from_ir_values(req, key, key2, models, meta, context):
|
||||
Values = req.session.model('ir.values')
|
||||
actions = Values.get(key, key2, models, meta, context)
|
||||
|
@ -301,7 +307,6 @@ def generate_views(action):
|
|||
return
|
||||
action['views'] = [(view_id, view_modes[0])]
|
||||
|
||||
|
||||
def fix_view_modes(action):
|
||||
""" For historical reasons, OpenERP has weird dealings in relation to
|
||||
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
|
||||
self.process_view(request.session, fvg, context, transform)
|
||||
return fvg
|
||||
|
||||
|
||||
def process_view(self, session, fvg, context, transform):
|
||||
# depending on how it feels, xmlrpclib.ServerProxy can translate
|
||||
# XML-RPC strings to ``str`` or ``unicode``. ElementTree does not
|
||||
|
@ -809,3 +814,5 @@ class Action(openerpweb.Controller):
|
|||
def run(self, req, action_id):
|
||||
return clean_action(req.session.model('ir.actions.server').run(
|
||||
[action_id], req.session.eval_context(req.context)), req.session)
|
||||
|
||||
#
|
||||
|
|
|
@ -930,7 +930,7 @@ openerp.base.Login = openerp.base.Controller.extend({
|
|||
},
|
||||
start: function() {
|
||||
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.display();
|
||||
}, function() {
|
||||
|
|
|
@ -270,6 +270,9 @@ class JsonRequest(object):
|
|||
self.request = request
|
||||
self.params = request.get("params", {})
|
||||
self.applicationsession = applicationsession
|
||||
self.httprequest = cherrypy.request
|
||||
self.httpresponse = cherrypy.response
|
||||
self.httpsession = cherrypy.session
|
||||
self.httpsession_id = "cookieid"
|
||||
self.httpsession = cherrypy.session
|
||||
self.session_id = self.params.pop("session_id", None) or uuid.uuid4().hex
|
||||
|
@ -454,22 +457,19 @@ def main(argv):
|
|||
os.environ["TZ"] = "UTC"
|
||||
|
||||
DEFAULT_CONFIG = {
|
||||
'openerp.server.host': '127.0.0.1',
|
||||
'openerp.server.port': 8069,
|
||||
'server.socket_port': 8002,
|
||||
'server.socket_host': '0.0.0.0',
|
||||
'tools.sessions.on': True,
|
||||
'tools.sessions.storage_type': 'file',
|
||||
'tools.sessions.storage_path': os.path.join(tempfile.gettempdir(), "cpsessions"),
|
||||
'tools.sessions.timeout': 60
|
||||
}
|
||||
|
||||
# Parse config
|
||||
op = optparse.OptionParser()
|
||||
op.add_option("-p", "--port", dest="server.socket_port", 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("--server-host", dest="openerp.server.host", 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("-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", default=os.path.join(tempfile.gettempdir(), "cpsessions"), help="directory used for session storage", metavar="DIR")
|
||||
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", 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 = vars(o)
|
||||
for k in o.keys():
|
||||
|
@ -480,8 +480,8 @@ def main(argv):
|
|||
cherrypy.tree.mount(Root())
|
||||
|
||||
cherrypy.config.update(config=DEFAULT_CONFIG)
|
||||
if os.path.exists(os.path.join(os.path.dirname( os.path.dirname(__file__)),'openerp-web.cfg')):
|
||||
cherrypy.config.update(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(path_root,'openerp-web.cfg'))
|
||||
if os.path.exists(os.path.expanduser('~/.openerp_webrc')):
|
||||
cherrypy.config.update(os.path.expanduser('~/.openerp_webrc'))
|
||||
cherrypy.config.update(o)
|
||||
|
|
Loading…
Reference in New Issue