diff --git a/openerp/addons/base/ir/ir.xml b/openerp/addons/base/ir/ir.xml index 661dde11aa0..6d5da0fc47a 100644 --- a/openerp/addons/base/ir/ir.xml +++ b/openerp/addons/base/ir/ir.xml @@ -75,9 +75,9 @@ search - - - + @@ -208,7 +208,7 @@ search - + @@ -263,8 +263,7 @@ search - - + @@ -316,8 +315,7 @@ search - - + @@ -402,13 +400,11 @@ ir.actions.report.xml search - + - - - - - + @@ -511,8 +507,7 @@ - - + @@ -581,9 +576,9 @@ search - - - + @@ -672,6 +667,8 @@ search + + @@ -682,10 +679,8 @@ string="Form" domain="[('type', '=','form')]"/> - - - + @@ -815,29 +810,28 @@ + + + + - - - + - - - - - + @@ -963,26 +957,17 @@ search + + - - - - - - - - - - - @@ -1053,20 +1038,18 @@ search + + - - - - @@ -1075,7 +1058,6 @@ - @@ -1086,18 +1068,23 @@ form
- - - + + + + + + + + + - - +
@@ -1108,10 +1095,9 @@ tree - - - - + + + @@ -1122,13 +1108,14 @@ search + + - - - @@ -1328,7 +1315,7 @@ search - + @@ -1408,7 +1395,8 @@ search - + + @@ -1493,22 +1481,22 @@ search - - + + + - - + - - - - - - + + + + + + @@ -1589,16 +1577,16 @@ ir.rule search - + - + + - @@ -1644,7 +1632,7 @@ - @@ -1732,13 +1720,14 @@ - - + + + - + @@ -1836,7 +1825,7 @@ form The configuration wizards are used to help you configure a new instance of OpenERP. They are launched during the installation of new modules, but you can choose to restart some wizards manually from this menu. - + @@ -1944,9 +1933,9 @@ search - - - + diff --git a/openerp/addons/base/ir/ir_config_parameter_view.xml b/openerp/addons/base/ir/ir_config_parameter_view.xml index a3e2f7173d2..3df9b80551c 100644 --- a/openerp/addons/base/ir/ir_config_parameter_view.xml +++ b/openerp/addons/base/ir/ir_config_parameter_view.xml @@ -7,7 +7,7 @@ search - + diff --git a/openerp/addons/base/ir/ir_filters.xml b/openerp/addons/base/ir/ir_filters.xml index 3722b533e19..55ebd11de4a 100644 --- a/openerp/addons/base/ir/ir_filters.xml +++ b/openerp/addons/base/ir/ir_filters.xml @@ -53,16 +53,16 @@ search + + + - - - - + diff --git a/openerp/addons/base/ir/ir_model.py b/openerp/addons/base/ir/ir_model.py index da5a1ec19fd..b366d1dfb1c 100644 --- a/openerp/addons/base/ir/ir_model.py +++ b/openerp/addons/base/ir/ir_model.py @@ -642,10 +642,37 @@ class ir_model_data(osv.osv): """ _name = 'ir.model.data' _order = 'module,model,name' + def _display_name_get(self, cr, uid, ids, prop, unknow_none, context=None): + result = {} + result2 = {} + for res in self.browse(cr, uid, ids, context=context): + if res.id: + result.setdefault(res.model, {}) + result[res.model][res.res_id] = res.id + result2[res.id] = False + + for model in result: + try: + r = dict(self.pool.get(model).name_get(cr, uid, result[model].keys(), context=context)) + for key,val in result[model].items(): + result2[val] = r.get(key, False) + except: + # some object have no valid name_get implemented, we accept this + pass + return result2 + + def _complete_name_get(self, cr, uid, ids, prop, unknow_none, context=None): + result = {} + for res in self.browse(cr, uid, ids, context=context): + result[res.id] = (res.module and (res.module + '.') or '')+res.name + return result + _columns = { 'name': fields.char('External Identifier', required=True, size=128, select=1, help="External Key/Identifier that can be used for " "data integration with third-party systems"), + 'complete_name': fields.function(_complete_name_get, type='char', string='Complete ID'), + 'display_name': fields.function(_display_name_get, type='char', string='Record Name'), 'model': fields.char('Model Name', required=True, size=64, select=1), 'module': fields.char('Module', required=True, size=64, select=1), 'res_id': fields.integer('Record ID', select=1, diff --git a/openerp/addons/base/ir/workflow/workflow_view.xml b/openerp/addons/base/ir/workflow/workflow_view.xml index 0ac7df78ce7..bda98b7c8c0 100644 --- a/openerp/addons/base/ir/workflow/workflow_view.xml +++ b/openerp/addons/base/ir/workflow/workflow_view.xml @@ -28,15 +28,14 @@ - workflow.search - workflow - search - - - - - - + workflow.search + workflow + search + + + + + @@ -161,27 +160,27 @@ - workflow.activity.search - workflow.activity - search - - - - - - - - - - - - - - - - + workflow.activity.search + workflow.activity + search + + + + + + + + + + + + + + + + @@ -235,17 +234,17 @@ - workflow.transition.search - workflow.transition - search - - - - - - - - + workflow.transition.search + workflow.transition + search + + + + + + + + @@ -294,17 +293,18 @@ - workflow.instance.search - workflow.instance - search - - - - - - - - + workflow.instance.search + workflow.instance + search + + + + + + + + + @@ -349,7 +349,7 @@ tree - + @@ -358,20 +358,21 @@ - workflow.workitem.search - workflow.workitem - search - - - - - - - - - - - + workflow.workitem.search + workflow.workitem + search + + + + + + + + + + + + diff --git a/openerp/addons/base/module/module_view.xml b/openerp/addons/base/module/module_view.xml index b09bdb22643..97df3bd26d2 100644 --- a/openerp/addons/base/module/module_view.xml +++ b/openerp/addons/base/module/module_view.xml @@ -42,17 +42,14 @@ + + + - - - - diff --git a/openerp/addons/base/publisher_warranty/publisher_warranty_view.xml b/openerp/addons/base/publisher_warranty/publisher_warranty_view.xml index ddf51f8f858..d5c3ef70754 100644 --- a/openerp/addons/base/publisher_warranty/publisher_warranty_view.xml +++ b/openerp/addons/base/publisher_warranty/publisher_warranty_view.xml @@ -58,7 +58,7 @@ search - + diff --git a/openerp/addons/base/res/ir_property_view.xml b/openerp/addons/base/res/ir_property_view.xml index e0b533aeee2..9717cea1fef 100644 --- a/openerp/addons/base/res/ir_property_view.xml +++ b/openerp/addons/base/res/ir_property_view.xml @@ -8,13 +8,14 @@ search + + - - + diff --git a/openerp/addons/base/res/res_bank_view.xml b/openerp/addons/base/res/res_bank_view.xml index 53e58a2c1e5..8857534983a 100644 --- a/openerp/addons/base/res/res_bank_view.xml +++ b/openerp/addons/base/res/res_bank_view.xml @@ -140,12 +140,12 @@ search + + - - diff --git a/openerp/addons/base/res/res_company_view.xml b/openerp/addons/base/res/res_company_view.xml index 4a0ab8a9e3a..5740042b160 100644 --- a/openerp/addons/base/res/res_company_view.xml +++ b/openerp/addons/base/res/res_company_view.xml @@ -173,7 +173,7 @@ - + diff --git a/openerp/addons/base/res/res_currency_view.xml b/openerp/addons/base/res/res_currency_view.xml index e571ba70700..1d37d8d1bba 100644 --- a/openerp/addons/base/res/res_currency_view.xml +++ b/openerp/addons/base/res/res_currency_view.xml @@ -8,7 +8,7 @@ search - + @@ -109,7 +109,7 @@ search - + diff --git a/openerp/addons/base/res/res_lang_view.xml b/openerp/addons/base/res/res_lang_view.xml index 24911593e17..c7811ce4d09 100644 --- a/openerp/addons/base/res/res_lang_view.xml +++ b/openerp/addons/base/res/res_lang_view.xml @@ -109,11 +109,12 @@ + + - - - diff --git a/openerp/addons/base/res/res_partner_view.xml b/openerp/addons/base/res/res_partner_view.xml index 386fe28545b..aaab3a7d008 100644 --- a/openerp/addons/base/res/res_partner_view.xml +++ b/openerp/addons/base/res/res_partner_view.xml @@ -254,17 +254,19 @@ - - - - - + + - - + + + + + diff --git a/openerp/addons/base/res/res_request_view.xml b/openerp/addons/base/res/res_request_view.xml index 0fecd3cd72d..88e9cc91932 100644 --- a/openerp/addons/base/res/res_request_view.xml +++ b/openerp/addons/base/res/res_request_view.xml @@ -34,8 +34,7 @@ search - - + diff --git a/openerp/addons/base/res/res_users_view.xml b/openerp/addons/base/res/res_users_view.xml index e4e70fac7ed..82093dadd4b 100644 --- a/openerp/addons/base/res/res_users_view.xml +++ b/openerp/addons/base/res/res_users_view.xml @@ -150,8 +150,7 @@ search - - + diff --git a/openerp/addons/base/res/res_widget.py b/openerp/addons/base/res/res_widget.py index c4765c3cb1f..2137eab51fd 100644 --- a/openerp/addons/base/res/res_widget.py +++ b/openerp/addons/base/res/res_widget.py @@ -35,6 +35,7 @@ res_widget() class res_widget_user(osv.osv): _name="res.widget.user" + _rec_name="user_id" _order = "sequence" _columns = { 'sequence': fields.integer('Sequence'), diff --git a/openerp/addons/base/res/res_widget_view.xml b/openerp/addons/base/res/res_widget_view.xml index 5b3a7705d61..3fff081ddd8 100644 --- a/openerp/addons/base/res/res_widget_view.xml +++ b/openerp/addons/base/res/res_widget_view.xml @@ -7,7 +7,7 @@ search - + diff --git a/openerp/tests/test_orm.py b/openerp/tests/test_orm.py index 0c4046df2a4..ea9b37e5f3b 100644 --- a/openerp/tests/test_orm.py +++ b/openerp/tests/test_orm.py @@ -20,7 +20,6 @@ class TestO2MSerialization(common.TransactionCase): def setUp(self): super(TestO2MSerialization, self).setUp() self.partner = self.registry('res.partner') - self.address = self.registry('res.partner.address') def test_no_command(self): " empty list of commands yields an empty list of records " @@ -43,9 +42,9 @@ class TestO2MSerialization(common.TransactionCase): def test_LINK_TO_command(self): " reads the records from the database, records are returned with their ids. " ids = [ - self.address.create(self.cr, UID, {'name': 'foo'}), - self.address.create(self.cr, UID, {'name': 'bar'}), - self.address.create(self.cr, UID, {'name': 'baz'}) + self.partner.create(self.cr, UID, {'name': 'foo'}), + self.partner.create(self.cr, UID, {'name': 'bar'}), + self.partner.create(self.cr, UID, {'name': 'baz'}) ] commands = map(LINK_TO, ids) @@ -61,9 +60,9 @@ class TestO2MSerialization(common.TransactionCase): def test_bare_ids_command(self): " same as the equivalent LINK_TO commands " ids = [ - self.address.create(self.cr, UID, {'name': 'foo'}), - self.address.create(self.cr, UID, {'name': 'bar'}), - self.address.create(self.cr, UID, {'name': 'baz'}) + self.partner.create(self.cr, UID, {'name': 'foo'}), + self.partner.create(self.cr, UID, {'name': 'bar'}), + self.partner.create(self.cr, UID, {'name': 'baz'}) ] results = self.partner.resolve_o2m_commands_to_record_dicts( @@ -77,9 +76,9 @@ class TestO2MSerialization(common.TransactionCase): def test_UPDATE_command(self): " take the in-db records and merge the provided information in " - id_foo = self.address.create(self.cr, UID, {'name': 'foo'}) - id_bar = self.address.create(self.cr, UID, {'name': 'bar'}) - id_baz = self.address.create(self.cr, UID, {'name': 'baz', 'city': 'tag'}) + id_foo = self.partner.create(self.cr, UID, {'name': 'foo'}) + id_bar = self.partner.create(self.cr, UID, {'name': 'bar'}) + id_baz = self.partner.create(self.cr, UID, {'name': 'baz', 'city': 'tag'}) results = self.partner.resolve_o2m_commands_to_record_dicts( self.cr, UID, 'address', [ @@ -96,7 +95,7 @@ class TestO2MSerialization(common.TransactionCase): def test_mixed_commands(self): ids = [ - self.address.create(self.cr, UID, {'name': name}) + self.partner.create(self.cr, UID, {'name': name}) for name in ['NObar', 'baz', 'qux', 'NOquux', 'NOcorge', 'garply'] ] @@ -126,9 +125,9 @@ class TestO2MSerialization(common.TransactionCase): def test_LINK_TO_pairs(self): "LINK_TO commands can be written as pairs, instead of triplets" ids = [ - self.address.create(self.cr, UID, {'name': 'foo'}), - self.address.create(self.cr, UID, {'name': 'bar'}), - self.address.create(self.cr, UID, {'name': 'baz'}) + self.partner.create(self.cr, UID, {'name': 'foo'}), + self.partner.create(self.cr, UID, {'name': 'bar'}), + self.partner.create(self.cr, UID, {'name': 'baz'}) ] commands = map(lambda id: (4, id), ids)