diff --git a/bin/addons/base/ir/ir.xml b/bin/addons/base/ir/ir.xml index f8eaf6eac10..f02d302df83 100644 --- a/bin/addons/base/ir/ir.xml +++ b/bin/addons/base/ir/ir.xml @@ -1047,8 +1047,8 @@ tree - + diff --git a/bin/addons/base/ir/ir_actions.py b/bin/addons/base/ir/ir_actions.py index 18dc7f514d4..c8ff67c18d9 100644 --- a/bin/addons/base/ir/ir_actions.py +++ b/bin/addons/base/ir/ir_actions.py @@ -36,6 +36,7 @@ from report.report_sxw import report_sxw, report_rml class actions(osv.osv): _name = 'ir.actions.actions' _table = 'ir_actions' + _order = 'name' _columns = { 'name': fields.char('Action Name', required=True, size=64), 'type': fields.char('Action Type', required=True, size=32,readonly=True), @@ -98,6 +99,7 @@ class report_xml(osv.osv): _name = 'ir.actions.report.xml' _table = 'ir_act_report_xml' _sequence = 'ir_actions_id_seq' + _order = 'name' _columns = { 'name': fields.char('Name', size=64, required=True, translate=True), 'model': fields.char('Object', size=64, required=True), @@ -144,6 +146,7 @@ class act_window(osv.osv): _name = 'ir.actions.act_window' _table = 'ir_act_window' _sequence = 'ir_actions_id_seq' + _order = 'name' def _check_model(self, cr, uid, ids, context=None): for action in self.browse(cr, uid, ids, context): @@ -324,6 +327,7 @@ class act_wizard(osv.osv): _inherit = 'ir.actions.actions' _table = 'ir_act_wizard' _sequence = 'ir_actions_id_seq' + _order = 'name' _columns = { 'name': fields.char('Wizard Info', size=64, required=True, translate=True), 'type': fields.char('Action Type', size=32, required=True), @@ -342,6 +346,7 @@ class act_url(osv.osv): _name = 'ir.actions.url' _table = 'ir_act_url' _sequence = 'ir_actions_id_seq' + _order = 'name' _columns = { 'name': fields.char('Action Name', size=64, translate=True), 'type': fields.char('Action Type', size=32, required=True), @@ -436,7 +441,7 @@ class actions_server(osv.osv): _name = 'ir.actions.server' _table = 'ir_act_server' _sequence = 'ir_actions_id_seq' - _order = 'sequence' + _order = 'sequence,name' _columns = { 'name': fields.char('Action Name', required=True, size=64, help="Easy to Refer action by name e.g. One Sales Order -> Many Invoices", translate=True), 'condition' : fields.char('Condition', size=256, required=True, help="Condition that is to be tested before action is executed, e.g. object.list_price > object.cost_price"), @@ -794,7 +799,7 @@ class ir_actions_todo(osv.osv): 'sequence': 10, 'restart': 'onskip', } - _order="sequence,id" + _order="sequence,name,id" def action_launch(self, cr, uid, ids, context=None): """ Launch Action of Wizard""" diff --git a/bin/addons/base/ir/ir_cron.py b/bin/addons/base/ir/ir_cron.py index 391833d2fbe..520429d93ad 100644 --- a/bin/addons/base/ir/ir_cron.py +++ b/bin/addons/base/ir/ir_cron.py @@ -42,6 +42,7 @@ _intervalTypes = { class ir_cron(osv.osv, netsvc.Agent): _name = "ir.cron" + _order = 'name' _columns = { 'name': fields.char('Name', size=60, required=True), 'user_id': fields.many2one('res.users', 'User', required=True), diff --git a/bin/addons/base/ir/ir_exports.py b/bin/addons/base/ir/ir_exports.py index 39477f51fbe..e05d2cc76bc 100644 --- a/bin/addons/base/ir/ir_exports.py +++ b/bin/addons/base/ir/ir_exports.py @@ -24,6 +24,7 @@ from osv import fields,osv class ir_exports(osv.osv): _name = "ir.exports" + _order = 'name' _columns = { 'name': fields.char('Export Name', size=128), 'resource': fields.char('Resource', size=128, select=True), @@ -35,6 +36,7 @@ ir_exports() class ir_exports_line(osv.osv): _name = 'ir.exports.line' + _order = 'sequence,name' _columns = { 'name': fields.char('Field Name', size=64), 'export_id': fields.many2one('ir.exports', 'Export', select=True, ondelete='cascade'), diff --git a/bin/addons/base/ir/ir_model.py b/bin/addons/base/ir/ir_model.py index 80a24a45720..95b003c8a35 100644 --- a/bin/addons/base/ir/ir_model.py +++ b/bin/addons/base/ir/ir_model.py @@ -43,7 +43,7 @@ def _get_fields_type(self, cr, uid, context=None): class ir_model(osv.osv): _name = 'ir.model' _description = "Objects" - _rec_name = 'name' + _order = 'model' def _is_osv_memory(self, cr, uid, ids, field_name, arg, context=None): models = self.browse(cr, uid, ids, context=context) @@ -184,7 +184,7 @@ class ir_model_fields(osv.osv): 'field_description': lambda *a: '', 'selectable': lambda *a: 1, } - _order = "id" + _order = "name" def _size_gt_zero_msg(self, cr, user, ids, context=None): return _('Size of the field can never be less than 1 !') @@ -376,6 +376,7 @@ ir_model_access() class ir_model_data(osv.osv): _name = 'ir.model.data' __logger = logging.getLogger('addons.base.'+_name) + _order = 'module,model,name' _columns = { 'name': fields.char('XML Identifier', required=True, size=128, select=1), 'model': fields.char('Object', required=True, size=64, select=1), diff --git a/bin/addons/base/ir/ir_rule.py b/bin/addons/base/ir/ir_rule.py index f75528f6d47..2fc4c145002 100644 --- a/bin/addons/base/ir/ir_rule.py +++ b/bin/addons/base/ir/ir_rule.py @@ -28,6 +28,7 @@ from tools.safe_eval import safe_eval as eval class ir_rule(osv.osv): _name = 'ir.rule' + _order = 'name' _MODES = ['read', 'write', 'create', 'unlink'] def _domain_force_get(self, cr, uid, ids, field_name, arg, context={}): diff --git a/bin/addons/base/ir/ir_sequence.py b/bin/addons/base/ir/ir_sequence.py index 1d9d5a54782..c4ea65caf6d 100644 --- a/bin/addons/base/ir/ir_sequence.py +++ b/bin/addons/base/ir/ir_sequence.py @@ -25,6 +25,7 @@ import pooler class ir_sequence_type(osv.osv): _name = 'ir.sequence.type' + _order = 'name' _columns = { 'name': fields.char('Name',size=64, required=True), 'code': fields.char('Code',size=32, required=True), @@ -37,6 +38,7 @@ def _code_get(self, cr, uid, context={}): class ir_sequence(osv.osv): _name = 'ir.sequence' + _order = 'name' _columns = { 'name': fields.char('Name',size=64, required=True), 'code': fields.selection(_code_get, 'Code',size=64, required=True), diff --git a/bin/addons/base/ir/ir_ui_view.py b/bin/addons/base/ir/ir_ui_view.py index 40d4be92b6a..895f0051719 100644 --- a/bin/addons/base/ir/ir_ui_view.py +++ b/bin/addons/base/ir/ir_ui_view.py @@ -81,7 +81,7 @@ class view(osv.osv): 'arch': '\n\n\t\n', 'priority': 16 } - _order = "priority" + _order = "priority,name" _constraints = [ (_check_xml, 'Invalid XML for View Architecture!', ['arch']) ] @@ -221,7 +221,7 @@ class view_sc(osv.osv): ids = self.search(cr, uid, [('user_id','=',user_id),('resource','=',model)], context=context) return self.read(cr, uid, ids, ['res_id','name'], context=context) - _order = 'sequence' + _order = 'sequence,name' _defaults = { 'resource': lambda *a: 'ir.ui.menu', 'user_id': lambda obj, cr, uid, context: uid, diff --git a/bin/addons/base/ir/workflow/workflow.py b/bin/addons/base/ir/workflow/workflow.py index dda5dd46276..e5bb3f25d67 100644 --- a/bin/addons/base/ir/workflow/workflow.py +++ b/bin/addons/base/ir/workflow/workflow.py @@ -26,6 +26,7 @@ import netsvc class workflow(osv.osv): _name = "workflow" _table = "wkf" + _order = "name" # _log_access = False _columns = { 'name': fields.char('Name', size=64, required=True), @@ -115,6 +116,7 @@ workflow() class wkf_activity(osv.osv): _name = "workflow.activity" _table = "wkf_activity" + _order = "name" # _log_access = False _columns = { 'name': fields.char('Name', size=64, required=True), diff --git a/bin/addons/base/module/report/ir_module_reference_print.py b/bin/addons/base/module/report/ir_module_reference_print.py index 7364499af7e..36978e21643 100644 --- a/bin/addons/base/module/report/ir_module_reference_print.py +++ b/bin/addons/base/module/report/ir_module_reference_print.py @@ -73,6 +73,7 @@ class ir_module_reference_print(report_sxw.rml_parse): def _fields_find(self, obj): modobj = self.pool.get(obj) res = modobj.fields_get(self.cr, self.uid).items() + res.sort() return res report_sxw.report_sxw('report.ir.module.reference', 'ir.module.module', diff --git a/bin/addons/base/res/bank.py b/bin/addons/base/res/bank.py index 77151a9e801..f94777e4942 100644 --- a/bin/addons/base/res/bank.py +++ b/bin/addons/base/res/bank.py @@ -25,6 +25,7 @@ from osv import fields, osv class Bank(osv.osv): _description='Bank' _name = 'res.bank' + _order = 'name' _columns = { 'name': fields.char('Name', size=128, required=True), 'code': fields.char('Code', size=64), diff --git a/bin/addons/base/res/partner/crm.py b/bin/addons/base/res/partner/crm.py index 6d123ea7984..22ae27bcaae 100644 --- a/bin/addons/base/res/partner/crm.py +++ b/bin/addons/base/res/partner/crm.py @@ -29,6 +29,7 @@ from osv import fields,osv class res_partner_canal(osv.osv): _name = "res.partner.canal" _description = "Channels" + _order = 'name' _columns = { 'name': fields.char('Channel Name',size=64, required=True), 'active': fields.boolean('Active'), diff --git a/bin/addons/base/res/partner/partner.py b/bin/addons/base/res/partner/partner.py index 04d5547973b..c77fba10027 100644 --- a/bin/addons/base/res/partner/partner.py +++ b/bin/addons/base/res/partner/partner.py @@ -29,6 +29,7 @@ from tools.translate import _ class res_payterm(osv.osv): _description = 'Payment term' _name = 'res.payterm' + _order = 'name' _columns = { 'name': fields.char('Payment Term (short name)', size=64), } @@ -254,6 +255,7 @@ res_partner() class res_partner_address(osv.osv): _description ='Partner Addresses' _name = 'res.partner.address' + _order = 'name' _columns = { 'partner_id': fields.many2one('res.partner', 'Partner Name', ondelete='set null', select=True, help="Keep empty for a private address, not related to partner."), 'type': fields.selection( [ ('default','Default'),('invoice','Invoice'), ('delivery','Delivery'), ('contact','Contact'), ('other','Other') ],'Address Type', help="Used to select automatically the right address according to the context in sales and purchases documents."), @@ -327,6 +329,7 @@ res_partner_address() class res_partner_bank_type(osv.osv): _description='Bank Account Type' _name = 'res.partner.bank.type' + _order = 'name' _columns = { 'name': fields.char('Name', size=64, required=True, translate=True), 'code': fields.char('Code', size=64, required=True), @@ -337,6 +340,7 @@ res_partner_bank_type() class res_partner_bank_type_fields(osv.osv): _description='Bank type fields' _name = 'res.partner.bank.type.field' + _order = 'name' _columns = { 'name': fields.char('Field Name', size=64, required=True, translate=True), 'bank_type_id': fields.many2one('res.partner.bank.type', 'Bank Type', required=True, ondelete='cascade'), @@ -352,7 +356,7 @@ class res_partner_bank(osv.osv): _name = "res.partner.bank" _rec_name = "acc_number" _description = __doc__ - _order = 'sequence' + _order = 'sequence,name' def _bank_type_get(self, cr, uid, context=None): bank_type_obj = self.pool.get('res.partner.bank.type') diff --git a/bin/addons/base/res/res_company.py b/bin/addons/base/res/res_company.py index 7361d1871d3..c2d8d2c8324 100644 --- a/bin/addons/base/res/res_company.py +++ b/bin/addons/base/res/res_company.py @@ -72,6 +72,7 @@ multi_company_default() class res_company(osv.osv): _name = "res.company" _description = 'Companies' + _order = 'name' _columns = { 'name': fields.char('Company Name', size=64, required=True), 'parent_id': fields.many2one('res.company', 'Parent Company', select=True), diff --git a/bin/addons/base/res/res_user.py b/bin/addons/base/res/res_user.py index 72ec45e3e76..4cd80b7db5f 100644 --- a/bin/addons/base/res/res_user.py +++ b/bin/addons/base/res/res_user.py @@ -97,6 +97,7 @@ class users(osv.osv): __admin_ids = {} _uid_cache = {} _name = "res.users" + _order = 'name' WELCOME_MAIL_SUBJECT = u"Welcome to OpenERP" WELCOME_MAIL_BODY = u"An OpenERP account has been created for you, "\