diff --git a/openerp_proxy/ext/repr/__init__.py b/openerp_proxy/ext/repr/__init__.py index b9acd39..f454835 100644 --- a/openerp_proxy/ext/repr/__init__.py +++ b/openerp_proxy/ext/repr/__init__.py @@ -29,13 +29,22 @@ from .generic import (FieldNotFoundException, HField, toHField, - # PrettyTable, - # BaseTable, + PrettyTable, + BaseTable, HTMLTable) # import submodules -import orm -import reports +from .orm import * +from .reports import * + +__all__ = ( + 'FieldNotFoundException', + 'HField', + 'toHField', + 'PrettyTable', + 'BaseTable', + 'HTMLTable', +) class ClientRegistedObjects(list): diff --git a/openerp_proxy/main.py b/openerp_proxy/main.py index eb19830..2a9ae57 100644 --- a/openerp_proxy/main.py +++ b/openerp_proxy/main.py @@ -1,6 +1,7 @@ #!/usr/bin/env python # -*- coding: utf8 -*- +import operator HELP_HEADER = """ Usage: @@ -41,7 +42,7 @@ def generate_header_databases(session): """ Prepare to display history of database connections """ header_databases = "\n" - for index, url in session.index.items(): + for index, url in sorted(session.index.items(), key=operator.itemgetter(0)): header_databases += " - [%3s] %s\n" % (index, url) return header_databases diff --git a/openerp_proxy/session.py b/openerp_proxy/session.py index 77c3111..96d2610 100644 --- a/openerp_proxy/session.py +++ b/openerp_proxy/session.py @@ -17,7 +17,8 @@ class SessionClientExt(Client): - """ Simple Client extension to add attribute '_no_save' used in session + """ Simple Client extension to add attribute '_no_save' + used in session """ def __init__(self, *args, **kwargs): super(SessionClientExt, self).__init__(*args, **kwargs) @@ -56,7 +57,7 @@ def __init__(self, data_file='~/.openerp_proxy.json'): self._db_index = {} # key: index; value: url self._db_index_rev = {} # key: url; value: index - self._db_index_counter = 0 + self._db_index_counter = 0 # max index used if os.path.exists(self.data_file): data = json_read(self.data_file) @@ -65,6 +66,13 @@ def __init__(self, data_file='~/.openerp_proxy.json'): self._db_aliases = data.get('aliases', {}) self._options = data.get('options', {}) + if 'index' in data: + for url, index in data['index'].items(): + if url in self._databases: + self._db_index[index] = url + self._db_index_rev[url] = index + self._db_index_counter = max(self._db_index_counter, index) + for path in self.extra_paths: self.add_path(path) @@ -352,6 +360,7 @@ def save(self): 'databases': databases, 'aliases': self._db_aliases, 'options': self._options, + 'index': self._db_index_rev, } json_write(self.data_file, data, indent=4)