Vo Minh Thu (OpenERP) has proposed merging 
lp:~openerp-dev/openobject-server/trunk-uh-mal-guh-mey-shuhn into 
lp:openobject-server.

Requested reviews:
  OpenERP Core Team (openerp)

For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-server/trunk-uh-mal-guh-mey-shuhn/+merge/115326
-- 
https://code.launchpad.net/~openerp-dev/openobject-server/trunk-uh-mal-guh-mey-shuhn/+merge/115326
Your team OpenERP R&D Team is subscribed to branch 
lp:~openerp-dev/openobject-server/trunk-uh-mal-guh-mey-shuhn.
=== modified file 'openerp/addons/base/ir/ir_actions.py'
--- openerp/addons/base/ir/ir_actions.py	2012-07-17 06:44:10 +0000
+++ openerp/addons/base/ir/ir_actions.py	2012-07-17 12:28:20 +0000
@@ -24,17 +24,16 @@
 import logging
 import os
 import re
+from socket import gethostname
 import time
-import tools
 from xml import dom
 
-import netsvc
-from osv import fields,osv
-from report.report_sxw import report_sxw, report_rml
-from tools.config import config
-from tools.safe_eval import safe_eval as eval
-from tools.translate import _
-from socket import gethostname
+from openerp import netsvc, tools
+from openerp.osv import fields,osv
+from openerp.report.report_sxw import report_sxw, report_rml
+from openerp.tools.config import config
+from openerp.tools.safe_eval import safe_eval as eval
+from openerp.tools.translate import _
 
 _logger = logging.getLogger(__name__)
 

=== modified file 'openerp/addons/base/ir/ir_attachment.py'
--- openerp/addons/base/ir/ir_attachment.py	2012-04-23 12:22:20 +0000
+++ openerp/addons/base/ir/ir_attachment.py	2012-07-17 12:28:20 +0000
@@ -21,9 +21,9 @@
 
 import itertools
 
-from osv import fields,osv
-from osv.orm import except_orm
-import tools
+from openerp import tools
+from openerp.osv import fields,osv
+from openerp.osv.orm import except_orm
 
 class ir_attachment(osv.osv):
     def check(self, cr, uid, ids, mode, context=None, values=None):

=== modified file 'openerp/addons/base/ir/ir_config_parameter.py'
--- openerp/addons/base/ir/ir_config_parameter.py	2011-11-22 08:58:48 +0000
+++ openerp/addons/base/ir/ir_config_parameter.py	2012-07-17 12:28:20 +0000
@@ -22,10 +22,11 @@
 Store database-specific configuration parameters
 """
 
-from osv import osv,fields
+import datetime
 import uuid
-import datetime
-from tools import misc, config
+
+from openerp.osv import osv, fields
+from openerp.tools import misc, config
 
 """
 A dictionary holding some configuration parameters to be initialized when the database is created.

=== modified file 'openerp/addons/base/ir/ir_cron.py'
--- openerp/addons/base/ir/ir_cron.py	2012-02-02 09:21:05 +0000
+++ openerp/addons/base/ir/ir_cron.py	2012-07-17 12:28:20 +0000
@@ -27,15 +27,13 @@
 from datetime import datetime
 from dateutil.relativedelta import relativedelta
 
-import netsvc
 import openerp
-import pooler
-import tools
+from openerp import netsvc, pooler, tools
 from openerp.cron import WAKE_UP_NOW
-from osv import fields, osv
-from tools import DEFAULT_SERVER_DATETIME_FORMAT
-from tools.safe_eval import safe_eval as eval
-from tools.translate import _
+from openerp.osv import fields, osv
+from openerp.tools import DEFAULT_SERVER_DATETIME_FORMAT
+from openerp.tools.safe_eval import safe_eval as eval
+from openerp.tools.translate import _
 
 _logger = logging.getLogger(__name__)
 

=== modified file 'openerp/addons/base/ir/ir_default.py'
--- openerp/addons/base/ir/ir_default.py	2011-11-22 08:58:48 +0000
+++ openerp/addons/base/ir/ir_default.py	2012-07-17 12:28:20 +0000
@@ -19,7 +19,7 @@
 #
 ##############################################################################
 
-from osv import fields,osv
+from openerp.osv import fields,osv
 
 class ir_default(osv.osv):
     _name = 'ir.default'

=== modified file 'openerp/addons/base/ir/ir_exports.py'
--- openerp/addons/base/ir/ir_exports.py	2010-12-20 23:17:43 +0000
+++ openerp/addons/base/ir/ir_exports.py	2012-07-17 12:28:20 +0000
@@ -19,7 +19,7 @@
 #
 ##############################################################################
 
-from osv import fields,osv
+from openerp.osv import fields,osv
 
 
 class ir_exports(osv.osv):

=== modified file 'openerp/addons/base/ir/ir_filters.py'
--- openerp/addons/base/ir/ir_filters.py	2012-05-16 16:31:22 +0000
+++ openerp/addons/base/ir/ir_filters.py	2012-07-17 12:28:20 +0000
@@ -19,8 +19,8 @@
 #
 ##############################################################################
 
