From 9c78dc1b91dee9e979b131f600c2b33840f98ee2 Mon Sep 17 00:00:00 2001 From: "RON (OpenERP)" <> Date: Mon, 27 Sep 2010 12:42:29 +0530 Subject: [PATCH 01/89] [IMP]: Usability improvements on base for "Configuration" and "Customization" menus bzr revid: rpa@tinyerp.com-20100927071229-0sy4e7s2j7cfv54a --- bin/addons/base/ir/ir.xml | 137 ++++++++++++------ bin/addons/base/ir/ir_cron.py | 2 +- bin/addons/base/ir/ir_ui_view.py | 4 +- bin/addons/base/ir/workflow/workflow_view.xml | 44 ++++-- .../wizard/base_module_configuration_view.xml | 2 +- 5 files changed, 130 insertions(+), 59 deletions(-) diff --git a/bin/addons/base/ir/ir.xml b/bin/addons/base/ir/ir.xml index e76af79ea01..d6c092bd6f6 100644 --- a/bin/addons/base/ir/ir.xml +++ b/bin/addons/base/ir/ir.xml @@ -10,14 +10,22 @@ 20
+ - - - + + + + + + + + + + @@ -47,12 +55,17 @@ + + + + + - Client Actions + Client Events ir.actions.act_window ir.values form @@ -76,7 +89,9 @@ - + + + @@ -254,7 +269,7 @@ - Sequence Types + Sequence Codes ir.actions.act_window ir.sequence.type form @@ -310,7 +325,8 @@ - + + @@ -857,21 +873,25 @@ form
- - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + @@ -898,6 +918,13 @@ search + + + + @@ -905,7 +932,7 @@ - + @@ -1208,12 +1235,18 @@ search + + + + + + - - - - + @@ -1225,12 +1258,12 @@ form
- - - - - - + + + + + + @@ -1280,12 +1313,29 @@ search + + + + + + + + + + + @@ -1328,6 +1378,10 @@ search + + @@ -1335,8 +1389,8 @@ - - + + @@ -1568,7 +1622,8 @@ - + +
@@ -1587,8 +1642,8 @@ - - + @@ -1888,7 +1943,7 @@ {'key':'server_action'} - + Access Controls Grid @@ -1944,8 +1999,8 @@ - - + + diff --git a/bin/addons/base/ir/ir_cron.py b/bin/addons/base/ir/ir_cron.py index 33962c557c4..6b96333b5d5 100644 --- a/bin/addons/base/ir/ir_cron.py +++ b/bin/addons/base/ir/ir_cron.py @@ -52,7 +52,7 @@ class ir_cron(osv.osv, netsvc.Agent): ('hours', 'Hours'), ('work_days','Work Days'), ('days', 'Days'),('weeks', 'Weeks'), ('months', 'Months')], 'Interval Unit'), 'numbercall': fields.integer('Number of Calls', help='Number of time the function is called,\na negative number indicates that the function will always be called'), 'doall' : fields.boolean('Repeat Missed'), - 'nextcall' : fields.datetime('Next Call Date', required=True), + 'nextcall' : fields.datetime('Next Execution Date', required=True), 'model': fields.char('Object', size=64), 'function': fields.char('Function', size=64), 'args': fields.text('Arguments'), diff --git a/bin/addons/base/ir/ir_ui_view.py b/bin/addons/base/ir/ir_ui_view.py index 62e4bd9dd6e..810bfcf108a 100644 --- a/bin/addons/base/ir/ir_ui_view.py +++ b/bin/addons/base/ir/ir_ui_view.py @@ -55,7 +55,7 @@ class view(osv.osv): _columns = { 'name': fields.char('View Name',size=64, required=True), 'model': fields.char('Object', size=64, required=True), - 'priority': fields.integer('Priority', required=True), + 'priority': fields.integer('Sequence', required=True), 'type': fields.selection(( ('tree','Tree'), ('form','Form'), @@ -212,7 +212,7 @@ class view_sc(osv.osv): _sql_constraints = [ ('shortcut_unique', 'unique(res_id, resource, user_id)', 'Shortcut for this menu already exists!'), ] - + view_sc() # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/bin/addons/base/ir/workflow/workflow_view.xml b/bin/addons/base/ir/workflow/workflow_view.xml index 089d5ee777f..3fb98efb8f9 100644 --- a/bin/addons/base/ir/workflow/workflow_view.xml +++ b/bin/addons/base/ir/workflow/workflow_view.xml @@ -15,9 +15,11 @@ form
- - - + + + + + @@ -92,10 +94,12 @@ form
- - - - + + + + + + @@ -166,11 +170,20 @@ search + + + + + + + @@ -197,13 +210,15 @@ form - - - - - - - + + + + + + + + + @@ -229,6 +244,7 @@ + diff --git a/bin/addons/base/module/wizard/base_module_configuration_view.xml b/bin/addons/base/module/wizard/base_module_configuration_view.xml index 559273be8a9..7f11eced7d4 100644 --- a/bin/addons/base/module/wizard/base_module_configuration_view.xml +++ b/bin/addons/base/module/wizard/base_module_configuration_view.xml @@ -27,7 +27,7 @@ + type="server" icon="STOCK_EXECUTE" sequence="100" /> From 6dcdbe95b06384ef2ab3c49980acb5bb1a1a060b Mon Sep 17 00:00:00 2001 From: "rpa (Open ERP)" Date: Mon, 27 Sep 2010 17:20:13 +0530 Subject: [PATCH 02/89] [IMP]: Improvement in domain to launch config wizard by wizard bzr revid: rpa@tinyerp.com-20100927115013-otj04tdu84e72tki --- bin/addons/base/module/wizard/base_module_configuration.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/addons/base/module/wizard/base_module_configuration.py b/bin/addons/base/module/wizard/base_module_configuration.py index 909637c1d21..345ed9a9797 100644 --- a/bin/addons/base/module/wizard/base_module_configuration.py +++ b/bin/addons/base/module/wizard/base_module_configuration.py @@ -27,7 +27,7 @@ class base_module_configuration(osv.osv_memory): _name = "base.module.configuration" def start(self, cr, uid, ids, context=None): - todo_ids = self.pool.get('ir.actions.todo').search(cr, uid, ['|', ('state', '=', 'open'), ('restart', '=', 'always')]) + todo_ids = self.pool.get('ir.actions.todo').search(cr, uid, ['|', ('state', '=', 'open'), '&', ('state', '=', 'skip'), ('restart', '=', 'onskip')]) if not todo_ids: # When there is no wizard todo it will display message data_obj = self.pool.get('ir.model.data') From 55bec50ff09b29eb616ffbd56949b9ca194753d0 Mon Sep 17 00:00:00 2001 From: jas Date: Wed, 29 Sep 2010 13:28:01 +0530 Subject: [PATCH 03/89] [IMP]: base : Improvements in base module bzr revid: jas@tinyerp.com-20100929075801-l569rvj9tiq2ha9w --- bin/addons/base/base_menu.xml | 7 +- bin/addons/base/ir/ir_model.py | 99 +------------------ .../module/wizard/base_module_import_view.xml | 2 +- .../base/module/wizard/base_module_update.py | 2 +- .../module/wizard/base_module_update_view.xml | 2 +- .../wizard/base_module_upgrade_view.xml | 2 +- .../module/wizard/base_update_translations.py | 6 ++ bin/addons/base/res/res_config.xml | 2 +- bin/addons/base/res/res_lang_view.xml | 47 +++++---- bin/addons/base/res/res_log.py | 7 +- bin/addons/base/res/res_log_view.xml | 7 +- 11 files changed, 50 insertions(+), 133 deletions(-) diff --git a/bin/addons/base/base_menu.xml b/bin/addons/base/base_menu.xml index 5da97026e48..3049fbb17b2 100644 --- a/bin/addons/base/base_menu.xml +++ b/bin/addons/base/base_menu.xml @@ -13,14 +13,13 @@ - + + groups="base.group_extended" parent="base.menu_translation" sequence="3"/> - diff --git a/bin/addons/base/ir/ir_model.py b/bin/addons/base/ir/ir_model.py index 69a9e2990c5..27ccb9286ee 100644 --- a/bin/addons/base/ir/ir_model.py +++ b/bin/addons/base/ir/ir_model.py @@ -142,103 +142,6 @@ class ir_model(osv.osv): x_custom_model._rec_name = x_name ir_model() - -class ir_model_grid(osv.osv): - _name = 'ir.model.grid' - _table = 'ir_model' - _inherit = 'ir.model' - _description = "Objects Security Grid" - - def create(self, cr, uid, vals, context=None): - raise osv.except_osv('Error !', 'You cannot add an entry to this view !') - - def unlink(self, *args, **argv): - raise osv.except_osv('Error !', 'You cannot delete an entry of this view !') - - def read(self, cr, uid, ids, fields=None, context=None, load='_classic_read'): - result = super(osv.osv, self).read(cr, uid, ids, fields, context, load) - allgr = self.pool.get('res.groups').search(cr, uid, [], context=context) - acc_obj = self.pool.get('ir.model.access') - - if not isinstance(result,list): - result=[result] - - for res in result: - rules = acc_obj.search(cr, uid, [('model_id', '=', res['id'])]) - rules_br = acc_obj.browse(cr, uid, rules, context=context) - for g in allgr: - res['group_'+str(g)] = '' - for rule in rules_br: - perm_list = [] - if rule.perm_read: - perm_list.append('r') - if rule.perm_write: - perm_list.append('w') - if rule.perm_create: - perm_list.append('c') - if rule.perm_unlink: - perm_list.append('u') - perms = ",".join(perm_list) - if rule.group_id: - res['group_%d'%rule.group_id.id] = perms - else: - res['group_0'] = perms - return result - - # - # This function do not write fields from ir.model because - # access rights may be different for managing models and - # access rights - # - def write(self, cr, uid, ids, vals, context=None): - vals_new = vals.copy() - acc_obj = self.pool.get('ir.model.access') - for grid in self.browse(cr, uid, ids, context=context): - model_id = grid.id - perms_rel = ['read','write','create','unlink'] - for val in vals: - if not val[:6]=='group_': - continue - group_id = int(val[6:]) or False - rules = acc_obj.search(cr, uid, [('model_id', '=', model_id),('group_id', '=', group_id)]) - if not rules: - rules = [acc_obj.create(cr, uid, { - 'name': grid.name, - 'model_id':model_id, - 'group_id':group_id - }) ] - vals2 = dict(map(lambda x: ('perm_'+x, x[0] in (vals[val] or '')), perms_rel)) - acc_obj.write(cr, uid, rules, vals2, context=context) - return True - - def fields_get(self, cr, uid, fields=None, context=None): - result = super(ir_model_grid, self).fields_get(cr, uid, fields, context) - groups = self.pool.get('res.groups').search(cr, uid, []) - groups_br = self.pool.get('res.groups').browse(cr, uid, groups) - result['group_0'] = {'string': 'All Users','type': 'char','size': 7} - for group in groups_br: - result['group_%d'%group.id] = {'string': '%s'%group.name,'type': 'char','size': 7} - return result - - def fields_view_get(self, cr, uid, view_id=None, view_type='form', context={}, toolbar=False, submenu=False): - result = super(ir_model_grid, self).fields_view_get(cr, uid, view_id, view_type, context=context, toolbar=toolbar, submenu=submenu) - groups = self.pool.get('res.groups').search(cr, uid, []) - groups_br = self.pool.get('res.groups').browse(cr, uid, groups) - cols = ['model', 'name'] - xml = ''' -<%s editable="bottom"> - - - - ''' % (view_type,) - for group in groups_br: - xml += '''''' % (group.id, ) - xml += '''''' % (view_type,) - result['arch'] = xml - result['fields'] = self.fields_get(cr, uid, cols, context) - return result -ir_model_grid() - class ir_model_fields(osv.osv): _name = 'ir.model.fields' _description = "Fields" @@ -327,7 +230,7 @@ class ir_model_access(osv.osv): 'perm_read': fields.boolean('Read Access'), 'perm_write': fields.boolean('Write Access'), 'perm_create': fields.boolean('Create Access'), - 'perm_unlink': fields.boolean('Delete Permission'), + 'perm_unlink': fields.boolean('Delete Access'), } def check_groups(self, cr, uid, group): diff --git a/bin/addons/base/module/wizard/base_module_import_view.xml b/bin/addons/base/module/wizard/base_module_import_view.xml index 8cb974167d9..9d1aa1bce49 100644 --- a/bin/addons/base/module/wizard/base_module_import_view.xml +++ b/bin/addons/base/module/wizard/base_module_import_view.xml @@ -7,7 +7,7 @@ base.module.import form -
+
- + diff --git a/bin/addons/base/res/res_request_view.xml b/bin/addons/base/res/res_request_view.xml index 3e83f6c3e96..2b1195df51c 100644 --- a/bin/addons/base/res/res_request_view.xml +++ b/bin/addons/base/res/res_request_view.xml @@ -1,6 +1,8 @@ + + res.request.tree res.request @@ -40,9 +42,9 @@ - - + -