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)