-from osv import osv, fields
-from tools.translate import _
+from openerp.osv import osv, fields
+from openerp.tools.translate import _
 
 class ir_filters(osv.osv):
     '''

=== modified file 'openerp/addons/base/ir/ir_mail_server.py'
--- openerp/addons/base/ir/ir_mail_server.py	2012-06-25 13:44:14 +0000
+++ openerp/addons/base/ir/ir_mail_server.py	2012-07-17 12:28:20 +0000
@@ -31,11 +31,10 @@
 import smtplib
 import threading
 
-from osv import osv
-from osv import fields
+from openerp import tools
+from openerp.osv import fields, osv
+from openerp.tools import html2text
 from openerp.tools.translate import _
-from openerp.tools import html2text
-import openerp.tools as tools
 
 # ustr was originally from tools.misc.
 # it is moved to loglevels until we refactor tools.

=== modified file 'openerp/addons/base/ir/ir_needaction.py'
--- openerp/addons/base/ir/ir_needaction.py	2012-07-02 14:57:27 +0000
+++ openerp/addons/base/ir/ir_needaction.py	2012-07-17 12:28:20 +0000
@@ -19,10 +19,11 @@
 #
 ##############################################################################
 
+from operator import itemgetter
+
+from openerp.osv import osv, fields
 import openerp.pooler as pooler
-from operator import itemgetter
-from osv import osv, fields
-from tools.translate import _
+from openerp.tools.translate import _
 
 class ir_needaction_users_rel(osv.Model):
     ''' ir_needaction_users_rel holds data related to the needaction 

=== modified file 'openerp/addons/base/ir/ir_rule.py'
--- openerp/addons/base/ir/ir_rule.py	2012-04-23 11:20:41 +0000
+++ openerp/addons/base/ir/ir_rule.py	2012-07-17 12:28:20 +0000
@@ -19,14 +19,14 @@
 #
 ##############################################################################
 
-from osv import fields, osv, expression
+from functools import partial
+from operator import itemgetter
 import time
-from operator import itemgetter
-from functools import partial
-import tools
-from tools.safe_eval import safe_eval as eval
-from tools.misc import unquote as unquote
-from openerp import SUPERUSER_ID
+
+from openerp import tools, SUPERUSER_ID
+from openerp.osv import fields, osv, expression
+from openerp.tools.safe_eval import safe_eval as eval
+from openerp.tools.misc import unquote as unquote
 
 class ir_rule(osv.osv):
     _name = 'ir.rule'

=== modified file 'openerp/addons/base/ir/ir_translation.py'
--- openerp/addons/base/ir/ir_translation.py	2012-01-24 11:47:30 +0000
+++ openerp/addons/base/ir/ir_translation.py	2012-07-17 12:28:20 +0000
@@ -19,10 +19,11 @@
 #
 ##############################################################################
 
-from osv import fields, osv
-import tools
 import logging
 
