diff --git a/openerp/addons/base/ir/ir.xml b/openerp/addons/base/ir/ir.xml index 24e4b5e9cb6..4237a18c286 100644 --- a/openerp/addons/base/ir/ir.xml +++ b/openerp/addons/base/ir/ir.xml @@ -8,7 +8,7 @@ ir.values form - + @@ -31,7 +31,7 @@ ir.values form - + @@ -136,10 +136,10 @@ ir.sequence form - + - - + + @@ -205,7 +205,7 @@ - + @@ -228,7 +228,7 @@ ir.sequence.type form - + @@ -255,8 +255,8 @@ search - - + + @@ -280,7 +280,7 @@ ir.actions.actions form - + @@ -332,13 +332,13 @@ ir.actions.report.xml form - + - - + + - + @@ -436,12 +436,12 @@ ir.actions.act_window form - + - - + + - + @@ -468,7 +468,7 @@ - + @@ -536,8 +536,8 @@ tree - - + + @@ -548,7 +548,7 @@ ir.actions.wizard form - + @@ -615,17 +615,19 @@ ir.ui.view form - + - - - - - - - - - + + + + + + + + + + + @@ -704,7 +706,7 @@ ir.ui.view.custom form - + @@ -739,13 +741,13 @@ ir.attachment form - + - + @@ -840,7 +842,7 @@ ir.model form - + @@ -860,7 +862,7 @@ - + @@ -969,9 +971,9 @@ ir.model.fields form - + - + @@ -1059,7 +1061,7 @@ ir.model.data form - + @@ -1153,9 +1155,9 @@ string="Untranslated" domain="['|',('value', '=', False),('value','=','')]"/> - - - + + + @@ -1165,7 +1167,7 @@ ir.translation form - + @@ -1219,7 +1221,7 @@ ir.ui.view_sc form - + @@ -1257,7 +1259,7 @@ ir.ui.menu form - + @@ -1337,7 +1339,7 @@ ir.cron form - + @@ -1436,7 +1438,7 @@ ir.model.access form - + @@ -1493,7 +1495,7 @@ ir.rule form - + @@ -1590,7 +1592,7 @@ ir.actions.server form - + @@ -1642,7 +1644,7 @@ - + @@ -1742,7 +1744,7 @@ Config Wizard Steps form - + @@ -1816,7 +1818,7 @@ ir.actions.todo.category form - + @@ -1859,7 +1861,7 @@ ir.mail_server form - + diff --git a/openerp/addons/base/ir/ir_actions.py b/openerp/addons/base/ir/ir_actions.py index c74a5128bbf..fbe3f71e024 100644 --- a/openerp/addons/base/ir/ir_actions.py +++ b/openerp/addons/base/ir/ir_actions.py @@ -203,53 +203,11 @@ class act_window(osv.osv): def _search_view(self, cr, uid, ids, name, arg, context=None): res = {} - def encode(s): - if isinstance(s, unicode): - return s.encode('utf8') - return s for act in self.browse(cr, uid, ids, context=context): - fields_from_fields_get = self.pool.get(act.res_model).fields_get(cr, uid, context=context) - search_view_id = False - if act.search_view_id: - search_view_id = act.search_view_id.id - else: - res_view = self.pool.get('ir.ui.view').search(cr, uid, - [('model','=',act.res_model),('type','=','search'), - ('inherit_id','=',False)], context=context) - if res_view: - search_view_id = res_view[0] - if search_view_id: - field_get = self.pool.get(act.res_model).fields_view_get(cr, uid, search_view_id, - 'search', context) - fields_from_fields_get.update(field_get['fields']) - field_get['fields'] = fields_from_fields_get - res[act.id] = str(field_get) - else: - def process_child(node, new_node, doc): - for child in node.childNodes: - if child.localName=='field' and child.hasAttribute('select') \ - and child.getAttribute('select')=='1': - if child.childNodes: - fld = doc.createElement('field') - for attr in child.attributes.keys(): - fld.setAttribute(attr, child.getAttribute(attr)) - new_node.appendChild(fld) - else: - new_node.appendChild(child) - elif child.localName in ('page','group','notebook'): - process_child(child, new_node, doc) - - form_arch = self.pool.get(act.res_model).fields_view_get(cr, uid, False, 'form', context) - dom_arc = dom.minidom.parseString(encode(form_arch['arch'])) - new_node = copy.deepcopy(dom_arc) - for child_node in new_node.childNodes[0].childNodes: - if child_node.nodeType == child_node.ELEMENT_NODE: - new_node.childNodes[0].removeChild(child_node) - process_child(dom_arc.childNodes[0],new_node.childNodes[0],dom_arc) - - form_arch['arch'] = new_node.toxml() - form_arch['fields'].update(fields_from_fields_get) - res[act.id] = str(form_arch) + field_get = self.pool.get(act.res_model).fields_view_get(cr, uid, + act.search_view_id and act.search_view_id.id or False, + 'search', context=context) + res[act.id] = str(field_get) return res def _get_help_status(self, cr, uid, ids, name, arg, context=None): diff --git a/openerp/addons/base/ir/ir_config_parameter_view.xml b/openerp/addons/base/ir/ir_config_parameter_view.xml index a1707509256..24825eefc0f 100644 --- a/openerp/addons/base/ir/ir_config_parameter_view.xml +++ b/openerp/addons/base/ir/ir_config_parameter_view.xml @@ -28,7 +28,7 @@ ir.config_parameter form - + diff --git a/openerp/addons/base/ir/ir_filters.xml b/openerp/addons/base/ir/ir_filters.xml index 6243abb4d5e..1985368d6fa 100644 --- a/openerp/addons/base/ir/ir_filters.xml +++ b/openerp/addons/base/ir/ir_filters.xml @@ -16,7 +16,7 @@ ir.filters form - + diff --git a/openerp/addons/base/ir/wizard/wizard_menu_view.xml b/openerp/addons/base/ir/wizard/wizard_menu_view.xml index f8666e5421e..a9c841a6d69 100644 --- a/openerp/addons/base/ir/wizard/wizard_menu_view.xml +++ b/openerp/addons/base/ir/wizard/wizard_menu_view.xml @@ -6,7 +6,7 @@ wizard.ir.model.menu.create form - + diff --git a/openerp/addons/base/ir/workflow/workflow_view.xml b/openerp/addons/base/ir/workflow/workflow_view.xml index 65368a9f444..e4fa561e202 100644 --- a/openerp/addons/base/ir/workflow/workflow_view.xml +++ b/openerp/addons/base/ir/workflow/workflow_view.xml @@ -14,7 +14,7 @@ workflow form - + @@ -92,7 +92,7 @@ workflow.activity form - + @@ -201,7 +201,7 @@ workflow.transition form - + @@ -262,7 +262,7 @@ workflow.instance form - + @@ -322,7 +322,7 @@ workflow.workitem form - + diff --git a/openerp/addons/base/module/module.py b/openerp/addons/base/module/module.py index e04e4e4a02b..e4e3a8f9b8d 100644 --- a/openerp/addons/base/module/module.py +++ b/openerp/addons/base/module/module.py @@ -163,7 +163,7 @@ class module(osv.osv): _columns = { 'name': fields.char("Technical Name", size=128, readonly=True, required=True, select=True), 'category_id': fields.many2one('ir.module.category', 'Category', readonly=True, select=True), - 'shortdesc': fields.char('Name', size=256, readonly=True, translate=True), + 'shortdesc': fields.char('Module Name', size=256, readonly=True, translate=True), 'description': fields.text("Description", readonly=True, translate=True), 'author': fields.char("Author", size=128, readonly=True), 'maintainer': fields.char('Maintainer', size=128, readonly=True), diff --git a/openerp/addons/base/module/module_view.xml b/openerp/addons/base/module/module_view.xml index 28419d5ad53..8da405b23cd 100644 --- a/openerp/addons/base/module/module_view.xml +++ b/openerp/addons/base/module/module_view.xml @@ -9,7 +9,7 @@ ir.module.category form - + @@ -119,7 +119,7 @@ ir.module.module form - + @@ -173,8 +173,8 @@ - + diff --git a/openerp/addons/base/module/wizard/base_import_language_view.xml b/openerp/addons/base/module/wizard/base_import_language_view.xml index 4a1d7e5b758..76cfd941543 100644 --- a/openerp/addons/base/module/wizard/base_import_language_view.xml +++ b/openerp/addons/base/module/wizard/base_import_language_view.xml @@ -7,34 +7,18 @@ base.language.import form - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + diff --git a/openerp/addons/base/module/wizard/base_module_configuration_view.xml b/openerp/addons/base/module/wizard/base_module_configuration_view.xml index 0fe7208e2f5..a2d235ebb97 100644 --- a/openerp/addons/base/module/wizard/base_module_configuration_view.xml +++ b/openerp/addons/base/module/wizard/base_module_configuration_view.xml @@ -7,7 +7,7 @@ base.module.configuration form - + diff --git a/openerp/addons/base/module/wizard/base_module_scan_view.xml b/openerp/addons/base/module/wizard/base_module_scan_view.xml index b54b8c204aa..fcad3514824 100644 --- a/openerp/addons/base/module/wizard/base_module_scan_view.xml +++ b/openerp/addons/base/module/wizard/base_module_scan_view.xml @@ -7,7 +7,7 @@ base.module.scan form - + diff --git a/openerp/addons/base/module/wizard/base_module_upgrade.py b/openerp/addons/base/module/wizard/base_module_upgrade.py index a9486a9a929..78fc8a5d398 100644 --- a/openerp/addons/base/module/wizard/base_module_upgrade.py +++ b/openerp/addons/base/module/wizard/base_module_upgrade.py @@ -46,14 +46,14 @@ class base_module_upgrade(osv.osv_memory): ids = self.get_module_list(cr, uid, context=context) if not ids: - res['arch'] = ''' + res['arch'] = ''' + + + + - - - - ''' return res diff --git a/openerp/addons/base/module/wizard/base_module_upgrade_view.xml b/openerp/addons/base/module/wizard/base_module_upgrade_view.xml index 3af7c80a4e1..3f5da77b96d 100644 --- a/openerp/addons/base/module/wizard/base_module_upgrade_view.xml +++ b/openerp/addons/base/module/wizard/base_module_upgrade_view.xml @@ -7,7 +7,7 @@ base.module.upgrade form - + @@ -43,7 +43,7 @@ form - + diff --git a/openerp/addons/base/res/ir_property_view.xml b/openerp/addons/base/res/ir_property_view.xml index 4ad7e5faf11..3d8fb14b48e 100644 --- a/openerp/addons/base/res/ir_property_view.xml +++ b/openerp/addons/base/res/ir_property_view.xml @@ -24,7 +24,7 @@ ir.property form - + diff --git a/openerp/addons/base/res/res_bank_view.xml b/openerp/addons/base/res/res_bank_view.xml index 47a01e3d595..c098c5a92db 100644 --- a/openerp/addons/base/res/res_bank_view.xml +++ b/openerp/addons/base/res/res_bank_view.xml @@ -7,11 +7,10 @@ res.bank form - - - - - + + + + @@ -31,6 +30,7 @@ + @@ -63,7 +63,7 @@ res.partner.bank.type form - + @@ -79,8 +79,8 @@ tree - - + + @@ -90,7 +90,7 @@ res.partner.bank form - + diff --git a/openerp/addons/base/res/res_company_view.xml b/openerp/addons/base/res/res_company_view.xml index 5a7bfa8f1ec..37631b7eaf8 100644 --- a/openerp/addons/base/res/res_company_view.xml +++ b/openerp/addons/base/res/res_company_view.xml @@ -18,7 +18,7 @@ res.company form - + @@ -148,7 +148,7 @@ form - + @@ -171,10 +171,10 @@ - - - - + + + + diff --git a/openerp/addons/base/res/res_config.xml b/openerp/addons/base/res/res_config.xml index 72ae781e3bc..e043afb0b7e 100644 --- a/openerp/addons/base/res/res_config.xml +++ b/openerp/addons/base/res/res_config.xml @@ -5,7 +5,7 @@ res.config form - + @@ -22,7 +22,7 @@ ir.actions.configuration.wizard form - + @@ -37,7 +37,7 @@ res.config.installer form - + diff --git a/openerp/addons/base/res/res_country_view.xml b/openerp/addons/base/res/res_country_view.xml index cd6d132e006..6b28f065272 100644 --- a/openerp/addons/base/res/res_country_view.xml +++ b/openerp/addons/base/res/res_country_view.xml @@ -23,7 +23,7 @@ res.country form - + @@ -67,7 +67,7 @@ res.country.state form - + diff --git a/openerp/addons/base/res/res_currency_view.xml b/openerp/addons/base/res/res_currency_view.xml index fd11b7ac4d8..e571ba70700 100644 --- a/openerp/addons/base/res/res_currency_view.xml +++ b/openerp/addons/base/res/res_currency_view.xml @@ -37,14 +37,14 @@ res.currency form - + - + @@ -88,8 +88,10 @@ res.currency.rate.type form - - + + + + diff --git a/openerp/addons/base/res/res_lang_view.xml b/openerp/addons/base/res/res_lang_view.xml index e792ca9d069..a29275d77e4 100644 --- a/openerp/addons/base/res/res_lang_view.xml +++ b/openerp/addons/base/res/res_lang_view.xml @@ -23,7 +23,7 @@ res.lang form - + diff --git a/openerp/addons/base/res/res_partner_view.xml b/openerp/addons/base/res/res_partner_view.xml index be8246429e0..c759d470cc0 100644 --- a/openerp/addons/base/res/res_partner_view.xml +++ b/openerp/addons/base/res/res_partner_view.xml @@ -17,8 +17,8 @@ tree - - + + @@ -27,7 +27,7 @@ res.partner.title form - + @@ -99,7 +99,7 @@ res.partner form - + @@ -399,8 +399,10 @@ res.payterm form - - + + + + @@ -421,7 +423,7 @@ res.partner.category form - + diff --git a/openerp/addons/base/res/res_request_view.xml b/openerp/addons/base/res/res_request_view.xml index 3b03cc6f77d..2fa5caccea9 100644 --- a/openerp/addons/base/res/res_request_view.xml +++ b/openerp/addons/base/res/res_request_view.xml @@ -6,7 +6,7 @@ res.request.link form - + diff --git a/openerp/addons/base/res/res_users_view.xml b/openerp/addons/base/res/res_users_view.xml index dd892dda531..277cda2f576 100644 --- a/openerp/addons/base/res/res_users_view.xml +++ b/openerp/addons/base/res/res_users_view.xml @@ -7,12 +7,12 @@ res.groups form - + - + @@ -33,7 +33,7 @@ - + @@ -76,7 +76,7 @@ res.users form - + @@ -192,7 +192,7 @@ form - + diff --git a/openerp/addons/base/res/res_widget_view.xml b/openerp/addons/base/res/res_widget_view.xml index ee8aef051fd..da82738090c 100644 --- a/openerp/addons/base/res/res_widget_view.xml +++ b/openerp/addons/base/res/res_widget_view.xml @@ -16,7 +16,7 @@ res.widget form - + @@ -61,7 +61,7 @@ res.widget.user form - + @@ -83,7 +83,7 @@ res.widget.wizard form - + diff --git a/openerp/osv/orm.py b/openerp/osv/orm.py index e99296a15e1..3f1fcaff7b0 100644 --- a/openerp/osv/orm.py +++ b/openerp/osv/orm.py @@ -1859,6 +1859,24 @@ class BaseModel(object): etree.SubElement(view, 'newline') return view + def _get_default_search_view(self, cr, user, context=None): + """ Generates a single-field tree view, using _rec_name if + it's one of the columns or the first column it finds otherwise + + :param cr: database cursor + :param int user: user id + :param dict context: connection context + :returns: a tree view as an lxml document + :rtype: etree._Element + """ + _rec_name = self._rec_name + if _rec_name not in self._columns: + _rec_name = self._columns.keys()[0] if len(self._columns.keys()) > 0 else "id" + + view = etree.Element('search', string=self._description) + etree.SubElement(view, 'field', name=_rec_name) + return view + def _get_default_tree_view(self, cr, user, context=None): """ Generates a single-field tree view, using _rec_name if it's one of the columns or the first column it finds otherwise @@ -1928,38 +1946,6 @@ class BaseModel(object): return view - def _get_default_search_view(self, cr, uid, context=None): - """ - :param cr: database cursor - :param int user: user id - :param dict context: connection context - :returns: an lxml document of the view - :rtype: etree._Element - """ - form_view = self.fields_view_get(cr, uid, False, 'form', context=context) - tree_view = self.fields_view_get(cr, uid, False, 'tree', context=context) - - # TODO it seems _all_columns could be used instead of fields_get (no need for translated fields info) - fields = self.fields_get(cr, uid, context=context) - fields_to_search = set( - field for field, descriptor in fields.iteritems() - if descriptor.get('select')) - - for view in (form_view, tree_view): - view_root = etree.fromstring(view['arch']) - # Only care about select=1 in xpath below, because select=2 is covered - # by the custom advanced search in clients - fields_to_search.update(view_root.xpath("//field[@select=1]/@name")) - - tree_view_root = view_root # as provided by loop above - search_view = etree.Element("search", string=tree_view_root.get("string", "")) - - field_group = etree.SubElement(search_view, "group") - for field_name in fields_to_search: - etree.SubElement(field_group, "field", name=field_name) - - return search_view - # # if view_id, view_type is not required #