diff --git a/trytond/ir/action.py b/trytond/ir/action.py index 932deab8ac..76e19ab308 100644 --- a/trytond/ir/action.py +++ b/trytond/ir/action.py @@ -8,15 +8,13 @@ class Action(OSV): "Action" _name = 'ir.action' _description = __doc__ - _columns = { - 'name': fields.char('Name', required=True, size=64, translate=True), - 'type': fields.char('Type', required=True, size=32, readonly=True), - 'usage': fields.char('Usage', size=32), - 'keywords': fields.one2many('ir.action.keyword', 'action', - 'Keywords'), - 'groups': fields.Many2Many('res.group', 'ir_action_group_rel', - 'action_id', 'gid', 'Groups'), - } + name = fields.char('Name', required=True, size=64, translate=True) + type = fields.char('Type', required=True, size=32, readonly=True) + usage = fields.char('Usage', size=32) + keywords = fields.one2many('ir.action.keyword', 'action', + 'Keywords') + groups = fields.Many2Many('res.group', 'ir_action_group_rel', + 'action_id', 'gid', 'Groups') _defaults = { 'usage': lambda *a: False, } @@ -49,18 +47,16 @@ class ActionKeyword(OSV): "Action keyword" _name = 'ir.action.keyword' _description = __doc__ - _columns = { - 'keyword': fields.Selection([ + keyword = fields.Selection([ ('tree_open', 'Open tree'), ('tree_action', 'Action tree'), ('form_print', 'Print form'), ('form_action', 'Action form'), ('form_relate', 'Form relate'), - ], string='Keyword', required=True), - 'model': fields.Reference('Model', selection='models_get', size=128), - 'action': fields.many2one('ir.action', 'Action', - ondelete='CASCADE'), - } + ], string='Keyword', required=True) + model = fields.Reference('Model', selection='models_get', size=128) + action = fields.many2one('ir.action', 'Action', + ondelete='CASCADE') def __init__(self, pool): super(ActionKeyword, self).__init__(pool) @@ -170,16 +166,14 @@ class ActionReport(OSV): _sequence = 'ir_action_id_seq' _description = __doc__ _inherits = {'ir.action': 'action'} - _columns = { - 'model': fields.Char('Model', size=64, required=True), - 'report_name': fields.Char('Internal Name', size=64, required=True), - 'report': fields.Char('Path', size=128), - 'report_content_data': fields.Binary('Content'), - 'report_content': fields.Function('report_content', - fnct_inv='report_content_inv', type='binary', - string='Content',), - 'action': fields.Many2One('ir.action', 'Action', required=True), - } + model = fields.Char('Model', size=64, required=True) + report_name = fields.Char('Internal Name', size=64, required=True) + report = fields.Char('Path', size=128) + report_content_data = fields.Binary('Content') + report_content = fields.Function('get_report_content', + fnct_inv='report_content_inv', type='binary', + string='Content') + action = fields.Many2One('ir.action', 'Action', required=True) _defaults = { 'type': lambda *a: 'ir.action.report', 'report_content': lambda *a: False, @@ -189,7 +183,7 @@ class ActionReport(OSV): 'The internal name must be unique!'), ] - def report_content(self, cursor, user, ids, name, arg, context=None): + def get_report_content(self, cursor, user, ids, name, arg, context=None): res = {} for report in self.browse(cursor, user, ids, context=context): data = report[name + '_data'] @@ -224,24 +218,22 @@ class ActionActWindow(OSV): _sequence = 'ir_action_id_seq' _description = __doc__ _inherits = {'ir.action': 'action'} - _columns = { - 'domain': fields.Char('Domain Value', size=250), - 'context': fields.Char('Context Value', size=250), - 'res_model': fields.Char('Model', size=64), - 'src_model': fields.Char('Source model', size=64), - 'view_type': fields.Selection([('tree','Tree'), ('form','Form')], - string='Type of view'), - 'usage': fields.Char('Action Usage', size=32), - 'act_window_views': fields.One2Many('ir.action.act_window.view', - 'act_window', 'Views'), - 'views': fields.Function('views_get_fnc', type='binary', - string='Views'), - 'limit': fields.Integer('Limit', - help='Default limit for the list view'), - 'auto_refresh': fields.Integer('Auto-Refresh', - help='Add an auto-refresh on the view'), - 'action': fields.Many2One('ir.action', 'Action', required=True), - } + domain = fields.Char('Domain Value', size=250) + context = fields.Char('Context Value', size=250) + res_model = fields.Char('Model', size=64) + src_model = fields.Char('Source model', size=64) + view_type = fields.Selection([('tree','Tree'), ('form','Form')], + string='Type of view') + usage = fields.Char('Action Usage', size=32) + act_window_views = fields.One2Many('ir.action.act_window.view', + 'act_window', 'Views') + views = fields.Function('views_get_fnc', type='binary', + string='Views') + limit = fields.Integer('Limit', + help='Default limit for the list view') + auto_refresh = fields.Integer('Auto-Refresh', + help='Add an auto-refresh on the view') + action = fields.Many2One('ir.action', 'Action', required=True) _defaults = { 'type': lambda *a: 'ir.action.act_window', 'view_type': lambda *a: 'form', @@ -265,15 +257,13 @@ class ActionActWindowView(OSV): _name = 'ir.action.act_window.view' _rec_name = 'view' _description = __doc__ - _columns = { - 'sequence': fields.Integer('Sequence'), - 'view': fields.Many2One('ir.ui.view', 'View', required=True), - 'act_window': fields.Many2One('ir.action.act_window', 'Action', - ondelete='CASCADE'), - 'multi': fields.Boolean('On multiple doc.', - help="If set to true, the action will not be displayed \n" \ - "on the right toolbar of a form views."), - } + sequence = fields.Integer('Sequence') + view = fields.Many2One('ir.ui.view', 'View', required=True) + act_window = fields.Many2One('ir.action.act_window', 'Action', + ondelete='CASCADE') + multi = fields.Boolean('On multiple doc.', + help="If set to true, the action will not be displayed \n" \ + "on the right toolbar of a form views.") _defaults = { 'multi': lambda *a: False, } @@ -288,10 +278,8 @@ class ActionWizard(OSV): _sequence = 'ir_action_id_seq' _description = __doc__ _inherits = {'ir.action': 'action'} - _columns = { - 'wiz_name': fields.char('Wizard name', size=64, required=True), - 'action': fields.many2one('ir.action', 'Action', required=True), - } + wiz_name = fields.char('Wizard name', size=64, required=True) + action = fields.many2one('ir.action', 'Action', required=True) _defaults = { 'type': lambda *a: 'ir.action.wizard', } @@ -305,14 +293,12 @@ class ActionURL(OSV): _sequence = 'ir_action_id_seq' _description = __doc__ _inherits = {'ir.action': 'action'} - _columns = { - 'url': fields.text('Action Url',required=True), - 'target': fields.selection([ - ('new', 'New Window'), - ('self', 'This Window'), - ], 'Action Target', required=True), - 'action': fields.many2one('ir.action', 'Action', required=True), - } + url = fields.text('Action Url',required=True) + target = fields.selection([ + ('new', 'New Window'), + ('self', 'This Window'), + ], 'Action Target', required=True) + action = fields.many2one('ir.action', 'Action', required=True) _defaults = { 'type': lambda *a: 'ir.action.act_url', 'target': lambda *a: 'new', diff --git a/trytond/ir/attachment.py b/trytond/ir/attachment.py index 3de315d2c9..a149da122d 100644 --- a/trytond/ir/attachment.py +++ b/trytond/ir/attachment.py @@ -9,21 +9,19 @@ class Attachment(OSV): "Attachment" _name = 'ir.attachment' _description = __doc__ - _columns = { - 'name': fields.Char('Attachment Name',size=64, required=True), - 'datas': fields.Function('datas', fnct_inv='datas_inv', - type='binary', string='Datas'), - 'description': fields.Text('Description'), - 'res_model': fields.Char('Resource Model',size=64, - readonly=True, required=True), - 'res_id': fields.Integer('Resource ID', readonly=True, - required=True), - 'link': fields.Char('Link', size=256), - 'digest': fields.Char('Digest', size=32), - 'collision': fields.Integer('Collision'), - 'datas_size': fields.Function('datas', type='integer', - string='Datas size'), - } + name = fields.Char('Attachment Name',size=64, required=True) + datas = fields.Function('datas', fnct_inv='datas_inv', + type='binary', string='Datas') + description = fields.Text('Description') + res_model = fields.Char('Resource Model',size=64, + readonly=True, required=True) + res_id = fields.Integer('Resource ID', readonly=True, + required=True) + link = fields.Char('Link', size=256) + digest = fields.Char('Digest', size=32) + collision = fields.Integer('Collision') + datas_size = fields.Function('datas', type='integer', + string='Datas size') _defaults = { 'collision': lambda *a: 0, } diff --git a/trytond/ir/cron.py b/trytond/ir/cron.py index 19fa867d36..e1d137c9da 100644 --- a/trytond/ir/cron.py +++ b/trytond/ir/cron.py @@ -27,31 +27,28 @@ class Cron(OSV, Agent): "Cron" _name = "ir.cron" _description = __doc__ - _columns = { - 'name': fields.char('Name', size=60, required=True), - 'user': fields.many2one('res.user', 'User', required=True), - 'active': fields.boolean('Active'), - 'interval_number': fields.integer('Interval Number'), - 'interval_type': fields.selection( [ - ('minutes', 'Minutes'), - ('hours', 'Hours'), - ('days', 'Days'), - ('weeks', 'Weeks'), - ('months', 'Months'), - ], 'Interval Unit'), - 'numbercall': fields.integer('Number of calls', - help='Number of time the function is called,\n' \ - 'a negative number indicates that the function ' \ - 'will always be called'), - 'doall' : fields.boolean('Repeat missed'), - 'nextcall' : fields.datetime('Next call date', required=True), - 'model': fields.char('Model', size=64), - 'function': fields.char('Function', size=64), - 'args': fields.text('Arguments'), - 'priority': fields.integer('Priority', - help='0=Very Urgent\n10=Not urgent') - } - + name = fields.Char('Name', size=60, required=True) + user = fields.Many2One('res.user', 'User', required=True) + active = fields.Boolean('Active') + interval_number = fields.Integer('Interval Number') + interval_type = fields.Selection( [ + ('minutes', 'Minutes'), + ('hours', 'Hours'), + ('days', 'Days'), + ('weeks', 'Weeks'), + ('months', 'Months'), + ], 'Interval Unit') + numbercall = fields.Integer('Number of calls', + help='Number of time the function is called,\n' \ + 'a negative number indicates that the function ' \ + 'will always be called') + doall = fields.Boolean('Repeat missed') + nextcall = fields.DateTime('Next call date', required=True) + model = fields.Char('Model', size=64) + function = fields.Char('Function', size=64) + args = fields.Text('Arguments') + priority = fields.Integer('Priority', + help='0=Very Urgent\n10=Not urgent') _defaults = { 'nextcall' : lambda *a: time.strftime('%Y-%m-%d %H:%M:%S'), 'priority' : lambda *a: 5, diff --git a/trytond/ir/default.py b/trytond/ir/default.py index 0d93a14824..9e823dcc1f 100644 --- a/trytond/ir/default.py +++ b/trytond/ir/default.py @@ -7,15 +7,13 @@ class Default(OSV): _name = 'ir.default' _description = __doc__ _rec_name = 'value' - _columns = { - 'model': fields.Many2One('ir.model', 'Model', required=True, - ondelete='cascade'), - 'field': fields.Many2One('ir.model.field', 'Field', required=True, - ondelete='cascade'), - 'value': fields.Text('Value'), - 'clause': fields.Text('Clause'), - 'user': fields.Many2One('res.user', 'User', ondelete='cascade'), - } + model = fields.Many2One('ir.model', 'Model', required=True, + ondelete='cascade') + field = fields.Many2One('ir.model.field', 'Field', required=True, + ondelete='cascade') + value = fields.Text('Value') + clause = fields.Text('Clause') + user = fields.Many2One('res.user', 'User', ondelete='cascade') def get_default(self, cursor, user, model, clause, context=None): res = {} diff --git a/trytond/ir/export.py b/trytond/ir/export.py index 7fc08c6f8d..7610b1691b 100644 --- a/trytond/ir/export.py +++ b/trytond/ir/export.py @@ -6,12 +6,10 @@ class Export(OSV): "Export" _name = "ir.export" _description = __doc__ - _columns = { - 'name': fields.char('Export name', size=128), - 'resource': fields.char('Resource', size=128), - 'export_fields': fields.one2many('ir.export.line', 'export', - 'Export Id'), - } + name = fields.char('Export name', size=128) + resource = fields.char('Resource', size=128) + export_fields = fields.one2many('ir.export.line', 'export', + 'Export Id') Export() @@ -20,10 +18,8 @@ class ExportLine(OSV): "Export line" _name = 'ir.export.line' _description = __doc__ - _columns = { - 'name': fields.char('Field name', size=64), - 'export': fields.many2one('ir.export', 'Exportation', - select=True), - } + name = fields.char('Field name', size=64) + export = fields.many2one('ir.export', 'Exportation', + select=True) ExportLine() diff --git a/trytond/ir/lang.py b/trytond/ir/lang.py index 4d56a88764..dd80833951 100644 --- a/trytond/ir/lang.py +++ b/trytond/ir/lang.py @@ -7,16 +7,14 @@ class Lang(OSV): _name = "ir.lang" _log_access = False _description = __doc__ - _columns = { - 'name': fields.Char('Name', size=64, required=True), - 'code': fields.Char('Code', size=5, required=True), - 'translatable': fields.Boolean('Translatable'), - 'active': fields.Boolean('Active'), - 'direction': fields.Selection([ - ('ltr', 'Left-to-right'), - ('rtl', 'Right-to-left'), - ], 'Direction',required=True), - } + name = fields.Char('Name', size=64, required=True) + code = fields.Char('Code', size=5, required=True) + translatable = fields.Boolean('Translatable') + active = fields.Boolean('Active') + direction = fields.Selection([ + ('ltr', 'Left-to-right'), + ('rtl', 'Right-to-left'), + ], 'Direction',required=True) _defaults = { 'active': lambda *a: 1, 'translatable': lambda *a: 0, diff --git a/trytond/ir/model.py b/trytond/ir/model.py index cfd6cafb18..6ded9f71a0 100644 --- a/trytond/ir/model.py +++ b/trytond/ir/model.py @@ -19,13 +19,11 @@ class Model(OSV): "Model" _name = 'ir.model' _description = __doc__ - _columns = { - 'name': fields.Char('Model name', size=64, translate=True), - 'model': fields.Char('Object name', size=64, required=True), - 'info': fields.Text('Information'), - 'fields': fields.One2Many('ir.model.field', 'model', 'Fields', - required=True), - } + name = fields.Char('Model name', size=64, translate=True) + model = fields.Char('Object name', size=64, required=True) + info = fields.Text('Information') + fields = fields.One2Many('ir.model.field', 'model', 'Fields', + required=True) _defaults = { 'name': lambda *a: 'No Name', } @@ -36,22 +34,19 @@ class ModelField(OSV): "Model field" _name = 'ir.model.field' _description = __doc__ - _columns = { - 'name': fields.Char('Name', size=64), - 'relation': fields.Char('Model Relation', size=64), - 'model': fields.Many2One('ir.model', 'Model', required=True, - select=True, ondelete='cascade'), - 'field_description': fields.Char('Field Description', size=256, - translate=True), - 'ttype': fields.Char('Field Type', size=64), - 'relate': fields.Boolean('Click and Relate'), - - 'groups': fields.Many2Many('res.group', 'ir_model_field_group_rel', - 'field_id', 'group_id', 'Groups'), - 'group_name': fields.Char('Group Name', size=128), - 'view_load': fields.Boolean('View Auto-Load'), - 'help': fields.Text('Help', translate=True), - } + name = fields.Char('Name', size=64) + relation = fields.Char('Model Relation', size=64) + model = fields.Many2One('ir.model', 'Model', required=True, + select=True, ondelete='cascade') + field_description = fields.Char('Field Description', size=256, + translate=True) + ttype = fields.Char('Field Type', size=64) + relate = fields.Boolean('Click and Relate') + groups = fields.Many2Many('res.group', 'ir_model_field_group_rel', + 'field_id', 'group_id', 'Groups') + group_name = fields.Char('Group Name', size=128) + view_load = fields.Boolean('View Auto-Load') + help = fields.Text('Help', translate=True) _defaults = { 'relate': lambda *a: 0, 'view_load': lambda *a: 0, @@ -68,15 +63,13 @@ class ModelAccess(OSV): _name = 'ir.model.access' _description = __doc__ _rec_name = 'model' - _columns = { - 'model': fields.Many2One('ir.model', 'Model', required=True), - 'group': fields.Many2One('res.group', 'Group'), - 'perm_read': fields.Boolean('Read Access'), - 'perm_write': fields.Boolean('Write Access'), - 'perm_create': fields.Boolean('Create Access'), - 'perm_unlink': fields.Boolean('Delete Permission'), - 'description': fields.Text('Description'), - } + model = fields.Many2One('ir.model', 'Model', required=True) + group = fields.Many2One('res.group', 'Group') + perm_read = fields.Boolean('Read Access') + perm_write = fields.Boolean('Write Access') + perm_create = fields.Boolean('Create Access') + perm_unlink = fields.Boolean('Delete Permission') + description = fields.Text('Description') _sql_constraints = [ ('model_group_uniq', 'UNIQUE("model", "group")', 'Only on record by model and group is allowed!'), @@ -160,17 +153,15 @@ class ModelData(OSV): "Model data" _name = 'ir.model.data' _description = __doc__ - _columns = { - 'fs_id': fields.Char('Identifier on File System', required=True, - size=64, help="The id of the record as known on the file system."), - 'model': fields.Char('Model', required=True, size=64), - 'module': fields.Char('Module', required=True, size=64), - 'db_id': fields.Integer('Resource ID', - help="The id of the record in the database."), - 'date_update': fields.DateTime('Update Date'), - 'date_init': fields.DateTime('Init Date'), - 'values': fields.Text('Values'), - } + fs_id = fields.Char('Identifier on File System', required=True, + size=64, help="The id of the record as known on the file system.") + model = fields.Char('Model', required=True, size=64) + module = fields.Char('Module', required=True, size=64) + db_id = fields.Integer('Resource ID', + help="The id of the record in the database.") + date_update = fields.DateTime('Update Date') + date_init = fields.DateTime('Init Date') + values = fields.Text('Values') _defaults = { 'date_init': lambda *a: time.strftime('%Y-%m-%d %H:%M:%S'), } diff --git a/trytond/ir/module/category.py b/trytond/ir/module/category.py index c3f30dd6ce..5deee3d872 100644 --- a/trytond/ir/module/category.py +++ b/trytond/ir/module/category.py @@ -6,13 +6,11 @@ class Category(OSV): "Module Category" _name = "ir.module.category" _description = __doc__ - _columns = { - 'name': fields.Char("Name", size=128, required=True), - 'parent': fields.Many2One('ir.module.category', - 'Parent Category', select=1), - 'childs': fields.One2Many('ir.module.category', - 'parent', 'Parent Category'), - } + name = fields.Char("Name", size=128, required=True) + parent = fields.Many2One('ir.module.category', + 'Parent Category', select=1) + childs = fields.One2Many('ir.module.category', + 'parent', 'Parent Category') _order = 'name' Category() diff --git a/trytond/ir/module/module.py b/trytond/ir/module/module.py index 145c9fce0d..9116a22ce0 100644 --- a/trytond/ir/module/module.py +++ b/trytond/ir/module/module.py @@ -126,33 +126,31 @@ class Module(OSV): "Module" _name = "ir.module.module" _description = __doc__ - _columns = { - 'name': fields.Char("Name", size=128, readonly=True, required=True), - 'category': fields.Many2One('ir.module.category', 'Category', - readonly=True), - 'shortdesc': fields.Char('Short description', size=256, readonly=True), - 'description': fields.Text("Description", readonly=True), - 'author': fields.Char("Author", size=128, readonly=True), - 'website': fields.Char("Website", size=256, readonly=True), - 'installed_version': fields.Function('get_installed_version', - string='Installed version', type='char'), - 'latest_version': fields.Char('Latest version', size=64, readonly=True), - 'url': fields.Char('URL', size=128), - 'dependencies': fields.One2Many('ir.module.module.dependency', - 'module', 'Dependencies', readonly=True), - 'state': fields.Selection([ - ('uninstallable', 'Not Installable'), - ('uninstalled', 'Not Installed'), - ('installed', 'Installed'), - ('to upgrade', 'To be upgraded'), - ('to remove', 'To be removed'), - ('to install', 'To be installed'), - ], string='State', readonly=True), - 'demo': fields.Boolean('Demo data'), - 'license': fields.Selection([('GPL-2', 'GPL-2'), - ('Other proprietary', 'Other proprietary')], string='License', - readonly=True), - } + name = fields.Char("Name", size=128, readonly=True, required=True) + category = fields.Many2One('ir.module.category', 'Category', + readonly=True) + shortdesc = fields.Char('Short description', size=256, readonly=True) + description = fields.Text("Description", readonly=True) + author = fields.Char("Author", size=128, readonly=True) + website = fields.Char("Website", size=256, readonly=True) + installed_version = fields.Function('get_installed_version', + string='Installed version', type='char') + latest_version = fields.Char('Latest version', size=64, readonly=True) + url = fields.Char('URL', size=128) + dependencies = fields.One2Many('ir.module.module.dependency', + 'module', 'Dependencies', readonly=True) + state = fields.Selection([ + ('uninstallable', 'Not Installable'), + ('uninstalled', 'Not Installed'), + ('installed', 'Installed'), + ('to upgrade', 'To be upgraded'), + ('to remove', 'To be removed'), + ('to install', 'To be installed'), + ], string='State', readonly=True) + demo = fields.Boolean('Demo data') + license = fields.Selection([('GPL-2', 'GPL-2'), + ('Other proprietary', 'Other proprietary')], string='License', + readonly=True) _defaults = { 'state': lambda *a: 'uninstalled', 'demo': lambda *a: False, @@ -542,23 +540,21 @@ class ModuleDependency(OSV): "Module dependency" _name = "ir.module.module.dependency" _description = __doc__ - _columns = { - 'name': fields.Char('Name', size=128), - 'module': fields.Many2One('ir.module.module', 'Module', select=1, - ondelete='cascade'), - 'state': fields.Function('state', type='selection', - selection=[ - ('uninstallable','Uninstallable'), - ('uninstalled','Not Installed'), - ('installed','Installed'), - ('to upgrade','To be upgraded'), - ('to remove','To be removed'), - ('to install','To be installed'), - ('unknown', 'Unknown'), - ], string='State', readonly=True), - } + name = fields.Char('Name', size=128) + module = fields.Many2One('ir.module.module', 'Module', select=1, + ondelete='cascade') + state = fields.Function('get_state', type='selection', + selection=[ + ('uninstallable','Uninstallable'), + ('uninstalled','Not Installed'), + ('installed','Installed'), + ('to upgrade','To be upgraded'), + ('to remove','To be removed'), + ('to install','To be installed'), + ('unknown', 'Unknown'), + ], string='State', readonly=True) - def state(self, cursor, user, ids, name, args, context=None): + def get_state(self, cursor, user, ids, name, args, context=None): result = {} module_obj = self.pool.get('ir.module.module') for dependency in self.browse(cursor, user, ids): @@ -577,19 +573,15 @@ ModuleDependency() class ModuleUpdateListInit(WizardOSV): _name = 'ir.module.module.update_list.init' - _columns = { - 'repositories': fields.Text('Repositories', readonly=True), - } + repositories = fields.Text('Repositories', readonly=True) ModuleUpdateListInit() class ModuleUpdateListUpdate(WizardOSV): _name = 'ir.module.module.update_list.update' - _columns = { - 'update': fields.Integer('Number of modules updated', readonly=True), - 'add': fields.Integer('Number of modules added', readonly=True), - } + update = fields.Integer('Number of modules updated', readonly=True) + add = fields.Integer('Number of modules added', readonly=True) ModuleUpdateListUpdate() @@ -660,18 +652,14 @@ ModuleUpdateList() class ModuleInstallUpgradeInit(WizardOSV): _name = 'ir.module.module.install_upgrade.init' - _columns = { - 'module_info': fields.Text('Modules to update', readonly=True), - 'module_download': fields.Text('Modules to download', readonly=True), - } + module_info = fields.Text('Modules to update', readonly=True) + module_download = fields.Text('Modules to download', readonly=True) ModuleInstallUpgradeInit() class ModuleInstallUpgradeStart(WizardOSV): _name = 'ir.module.module.install_upgrade.start' - _columns = { - } ModuleInstallUpgradeStart() diff --git a/trytond/ir/module/repository.py b/trytond/ir/module/repository.py index a6b7729d28..8943b1ff46 100644 --- a/trytond/ir/module/repository.py +++ b/trytond/ir/module/repository.py @@ -6,17 +6,15 @@ class Repository(OSV): "Module repository" _name = "ir.module.repository" _description = __doc__ - _columns = { - 'name': fields.Char('Name', size=128), - 'url': fields.Char('Url', size=256, required=True), - 'sequence': fields.Integer('Sequence', required=True), - 'filter': fields.Char('Filter', size=128, required=True, - help='Regexp to search module on the repository webpage:\n' - '- The first parenthesis must match the name of the module.\n' - '- The second parenthesis must match all the version number.\n' - '- The last parenthesis must match the extension of the module.'), - 'active': fields.boolean('Active'), - } + name = fields.Char('Name', size=128) + url = fields.Char('Url', size=256, required=True) + sequence = fields.Integer('Sequence', required=True) + filter = fields.Char('Filter', size=128, required=True, + help='Regexp to search module on the repository webpage:\n' + '- The first parenthesis must match the name of the module.\n' + '- The second parenthesis must match all the version number.\n' + '- The last parenthesis must match the extension of the module.') + active = fields.boolean('Active') _defaults = { 'sequence': lambda *a: 5, 'filter': lambda *a: 'href="([a-zA-Z0-9_]+)-' \ diff --git a/trytond/ir/property.py b/trytond/ir/property.py index e500e97043..0f436654a9 100644 --- a/trytond/ir/property.py +++ b/trytond/ir/property.py @@ -6,13 +6,11 @@ class Property(OSV): "Property" _name = 'ir.property' _description = __doc__ - _columns = { - 'name': fields.Char('Name', size=128), - 'value': fields.Reference('Value', selection='models_get2', size=128), - 'res': fields.Reference('Resource', selection='models_get', size=128), - 'field': fields.Many2One('ir.model.field', 'Field', - ondelete='cascade', required=True) - } + name = fields.Char('Name', size=128) + value = fields.Reference('Value', selection='models_get2', size=128) + res = fields.Reference('Resource', selection='models_get', size=128) + field = fields.Many2One('ir.model.field', 'Field', + ondelete='cascade', required=True) def __init__(self, pool): super(Property, self).__init__(pool) diff --git a/trytond/ir/rule.py b/trytond/ir/rule.py index efec1c3714..8325e2650a 100644 --- a/trytond/ir/rule.py +++ b/trytond/ir/rule.py @@ -8,23 +8,21 @@ class RuleGroup(OSV): "Rule group" _name = 'ir.rule.group' _description = __doc__ - _columns = { - 'name': fields.Char('Name', size=128, select=1), - 'model': fields.Many2One('ir.model', 'Model', select=1, - required=True), - 'global': fields.Boolean('Global', select=1, - help="Make the rule global \n" \ - "or it needs to be put on a group or user"), - 'rules': fields.One2Many('ir.rule', 'rule_group', 'Tests', - help="The rule is satisfied if at least one test is True"), - 'groups': fields.Many2Many('res.group', 'group_rule_group_rel', - 'rule_group_id', 'group_id', 'Groups'), - 'users': fields.Many2Many('res.user', 'user_rule_group_rel', - 'rule_group_id', 'user_id', 'Users'), - } - _order = 'model, global DESC' + name = fields.Char('Name', size=128, select=1) + model = fields.Many2One('ir.model', 'Model', select=1, + required=True) + global_p = fields.Boolean('Global', select=1, + help="Make the rule global \n" \ + "or it needs to be put on a group or user") + rules = fields.One2Many('ir.rule', 'rule_group', 'Tests', + help="The rule is satisfied if at least one test is True") + groups = fields.Many2Many('res.group', 'group_rule_group_rel', + 'rule_group_id', 'group_id', 'Groups') + users = fields.Many2Many('res.user', 'user_rule_group_rel', + 'rule_group_id', 'user_id', 'Users') + _order = 'model, global_p DESC' _defaults = { - 'global': lambda *a: True, + 'global_p': lambda *a: True, } def unlink(self, cursor, user, ids, context=None): @@ -56,22 +54,20 @@ class Rule(OSV): _name = 'ir.rule' _rec_name = 'field' _description = __doc__ - _columns = { - 'field': fields.Many2One('ir.model.field', 'Field', - domain="[('model', '=', parent.model)]", select=1, - required=True), - 'operator':fields.Selection([ - ('=', '='), - ('<>', '<>'), - ('<=', '<='), - ('>=', '>='), - ('in', 'in'), - ('child_of', 'child_of'), - ], 'Operator', required=True), - 'operand':fields.Selection('operand','Operand', size=64, required=True), - 'rule_group': fields.Many2One('ir.rule.group', 'Group', select=2, - required=True, ondelete="cascade") - } + field = fields.Many2One('ir.model.field', 'Field', + domain="[('model', '=', parent.model)]", select=1, + required=True) + operator = fields.Selection([ + ('=', '='), + ('<>', '<>'), + ('<=', '<='), + ('>=', '>='), + ('in', 'in'), + ('child_of', 'child_of'), + ], 'Operator', required=True) + operand = fields.Selection('get_operand','Operand', size=64, required=True) + rule_group = fields.Many2One('ir.rule.group', 'Group', select=2, + required=True, ondelete="cascade") def __init__(self, pool): super(Rule, self).__init__(pool) @@ -120,7 +116,7 @@ class Rule(OSV): return res - def operand(self, cursor, user, context): + def get_operand(self, cursor, user, context): res = [] operands = self._operand_get(cursor, user, 'res.user', level=1, recur=['many2one'], root_tech='user', root='User') @@ -146,7 +142,7 @@ class Rule(OSV): "JOIN res_group_user_rel u_rel " \ "ON (g_rel.group_id = u_rel.gid) " \ "WHERE u_rel.uid = %d) " - "OR g.global)", (model_name, user, user)) + "OR g.global_p)", (model_name, user, user)) ids = [x[0] for x in cursor.fetchall()] if not ids: return '', [] @@ -170,7 +166,7 @@ class Rule(OSV): {'user': self.pool.get('res.user').browse(cursor, 0, user), 'time': time}) - if rule.rule_group['global']: + if rule.rule_group['global_p']: clause_global.setdefault(rule.rule_group.id, []) clause_global[rule.rule_group.id].append( obj._where_calc(cursor, user, dom, active_test=False)) diff --git a/trytond/ir/rule.xml b/trytond/ir/rule.xml index 54a0e46afe..c60159f9ce 100644 --- a/trytond/ir/rule.xml +++ b/trytond/ir/rule.xml @@ -9,8 +9,8 @@