+from openerp import tools
+from openerp.osv import fields, osv
+
 _logger = logging.getLogger(__name__)
 
 TRANSLATION_TYPE = [

=== modified file 'openerp/addons/base/ir/ir_ui_menu.py'
--- openerp/addons/base/ir/ir_ui_menu.py	2012-06-21 15:13:24 +0000
+++ openerp/addons/base/ir/ir_ui_menu.py	2012-07-17 12:28:20 +0000
@@ -24,10 +24,10 @@
 import re
 import threading
 
-import tools
+from openerp import tools
 import openerp.modules
-from osv import fields, osv
-from tools.translate import _
+from openerp.osv import fields, osv
+from openerp.tools.translate import _
 
 def one_in(setA, setB):
     """Check the presence of an element of setA in setB

=== modified file 'openerp/addons/base/ir/ir_ui_view.py'
--- openerp/addons/base/ir/ir_ui_view.py	2012-06-14 14:46:33 +0000
+++ openerp/addons/base/ir/ir_ui_view.py	2012-07-17 12:28:20 +0000
@@ -19,13 +19,14 @@
 #
 ##############################################################################
 
-from osv import fields,osv
+import logging
 from lxml import etree
-from tools import graph
-from tools.safe_eval import safe_eval as eval
-import tools
 import os
-import logging
+
+from openerp import tools
+from openerp.osv import fields,osv
+from openerp.tools import graph
+from openerp.tools.safe_eval import safe_eval as eval
 
 _logger = logging.getLogger(__name__)
 

=== modified file 'openerp/addons/base/ir/ir_values.py'
--- openerp/addons/base/ir/ir_values.py	2012-04-03 08:27:43 +0000
+++ openerp/addons/base/ir/ir_values.py	2012-07-17 12:28:20 +0000
@@ -19,10 +19,11 @@
 #
 ##############################################################################
 
-from osv import osv,fields
-from osv.orm import except_orm
 import pickle
-from tools.translate import _
+
+from openerp.osv import osv,fields
+from openerp.osv.orm import except_orm
+from openerp.tools.translate import _
 
 EXCLUDED_FIELDS = set((
     'report_sxw_content', 'report_rml_content', 'report_sxw', 'report_rml',

=== modified file 'openerp/addons/base/ir/osv_memory_autovacuum.py'
--- openerp/addons/base/ir/osv_memory_autovacuum.py	2011-11-22 08:58:48 +0000
+++ openerp/addons/base/ir/osv_memory_autovacuum.py	2012-07-17 12:28:20 +0000
@@ -19,9 +19,9 @@
 #
 ##############################################################################
 
-import openerp
+from openerp.osv.orm import TransientModel
 
-class osv_memory_autovacuum(openerp.osv.osv.osv_memory):
+class osv_memory_autovacuum(TransientModel):
     """ Expose the osv_memory.vacuum() method to the cron jobs mechanism. """
     _name = 'osv_memory.autovacuum'
 

=== modified file 'openerp/addons/base/ir/wizard/wizard_menu.py'
--- openerp/addons/base/ir/wizard/wizard_menu.py	2010-08-23 12:10:33 +0000
+++ openerp/addons/base/ir/wizard/wizard_menu.py	2012-07-17 12:28:20 +0000
@@ -18,9 +18,11 @@
 #    along with this program.  If not, see <http://www.gnu.org/licenses/>.     
 #
 ##############################################################################
-from osv import fields,osv
-
-class wizard_model_menu(osv.osv_memory):
+
+from openerp.osv import fields
+from openerp.osv.orm import TransientModel
+
+class wizard_model_menu(TransientModel):
     _name = 'wizard.ir.model.menu.create'
     _columns = {
         'menu_id': fields.many2one('ir.ui.menu', 'Parent Menu', required=True),
@@ -47,9 +49,8 @@
                 'icon': 'STOCK_INDENT'
             }, context)
         return {'type':'ir.actions.act_window_close'}
-wizard_model_menu()
 
-class wizard_model_menu_line(osv.osv_memory):
+class wizard_model_menu_line(TransientModel):
     _name = 'wizard.ir.model.menu.create.line'
     _columns = {
         'wizard_id': fields.many2one('wizard.ir.model.menu.create','Wizard'),
@@ -65,7 +66,6 @@
     _defaults = {
         'view_type': lambda self,cr,uid,ctx: 'tree'
     }
-wizard_model_menu_line()
 
 
 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

=== modified file 'openerp/addons/base/ir/wizard/wizard_screen.py'
--- openerp/addons/base/ir/wizard/wizard_screen.py	2012-01-04 13:30:27 +0000
+++ openerp/addons/base/ir/wizard/wizard_screen.py	2012-07-17 12:28:20 +0000
@@ -17,16 +17,18 @@
 #    along with this program.  If not, see <http://www.gnu.org/licenses/>.     
 #
 ##############################################################################
+
 import base64
 import os
 import random
 
-import tools
-from osv import fields,osv
+from openerp import tools
+from openerp.osv import fields
+from openerp.osv.orm import TransientModel
 
 # Simple base class for wizards that wish to use random images on the left
 # side of the form.
-class wizard_screen(osv.osv_memory):
+class wizard_screen(TransientModel):
     _name = 'ir.wizard.screen'
 
     def _get_image(self, cr, uid, context=None):

=== modified file 'openerp/addons/base/ir/workflow/print_instance.py'
--- openerp/addons/base/ir/workflow/print_instance.py	2012-02-02 12:54:42 +0000
+++ openerp/addons/base/ir/workflow/print_instance.py	2012-07-17 12:28:20 +0000
@@ -20,11 +20,11 @@
 ##############################################################################
 
 import logging
-import time, os
-
-import netsvc
-import report,pooler,tools
 from operator import itemgetter
+import os
+import time
+
+from openerp import netsvc, pooler, report, tools
 
 _logger = logging.getLogger(__name__)
 

=== modified file 'openerp/addons/base/module/report/ir_module_reference_print.py'
--- openerp/addons/base/module/report/ir_module_reference_print.py	2010-12-10 22:42:58 +0000
+++ openerp/addons/base/module/report/ir_module_reference_print.py	2012-07-17 12:28:20 +0000
@@ -20,7 +20,8 @@
 ##############################################################################
 
 import time
-from report import report_sxw
+
+from openerp.report import report_sxw
 
 class ir_module_reference_print(report_sxw.rml_parse):
     def __init__(self, cr, uid, name, context):

=== modified file 'openerp/addons/base/module/wizard/base_export_language.py'
--- openerp/addons/base/module/wizard/base_export_language.py	2012-05-10 09:35:27 +0000
+++ openerp/addons/base/module/wizard/base_export_language.py	2012-07-17 12:28:20 +0000
@@ -19,15 +19,16 @@
 #
 ##############################################################################
 
-import tools
 import base64
 import cStringIO
-import pooler
-from osv import fields,osv
-from tools.translate import _
-from tools.misc import get_iso_codes
-
-class base_language_export(osv.osv_memory):
+
+from openerp import pooler, tools
+from openerp.osv import fields
+from openerp.osv.orm import TransientModel
+from openerp.tools.translate import _
+from openerp.tools.misc import get_iso_codes
+
+class base_language_export(TransientModel):
 
     def _get_languages(self, cr, uid, context):
         lang_obj=pooler.get_pool(cr.dbname).get('res.lang')

=== modified file 'openerp/addons/base/module/wizard/base_import_language.py'
--- openerp/addons/base/module/wizard/base_import_language.py	2012-01-09 14:09:58 +0000
+++ openerp/addons/base/module/wizard/base_import_language.py	2012-07-17 12:28:20 +0000
@@ -19,12 +19,14 @@
 #
 ##############################################################################
 
-import tools
 import base64
 from tempfile import TemporaryFile
-from osv import osv, fields
-
-class base_language_import(osv.osv_memory):
+
+from openerp import tools
+from openerp.osv import fields
+from openerp.osv.orm import TransientModel
+
+class base_language_import(TransientModel):
     """ Language Import """
 
     _name = "base.language.import"

=== modified file 'openerp/addons/base/module/wizard/base_language_install.py'
--- openerp/addons/base/module/wizard/base_language_install.py	2011-01-19 01:38:10 +0000
+++ openerp/addons/base/module/wizard/base_language_install.py	2012-07-17 12:28:20 +0000
@@ -19,11 +19,12 @@
 #
 ##############################################################################
 
-import tools
-from osv import osv, fields
-from tools.translate import _
+from openerp import tools
+from openerp.osv import fields
+from openerp.osv.orm import TransientModel
+from openerp.tools.translate import _
 
-class base_language_install(osv.osv_memory):
+class base_language_install(TransientModel):
     """ Install Language"""
 
     _name = "base.language.install"

=== modified file 'openerp/addons/base/module/wizard/base_module_configuration.py'
--- openerp/addons/base/module/wizard/base_module_configuration.py	2011-07-14 10:38:07 +0000
+++ openerp/addons/base/module/wizard/base_module_configuration.py	2012-07-17 12:28:20 +0000
@@ -19,10 +19,10 @@
 #
 ##############################################################################
 
-from osv import osv
-from tools.translate import _
+from openerp.osv.orm import TransientModel
+from openerp.tools.translate import _
 
-class base_module_configuration(osv.osv_memory):
+class base_module_configuration(TransientModel):
 
     _name = "base.module.configuration"
 

=== modified file 'openerp/addons/base/module/wizard/base_module_import.py'
--- openerp/addons/base/module/wizard/base_module_import.py	2011-07-31 18:17:24 +0000
+++ openerp/addons/base/module/wizard/base_module_import.py	2012-07-17 12:28:20 +0000
@@ -19,18 +19,19 @@
 #
 ##############################################################################
 
+import base64
 import os
-import tools
-
+from StringIO import StringIO
 import zipfile
-from StringIO import StringIO
-import base64
-from tools.translate import _
-from osv import osv, fields
+
+from openerp import tools
+from openerp.osv import fields, osv
+from openerp.osv.orm import TransientModel
+from openerp.tools.translate import _
 
 ADDONS_PATH = tools.config['addons_path'].split(",")[-1]
 
-class base_module_import(osv.osv_memory):
+class base_module_import(TransientModel):
     """ Import Module """
 
     _name = "base.module.import"

=== modified file 'openerp/addons/base/module/wizard/base_module_scan.py'
--- openerp/addons/base/module/wizard/base_module_scan.py	2011-11-24 16:15:21 +0000
+++ openerp/addons/base/module/wizard/base_module_scan.py	2012-07-17 12:28:20 +0000
@@ -18,16 +18,16 @@
 #    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #
 ##############################################################################
-import os
+
 import glob
 import imp
-
-import tools
-
+import os
 import zipfile
-from osv import osv
-
-class base_module_scan(osv.osv_memory):
+
+from openerp import tools
+from openerp.osv.orm import TransientModel
+
+class base_module_scan(TransientModel):
     """ scan module """
 
     _name = "base.module.scan"

=== modified file 'openerp/addons/base/module/wizard/base_module_update.py'
--- openerp/addons/base/module/wizard/base_module_update.py	2010-10-04 14:33:36 +0000
+++ openerp/addons/base/module/wizard/base_module_update.py	2012-07-17 12:28:20 +0000
@@ -18,9 +18,11 @@
 #    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #
 ##############################################################################
-from osv import osv, fields
-
-class base_module_update(osv.osv_memory):
+
+from openerp.osv import fields
+from openerp.osv.orm import TransientModel
+
+class base_module_update(TransientModel):
     """ Update Module """
 
     _name = "base.module.update"
@@ -58,4 +60,4 @@
 
 base_module_update()
 
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

=== modified file 'openerp/addons/base/module/wizard/base_module_upgrade.py'
--- openerp/addons/base/module/wizard/base_module_upgrade.py	2012-07-02 11:29:18 +0000
+++ openerp/addons/base/module/wizard/base_module_upgrade.py	2012-07-17 12:28:20 +0000
@@ -21,9 +21,10 @@
 
 from openerp import pooler
 from openerp.osv import osv, fields
+from openerp.osv.orm import TransientModel
 from openerp.tools.translate import _
 
-class base_module_upgrade(osv.osv_memory):
+class base_module_upgrade(TransientModel):
     """ Module Upgrade """
 
     _name = "base.module.upgrade"

=== modified file 'openerp/addons/base/module/wizard/base_update_translations.py'
--- openerp/addons/base/module/wizard/base_update_translations.py	2012-01-19 21:59:35 +0000
+++ openerp/addons/base/module/wizard/base_update_translations.py	2012-07-17 12:28:20 +0000
@@ -19,13 +19,14 @@
 #
 ##############################################################################
 
-from osv import osv, fields
-import tools
-import pooler
 import cStringIO
-from tools.translate import _
-
-class base_update_translations(osv.osv_memory):
+
+from openerp import pooler, tools
+from openerp.osv import osv, fields
+from openerp.osv.orm import TransientModel
+from openerp.tools.translate import _
+
+class base_update_translations(TransientModel):
     def _get_languages(self, cr, uid, context):
         lang_obj=pooler.get_pool(cr.dbname).get('res.lang')
         ids=lang_obj.search(cr, uid, ['&', ('active', '=', True), ('translatable', '=', True),])

=== modified file 'openerp/addons/base/publisher_warranty/publisher_warranty.py'
--- openerp/addons/base/publisher_warranty/publisher_warranty.py	2012-05-09 05:38:31 +0000
+++ openerp/addons/base/publisher_warranty/publisher_warranty.py	2012-07-17 12:28:20 +0000
@@ -29,13 +29,13 @@
 import urllib
 import urllib2
 
-import pooler
-import release
-from osv import osv, fields
-from tools.translate import _
-from tools.safe_eval import safe_eval
-from tools.config import config
-from tools import misc
+from openerp import pooler, release
+from openerp.osv import fields, osv
+from openerp.osv.orm import Model, TransientModel
+from openerp.tools import misc
+from openerp.tools.config import config
+from openerp.tools.safe_eval import safe_eval
+from openerp.tools.translate import _
 
 _logger = logging.getLogger(__name__)
 
@@ -46,7 +46,7 @@
 """
 _PREVIOUS_LOG_CHECK = datetime.timedelta(days=365)
 
-class publisher_warranty_contract(osv.osv):
+class publisher_warranty_contract(Model):
     """
     Osv representing a publisher warranty contract.
     """
@@ -245,7 +245,7 @@
 
 publisher_warranty_contract()
 
-class maintenance_contract(osv.osv_memory):
+class maintenance_contract(TransientModel):
     """ Old osv we only keep for compatibility with the clients. """
 
     _name = "maintenance.contract"
@@ -259,7 +259,7 @@
 
 maintenance_contract()
 
-class publisher_warranty_contract_wizard(osv.osv_memory):
+class publisher_warranty_contract_wizard(TransientModel):
     """
     A wizard osv to help people entering a publisher warranty contract.
     """

=== modified file 'openerp/addons/base/report/preview_report.py'
--- openerp/addons/base/report/preview_report.py	2011-07-06 16:16:06 +0000
+++ openerp/addons/base/report/preview_report.py	2012-07-17 12:28:20 +0000
@@ -19,7 +19,7 @@
 #
 ##############################################################################
 
-from report import report_sxw
+from openerp.report import report_sxw
 
 class rmlparser(report_sxw.rml_parse):
     def set_context(self, objects, data, ids, report_type = None):

=== modified file 'openerp/addons/base/res/__init__.py'
--- openerp/addons/base/res/__init__.py	2012-06-04 18:30:55 +0000
+++ openerp/addons/base/res/__init__.py	2012-07-17 12:28:20 +0000
@@ -19,8 +19,6 @@
 #
 ##############################################################################
 
-import tools
-
 import res_country
 import res_lang
 import res_partner

=== modified file 'openerp/addons/base/res/ir_property.py'
--- openerp/addons/base/res/ir_property.py	2012-03-22 16:58:37 +0000
+++ openerp/addons/base/res/ir_property.py	2012-07-17 12:28:20 +0000
@@ -19,10 +19,11 @@
 #
 ##############################################################################
 
-from osv import osv,fields
-from tools.misc import attrgetter
 import time
 
+from openerp.osv import fields, osv
+from openerp.tools.misc import attrgetter # TODO remove
+
 # -------------------------------------------------------------------------
 # Properties
 # -------------------------------------------------------------------------

=== modified file 'openerp/addons/base/res/res_bank.py'
--- openerp/addons/base/res/res_bank.py	2012-07-10 23:50:09 +0000
+++ openerp/addons/base/res/res_bank.py	2012-07-17 12:28:20 +0000
@@ -19,8 +19,8 @@
 #
 ##############################################################################
 
-from osv import fields, osv
-from tools.translate import _
+from openerp.osv import fields, osv
+from openerp.tools.translate import _
 
 class Bank(osv.osv):
     _description='Bank'

=== modified file 'openerp/addons/base/res/res_company.py'
--- openerp/addons/base/res/res_company.py	2012-07-13 15:35:20 +0000
+++ openerp/addons/base/res/res_company.py	2012-07-17 12:28:20 +0000
@@ -19,13 +19,19 @@
 #
 ##############################################################################
 
-from osv import osv
-from osv import fields
 import os
+<<<<<<< TREE
 import tools
 import openerp
 from tools.translate import _
 from tools.safe_eval import safe_eval as eval
+=======
+
+from openerp import tools
+from openerp.osv import fields, osv
+from openerp.tools.translate import _
+from openerp.tools.safe_eval import safe_eval as eval
+>>>>>>> MERGE-SOURCE
 
 class multi_company_default(osv.osv):
     """

=== modified file 'openerp/addons/base/res/res_config.py'
--- openerp/addons/base/res/res_config.py	2012-06-26 07:47:46 +0000
+++ openerp/addons/base/res/res_config.py	2012-07-17 12:28:20 +0000
@@ -18,18 +18,19 @@
 #    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #
 ##############################################################################
+
 import logging
 from operator import attrgetter, itemgetter
 
-from osv import osv, fields
-from tools.translate import _
-import netsvc
-from tools import ustr
-import pooler
+from openerp import netsvc, pooler
+from openerp.osv import osv, fields
+from openerp.osv.orm import TransientModel
+from openerp.tools import ustr
+from openerp.tools.translate import _
 
 _logger = logging.getLogger(__name__)
 
-class res_config_configurable(osv.osv_memory):
+class res_config_configurable(TransientModel):
     ''' Base classes for new-style configuration items
 
     Configuration items should inherit from this class, implement
@@ -150,7 +151,7 @@
 
 res_config_configurable()
 
-class res_config_installer(osv.osv_memory):
+class res_config_installer(TransientModel):
     """ New-style configuration base specialized for addons selection
     and installation.
 
@@ -364,7 +365,7 @@
     'wizards (ir.actions.configuration.wizard). Old-style configuration '\
     'wizards have been deprecated.\n'\
     'The addon should be migrated to res.config objects.'
-class ir_actions_configuration_wizard(osv.osv_memory):
+class ir_actions_configuration_wizard(TransientModel):
     ''' Compatibility configuration wizard
 
     The old configuration wizard has been replaced by res.config, but in order
@@ -398,12 +399,12 @@
 
 
 
-class res_config_settings(osv.osv_memory):
+class res_config_settings(TransientModel):
     """ Base configuration wizard for application settings.  It provides support for setting
         default values, assigning groups to employee users, and installing modules.
         To make such a 'settings' wizard, define a model like::
 
-            class my_config_wizard(osv.osv_memory):
+            class my_config_wizard(TransientModel):
                 _name = 'my.settings'
                 _inherit = 'res.config.settings'
                 _columns = {

=== modified file 'openerp/addons/base/res/res_country.py'
--- openerp/addons/base/res/res_country.py	2012-03-20 11:41:21 +0000
+++ openerp/addons/base/res/res_country.py	2012-07-17 12:28:20 +0000
@@ -19,7 +19,7 @@
 #
 ##############################################################################
 
-from osv import fields, osv
+from openerp.osv import fields, osv
 
 def location_name_search(self, cr, user, name='', args=None, operator='ilike',
                          context=None, limit=100):

=== modified file 'openerp/addons/base/res/res_currency.py'
--- openerp/addons/base/res/res_currency.py	2012-04-23 10:23:13 +0000
+++ openerp/addons/base/res/res_currency.py	2012-07-17 12:28:20 +0000
@@ -18,14 +18,14 @@
 #    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #
 ##############################################################################
+
 import re
 import time
-import netsvc
-from osv import fields, osv
-import tools
 
-from tools import float_round, float_is_zero, float_compare
-from tools.translate import _
+from openerp import netsvc, tools
+from openerp.osv import fields, osv
+from openerp.tools import float_round, float_is_zero, float_compare
+from openerp.tools.translate import _
 
 CURRENCY_DISPLAY_PATTERN = re.compile(r'(\w+)\s*(?:\((.*)\))?')
 

=== modified file 'openerp/addons/base/res/res_lang.py'
--- openerp/addons/base/res/res_lang.py	2012-04-20 07:33:40 +0000
+++ openerp/addons/base/res/res_lang.py	2012-07-17 12:28:20 +0000
@@ -20,14 +20,14 @@
 ##############################################################################
 
 import locale
+from locale import localeconv
 import logging
 import re
 
-from osv import fields, osv
-from locale import localeconv
-import tools
-from tools.safe_eval import safe_eval as eval
-from tools.translate import _
+from openerp import tools
+from openerp.osv import fields, osv
+from openerp.tools.safe_eval import safe_eval as eval
+from openerp.tools.translate import _
 
 _logger = logging.getLogger(__name__)
 

=== modified file 'openerp/addons/base/res/res_partner.py'
--- openerp/addons/base/res/res_partner.py	2012-07-04 12:57:41 +0000
+++ openerp/addons/base/res/res_partner.py	2012-07-17 12:28:20 +0000
@@ -19,13 +19,13 @@
 #
 ##############################################################################
 
+import logging
+import math
 import os
-import math
-from osv import osv, fields
-import tools
-from tools.translate import _
-import logging
-import pooler
+
+from openerp import pooler, tools
+from openerp.osv import osv, fields
+from openerp.tools.translate import _
 
 class res_payterm(osv.osv):
     _description = 'Payment term'

=== modified file 'openerp/addons/base/res/res_request.py'
--- openerp/addons/base/res/res_request.py	2011-11-21 13:48:23 +0000
+++ openerp/addons/base/res/res_request.py	2012-07-17 12:28:20 +0000
@@ -19,9 +19,10 @@
 #
 ##############################################################################
 
-from osv import osv, fields
 import time
 
+from openerp.osv import osv, fields
+
 def _links_get(self, cr, uid, context=None):
     obj = self.pool.get('res.request.link')
     ids = obj.search(cr, uid, [], context=context)

=== modified file 'openerp/addons/base/res/res_users.py'
--- openerp/addons/base/res/res_users.py	2012-07-17 06:44:10 +0000
+++ openerp/addons/base/res/res_users.py	2012-07-17 12:28:20 +0000
@@ -20,25 +20,23 @@
 #
 ##############################################################################
 
+from functools import partial
+import io
 import logging
-from functools import partial
-
-import pytz
-
-import io, StringIO
 from lxml import etree
 from lxml.builder import E
-import netsvc
+from PIL import Image
+import pytz
+import random
+import StringIO
+
 import openerp
+from openerp import netsvc, pooler, tools
 import openerp.exceptions
-from osv import fields,osv
-from osv.orm import browse_record
-from PIL import Image
-import pooler
-import random
-from service import security
-import tools
-from tools.translate import _
+from openerp.osv import fields, osv
+from openerp.osv.orm import browse_record
+from openerp.service import security
+from openerp.tools.translate import _
 
 _logger = logging.getLogger(__name__)
 

=== modified file 'openerp/addons/base/res/res_widget.py'
--- openerp/addons/base/res/res_widget.py	2012-06-22 14:12:22 +0000
+++ openerp/addons/base/res/res_widget.py	2012-07-17 12:28:20 +0000
@@ -19,10 +19,11 @@
 #
 ##############################################################################
 
-from osv import fields,osv
-
-
-class res_widget(osv.osv):
+from openerp.osv import fields
+from openerp.osv.orm import Model, TransientModel
+
+
+class res_widget(Model):
     _name = "res.widget"
     _rec_name = "title"
     _columns = {
@@ -30,10 +31,8 @@
         'content': fields.text('Content', required=True),
     }
 
-res_widget()
-
-
-class res_widget_user(osv.osv):
+
+class res_widget_user(Model):
     _name="res.widget.user"
     _rec_name="user_id"
     _order = "sequence"
@@ -51,9 +50,8 @@
             res = super(res_widget_user, self).create(cr, uid, vals, context=context)
         return res
 
-res_widget_user()
 
-class res_widget_wizard(osv.osv_memory):
+class res_widget_wizard(TransientModel):
     _name = "res.widget.wizard"
     _description = "Add a widget for User"
     
@@ -83,7 +81,5 @@
                 cr, uid, {'user_id':uid, 'widget_id':widget_id['widgets_list']}, context=context)
         return {'type': 'ir.actions.act_window_close'}
 
-res_widget_wizard()
-
 
 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

=== modified file 'openerp/addons/base/res/test/res_lang.py'
--- openerp/addons/base/res/test/res_lang.py	2011-11-22 08:58:48 +0000
+++ openerp/addons/base/res/test/res_lang.py	2012-07-17 12:28:20 +0000
@@ -1,14 +1,7 @@
 import sys
 import openerp
 
-# TODO this loop will be exposed as open_openerp_namespace()
-# once trunk-cleaning-vmt is merged.
-for k, v in list(sys.modules.items()):
-        if k.startswith('openerp.') and sys.modules.get(k[8:]) is None:
-            sys.modules[k[8:]] = v
-
 import openerp.addons.base.res.res_lang as res_lang
 res_lang._group_examples()
 
-
 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

=== modified file 'openerp/addons/base/test/base_test.yml'
--- openerp/addons/base/test/base_test.yml	2012-01-18 11:24:00 +0000
+++ openerp/addons/base/test/base_test.yml	2012-07-17 12:28:20 +0000
@@ -5,7 +5,7 @@
     1. Try a few common expressions to verify they work with safe_eval
 -
     !python {model: ir.model}: |
-        from tools.safe_eval import safe_eval
+        from openerp.tools.safe_eval import safe_eval
         expected = (1, {"a": 9 * 2}, (True, False, None))
         actual = safe_eval('(1, {"a": 9 * 2}, (True, False, None))')
         assert actual == expected, "Simple python expressions are not working with safe_eval"
@@ -41,7 +41,7 @@
     5. Try forbidden expressions in safe_eval to verify they are not allowed (open)
 -
     !python {model: ir.model}: |
-        from tools.safe_eval import safe_eval
+        from openerp.tools.safe_eval import safe_eval
         try:
            safe_eval('open("/etc/passwd","r")')
            assert False, "safe_eval should not allow calling open() builtin"
@@ -148,7 +148,7 @@
     "Float precision tests: verify that float rounding methods are working correctly via res.currency"
 -
     !python {model: res.currency}: |
-        from tools import float_repr
+        from openerp.tools import float_repr
         from math import log10
         currency = self.browse(cr, uid, ref('base.EUR'))
         def try_round(amount, expected, self=self, cr=cr, currency=currency, float_repr=float_repr,
@@ -199,7 +199,7 @@
     "Float precision tests: verify that float rounding methods are working correctly via tools"
 -
     !python {model: res.currency}: |
-        from tools import float_compare, float_is_zero, float_round, float_repr
+        from openerp.tools import float_compare, float_is_zero, float_round, float_repr
         def try_round(amount, expected, precision_digits=3, float_round=float_round, float_repr=float_repr):
             result = float_repr(float_round(amount, precision_digits=precision_digits),
                                 precision_digits=precision_digits)
@@ -273,7 +273,7 @@
     !python {model: res.currency}: |
         currency = self.browse(cr, uid, ref('base.EUR'))
         res_currency_rate = self.pool.get('res.currency.rate')
-        from tools import float_compare, float_is_zero, float_round, float_repr
+        from openerp.tools import float_compare, float_is_zero, float_round, float_repr
         def try_roundtrip(value, expected, self=self, cr=cr, currency=currency,
                           res_currency_rate=res_currency_rate):
             rate_id = res_currency_rate.create(cr, 1, {'name':'2000-01-01',
@@ -291,7 +291,7 @@
     "Float precision tests: verify that invalid parameters are forbidden"
 -
     !python {model: res.currency}: |
-        from tools import float_compare, float_is_zero, float_round
+        from openerp.tools import float_compare, float_is_zero, float_round
         try:
             float_is_zero(0.01, precision_digits=3, precision_rounding=0.01)
         except AssertionError:

=== modified file 'openerp/conf/deprecation.py'
--- openerp/conf/deprecation.py	2011-04-29 07:50:30 +0000
+++ openerp/conf/deprecation.py	2012-07-17 12:28:20 +0000
@@ -28,10 +28,4 @@
 
 """
 
-# If True, the Python modules inside the openerp namespace are made available
-# without the 'openerp.' prefix. E.g. openerp.osv.osv and osv.osv refer to the
-# same module.
-# Introduced around 2011.02.
-open_openerp_namespace = True
-
 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

=== modified file 'openerp/modules/loading.py'
--- openerp/modules/loading.py	2012-06-11 12:27:58 +0000
+++ openerp/modules/loading.py	2012-07-17 12:28:20 +0000
@@ -47,13 +47,6 @@
 
 _logger = logging.getLogger(__name__)
 
-def open_openerp_namespace():
-    # See comment for open_openerp_namespace.
-    if openerp.conf.deprecation.open_openerp_namespace:
-        for k, v in list(sys.modules.items()):
-            if k.startswith('openerp.') and sys.modules.get(k[8:]) is None:
-                sys.modules[k[8:]] = v
-
 
 def load_module_graph(cr, graph, status=None, perform_checks=True, skip_modules=None, report=None):
     """Migrates+Updates or Installs all module nodes from ``graph``
@@ -253,8 +246,6 @@
     # It should be a method exposed by the pool.
     initialize_sys_path()
 
-    open_openerp_namespace()
-
     force = []
     if force_demo:
         force.append('demo')

=== modified file 'openerp/modules/module.py'
--- openerp/modules/module.py	2012-06-05 09:52:10 +0000
+++ openerp/modules/module.py	2012-07-17 12:28:20 +0000
@@ -61,109 +61,19 @@
 
 _logger = logging.getLogger(__name__)
 
-class AddonsImportHook(object):
-    """
-    Import hook to load OpenERP addons from multiple paths.
-
-    OpenERP implements its own import-hook to load its addons. OpenERP
-    addons are Python modules. Originally, they were each living in their
-    own top-level namespace, e.g. the sale module, or the hr module. For
-    backward compatibility, `import <module>` is still supported. Now they
-    are living in `openerp.addons`. The good way to import such modules is
-    thus `import openerp.addons.module`.
-
-    For backward compatibility, loading an addons puts it in `sys.modules`
-    under both the legacy (short) name, and the new (longer) name. This
-    ensures that
-        import hr
-        import openerp.addons.hr
-    loads the hr addons only once.
-
-    When an OpenERP addons name clashes with some other installed Python
-    module (for instance this is the case of the `resource` addons),
-    obtaining the OpenERP addons is only possible with the long name. The
-    short name will give the expected Python module.
-
-    Instead of relying on some addons path, an alternative approach would be
-    to use pkg_resources entry points from already installed Python libraries
-    (and install our addons as such). Even when implemented, we would still
-    have to support the addons path approach for backward compatibility.
-    """
-
-    def find_module(self, module_name, package_path):
-        module_parts = module_name.split('.')
-        if len(module_parts) == 3 and module_name.startswith('openerp.addons.'):
-            return self # We act as a loader too.
-
-        # TODO list of loadable modules can be cached instead of always
-        # calling get_module_path().
-        if len(module_parts) == 1 and \
-            get_module_path(module_parts[0],
-                display_warning=False):
-            try:
-                # Check if the bare module name clashes with another module.
-                f, path, descr = imp.find_module(module_parts[0])
-                _logger.warning("""
-Ambiguous import: the OpenERP module `%s` is shadowed by another
-module (available at %s).
-To import it, use `import openerp.addons.<module>.`.""" % (module_name, path))
-                return
-            except ImportError, e:
-                # Using `import <module_name>` instead of
-                # `import openerp.addons.<module_name>` is ugly but not harmful
-                # and kept for backward compatibility.
-                return self # We act as a loader too.
-
-    def load_module(self, module_name):
-
-        module_parts = module_name.split('.')
-        if len(module_parts) == 3 and module_name.startswith('openerp.addons.'):
-            module_part = module_parts[2]
-            if module_name in sys.modules:
-                return sys.modules[module_name]
-
-        if len(module_parts) == 1:
-            module_part = module_parts[0]
-            if module_part in sys.modules:
-                return sys.modules[module_part]
-
-        try:
-            # Check if the bare module name shadows another module.
-            f, path, descr = imp.find_module(module_part)
-            is_shadowing = True
-        except ImportError, e:
-            # Using `import <module_name>` instead of
-            # `import openerp.addons.<module_name>` is ugly but not harmful
-            # and kept for backward compatibility.
-            is_shadowing = False
-
-        # Note: we don't support circular import.
-        f, path, descr = imp.find_module(module_part, ad_paths)
-        mod = imp.load_module('openerp.addons.' + module_part, f, path, descr)
-        if not is_shadowing:
-            sys.modules[module_part] = mod
-            for k in sys.modules.keys():
-                if k.startswith('openerp.addons.' + module_part):
-                    sys.modules[k[len('openerp.addons.'):]] = sys.modules[k]
-        sys.modules['openerp.addons.' + module_part] = mod
-        return mod
 
 def initialize_sys_path():
     """
-    Setup an import-hook to be able to import OpenERP addons from the different
-    addons paths.
-
-    This ensures something like ``import crm`` (or even
-    ``import openerp.addons.crm``) works even if the addons are not in the
-    PYTHONPATH.
+    Extend openerp.addons.__path__ to include every addons paths.
     """
     global ad_paths
     if ad_paths:
         return
 
     ad_paths = map(lambda m: os.path.abspath(tools.ustr(m.strip())), tools.config['addons_path'].split(','))
+    openerp.addons.__path__.extend(ad_paths)
     ad_paths.append(_ad) # for get_module_path
-    sys.meta_path.append(AddonsImportHook())
+
 
 def get_module_path(module, downloaded=False, display_warning=True):
     """Return the path of the given module.

=== modified file 'openerp/tools/config.py'
--- openerp/tools/config.py	2012-03-02 11:28:34 +0000
+++ openerp/tools/config.py	2012-07-17 12:28:20 +0000
@@ -475,7 +475,6 @@
             openerp.conf.server_wide_modules = ['web']
         if complete:
             openerp.modules.module.initialize_sys_path()
-            openerp.modules.loading.open_openerp_namespace()
 
     def _generate_pgpassfile(self):
         """

=== modified file 'openerp/wsgi/core.py'
--- openerp/wsgi/core.py	2012-03-14 14:20:43 +0000
+++ openerp/wsgi/core.py	2012-07-17 12:28:20 +0000
@@ -470,7 +470,6 @@
     openerp.osv.osv.start_object_proxy()
     openerp.service.web_services.start_web_services()
     openerp.modules.module.initialize_sys_path()
-    openerp.modules.loading.open_openerp_namespace()
     for m in openerp.conf.server_wide_modules:
         try:
             openerp.modules.module.load_openerp_module(m)

_______________________________________________
Mailing list: https://launchpad.net/~openerp-dev-gtk
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~openerp-dev-gtk
More help   : https://help.launchpad.net/ListHelp

Reply via email to