changeset c5007d98b0ba in trytond:default details: https://hg.tryton.org/trytond?cmd=changeset;node=c5007d98b0ba description: Remove required on icon, action domain and action view sequence
issue7889 review54451002 diffstat: trytond/ir/action.py | 32 +++++++++++++++++++++++--------- trytond/ir/module.py | 15 +++++++-------- trytond/ir/ui/icon.py | 15 +++++++++++---- 3 files changed, 41 insertions(+), 21 deletions(-) diffs (176 lines): diff -r bfef7a2472b2 -r c5007d98b0ba trytond/ir/action.py --- a/trytond/ir/action.py Wed Nov 28 10:05:01 2018 +0100 +++ b/trytond/ir/action.py Thu Nov 29 13:19:47 2018 +0100 @@ -7,7 +7,9 @@ from sql import Null -from ..model import ModelView, ModelStorage, ModelSQL, DeactivableMixin, fields +from ..model import ( + ModelView, ModelStorage, ModelSQL, DeactivableMixin, fields, + sequence_ordered) from ..tools import file_open from ..pyson import PYSONDecoder, PYSON, Eval from ..transaction import Transaction @@ -861,19 +863,23 @@ return Action.get_action_values(cls.__name__, [action_id])[0] -class ActionActWindowView(DeactivableMixin, ModelSQL, ModelView): +class ActionActWindowView( + sequence_ordered(), DeactivableMixin, ModelSQL, ModelView): "Action act window view" __name__ = 'ir.action.act_window.view' - sequence = fields.Integer('Sequence', required=True) view = fields.Many2One('ir.ui.view', 'View', required=True, ondelete='CASCADE') act_window = fields.Many2One('ir.action.act_window', 'Action', ondelete='CASCADE') @classmethod - def __setup__(cls): - super(ActionActWindowView, cls).__setup__() - cls._order.insert(0, ('sequence', 'ASC')) + def __register__(cls, module_name): + super().__register__(module_name) + + table = cls.__table_handler__(module_name) + + # Migration from 5.0: remove required on sequence + table.not_null_action('sequence', 'remove') @classmethod def create(cls, vlist): @@ -895,11 +901,11 @@ pool.get('ir.action.keyword')._get_keyword_cache.clear() -class ActionActWindowDomain(DeactivableMixin, ModelSQL, ModelView): +class ActionActWindowDomain( + sequence_ordered(), DeactivableMixin, ModelSQL, ModelView): "Action act window domain" __name__ = 'ir.action.act_window.domain' name = fields.Char('Name', translate=True) - sequence = fields.Integer('Sequence', required=True) domain = fields.Char('Domain') count = fields.Boolean('Count') act_window = fields.Many2One('ir.action.act_window', 'Action', @@ -908,13 +914,21 @@ @classmethod def __setup__(cls): super(ActionActWindowDomain, cls).__setup__() - cls._order.insert(0, ('sequence', 'ASC')) cls._error_messages.update({ 'invalid_domain': ('Invalid domain or search criteria ' '"%(domain)s" on action "%(action)s".'), }) @classmethod + def __register__(cls, module_name): + super().__register__(module_name) + + table = cls.__table_handler__(module_name) + + # Migration from 5.0: remove required on sequence + table.not_null_action('sequence', 'remove') + + @classmethod def default_count(cls): return False diff -r bfef7a2472b2 -r c5007d98b0ba trytond/ir/module.py --- a/trytond/ir/module.py Wed Nov 28 10:05:01 2018 +0100 +++ b/trytond/ir/module.py Thu Nov 29 13:19:47 2018 +0100 @@ -5,7 +5,7 @@ from sql.operators import NotIn -from trytond.model import ModelView, ModelSQL, fields, Unique +from trytond.model import ModelView, ModelSQL, fields, Unique, sequence_ordered from trytond.modules import get_module_list, get_module_info from trytond.wizard import Wizard, StateView, Button, StateTransition, \ StateAction @@ -381,23 +381,17 @@ return 'unknown' -class ModuleConfigWizardItem(ModelSQL, ModelView): +class ModuleConfigWizardItem(sequence_ordered(), ModelSQL, ModelView): "Config wizard to run after activating a module" __name__ = 'ir.module.config_wizard.item' action = fields.Many2One('ir.action', 'Action', required=True, readonly=True) - sequence = fields.Integer('Sequence', required=True) state = fields.Selection([ ('open', 'Open'), ('done', 'Done'), ], string='State', required=True, select=True) @classmethod - def __setup__(cls): - super(ModuleConfigWizardItem, cls).__setup__() - cls._order.insert(0, ('sequence', 'ASC')) - - @classmethod def __register__(cls, module_name): TableHandler = backend.get('TableHandler') cursor = Transaction().connection.cursor() @@ -417,6 +411,11 @@ super(ModuleConfigWizardItem, cls).__register__(module_name) + table = cls.__table_handler__(module_name) + + # Migration from 5.0: remove required on sequence + table.not_null_action('sequence', 'remove') + @staticmethod def default_state(): return 'open' diff -r bfef7a2472b2 -r c5007d98b0ba trytond/ir/ui/icon.py --- a/trytond/ir/ui/icon.py Wed Nov 28 10:05:01 2018 +0100 +++ b/trytond/ir/ui/icon.py Thu Nov 29 13:19:47 2018 +0100 @@ -3,7 +3,7 @@ import os -from trytond.model import ModelView, ModelSQL, fields +from trytond.model import ModelView, ModelSQL, fields, sequence_ordered from trytond.tools import file_open from trytond.transaction import Transaction from trytond.rpc import RPC @@ -13,7 +13,7 @@ ] -class Icon(ModelSQL, ModelView): +class Icon(sequence_ordered(), ModelSQL, ModelView): 'Icon' __name__ = 'ir.ui.icon' @@ -21,16 +21,23 @@ module = fields.Char('Module', readonly=True, required=True) path = fields.Char('SVG Path', readonly=True, required=True) icon = fields.Function(fields.Char('Icon', depends=['path']), 'get_icon') - sequence = fields.Integer('Sequence', required=True) @classmethod def __setup__(cls): super(Icon, cls).__setup__() - cls._order.insert(0, ('sequence', 'ASC')) cls.__rpc__.update({ 'list_icons': RPC(), }) + @classmethod + def __register__(cls, module_name): + super().__register__(module_name) + + table = cls.__table_handler__(module_name) + + # Migration from 5.0: remove required on sequence + table.not_null_action('sequence', 'remove') + @staticmethod def default_module(): return Transaction().context.get('module') or ''