From c00adbaa7f2c1a8a6bebef0c13257d4ef328aabe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Mon, 14 May 2012 15:36:13 +0200 Subject: [PATCH] Remove required on sequence review348001 --- account.py | 29 ++++++++++++++++++++++++++--- journal.py | 13 ++++++++++++- tax.py | 42 +++++++++++++++++++++++++++++++++++++----- 3 files changed, 75 insertions(+), 9 deletions(-) diff --git a/account.py b/account.py index eaca01ef35..b8e469497b 100644 --- a/account.py +++ b/account.py @@ -12,6 +12,7 @@ from trytond.pyson import Eval, PYSONEncoder, Date from trytond.transaction import Transaction from trytond.pool import Pool from trytond.config import CONFIG +from trytond.backend import TableHandler class TypeTemplate(ModelSQL, ModelView): @@ -23,7 +24,9 @@ class TypeTemplate(ModelSQL, ModelView): ondelete="RESTRICT") childs = fields.One2Many('account.account.type.template', 'parent', 'Children') - sequence = fields.Integer('Sequence', required=True) + sequence = fields.Integer('Sequence', + order_field='(%(table)s.sequence IS NULL) %(order)s, ' + '%(table)s.sequence %(order)s') balance_sheet = fields.Boolean('Balance Sheet') income_statement = fields.Boolean('Income Statement') display_balance = fields.Selection([ @@ -41,6 +44,15 @@ class TypeTemplate(ModelSQL, ModelView): }) self._order.insert(0, ('sequence', 'ASC')) + def init(self, module_name): + cursor = Transaction().cursor + table = TableHandler(cursor, self, module_name) + + super(TypeTemplate, self).init(module_name) + + # Migration from 2.4: drop required on sequence + table.not_null_action('sequence', action='remove') + def default_balance_sheet(self): return False @@ -162,8 +174,10 @@ class Type(ModelSQL, ModelView): domain=[ ('company', '=', Eval('company')), ], depends=['company']) - sequence = fields.Integer('Sequence', required=True, - help='Use to order the account type') + sequence = fields.Integer('Sequence', + order_field='(%(table)s.sequence IS NULL) %(order)s, ' + '%(table)s.sequence %(order)s', + help='Use to order the account type') currency_digits = fields.Function(fields.Integer('Currency Digits'), 'get_currency_digits') amount = fields.Function(fields.Numeric('Amount', @@ -189,6 +203,15 @@ class Type(ModelSQL, ModelView): }) self._order.insert(0, ('sequence', 'ASC')) + def init(self, module_name): + cursor = Transaction().cursor + table = TableHandler(cursor, self, module_name) + + super(Type, self).init(module_name) + + # Migration from 2.4: drop required on sequence + table.not_null_action('sequence', action='remove') + def default_balance_sheet(self): return False diff --git a/journal.py b/journal.py index 57ff511631..4de4339dcb 100644 --- a/journal.py +++ b/journal.py @@ -57,7 +57,9 @@ class Column(ModelSQL, ModelView): field = fields.Many2One('ir.model.field', 'Field', required=True, domain=[('model.model', '=', 'account.move.line')]) view = fields.Many2One('account.journal.view', 'View', select=True) - sequence = fields.Integer('Sequence', select=True, required=True) + sequence = fields.Integer('Sequence', select=True, + order_field='(%(table)s.sequence IS NULL) %(order)s, ' + '%(table)s.sequence %(order)s') required = fields.Boolean('Required') readonly = fields.Boolean('Readonly') @@ -65,6 +67,15 @@ class Column(ModelSQL, ModelView): super(Column, self).__init__() self._order.insert(0, ('sequence', 'ASC')) + def init(self, module_name): + cursor = Transaction().cursor + table = TableHandler(cursor, self, module_name) + + super(Column, self).init(module_name) + + # Migration from 2.4: drop required on sequence + table.not_null_action('sequence', action='remove') + def default_required(self): return False diff --git a/tax.py b/tax.py index 8bd1f88bf7..1697430387 100644 --- a/tax.py +++ b/tax.py @@ -363,7 +363,9 @@ class TaxTemplate(ModelSQL, ModelView): name = fields.Char('Name', required=True, translate=True) description = fields.Char('Description', required=True, translate=True) group = fields.Many2One('account.tax.group', 'Group') - sequence = fields.Integer('Sequence', required=True) + sequence = fields.Integer('Sequence', + order_field='(%(table)s.sequence IS NULL) %(order)s, ' + '%(table)s.sequence %(order)s') amount = fields.Numeric('Amount', digits=(16, 8)) percentage = fields.Numeric('Percentage', digits=(16, 8)) type = fields.Selection([ @@ -407,6 +409,9 @@ class TaxTemplate(ModelSQL, ModelView): # Migration from 1.0 group is no more required table.not_null_action('group', action='remove') + #Migration from 2.4: drop required on sequence + table.not_null_action('sequence', action='remove') + def default_type(self): return 'percentage' @@ -565,8 +570,10 @@ class Tax(ModelSQL, ModelView): 'invisible': Bool(Eval('parent')), }, depends=['parent']) active = fields.Boolean('Active') - sequence = fields.Integer('Sequence', required=True, - help='Use to order the taxes') + sequence = fields.Integer('Sequence', + order_field='(%(table)s.sequence IS NULL) %(order)s, ' + '%(table)s.sequence %(order)s', + help='Use to order the taxes') currency_digits = fields.Function(fields.Integer('Currency Digits', on_change_with=['company']), 'get_currency_digits') amount = fields.Numeric('Amount', digits=(16, Eval('currency_digits', 2)), @@ -671,6 +678,9 @@ class Tax(ModelSQL, ModelView): # Migration from 1.0 group is no more required table.not_null_action('group', action='remove') + # Migration from 2.4: drop required on sequence + table.not_null_action('sequence', action='remove') + def default_active(self): return True @@ -1109,13 +1119,24 @@ class RuleLineTemplate(ModelSQL, ModelView): ('group', '=', Eval('group')), ], depends=['group']) - sequence = fields.Integer('Sequence', required=True) + sequence = fields.Integer('Sequence', + order_field='(%(table)s.sequence IS NULL) %(order)s, ' + '%(table)s.sequence %(order)s') def __init__(self): super(RuleLineTemplate, self).__init__() self._order.insert(0, ('rule', 'ASC')) self._order.insert(0, ('sequence', 'ASC')) + def init(self, module_name): + cursor = Transaction().cursor + table = TableHandler(cursor, self, module_name) + + super(RuleLineTemplate, self).init(module_name) + + # Migration from 2.4: drop required on sequence + table.not_null_action('sequence', action='remove') + def _get_tax_rule_line_value(self, template, rule_line=None): ''' Set values for tax rule line creation. @@ -1204,7 +1225,9 @@ class RuleLine(ModelSQL, ModelView): ('group', '=', Eval('group')), ], depends=['group']) - sequence = fields.Integer('Sequence', required=True) + sequence = fields.Integer('Sequence', + order_field='(%(table)s.sequence IS NULL) %(order)s, ' + '%(table)s.sequence %(order)s') template = fields.Many2One('account.tax.rule.line.template', 'Template') def __init__(self): @@ -1212,6 +1235,15 @@ class RuleLine(ModelSQL, ModelView): self._order.insert(0, ('rule', 'ASC')) self._order.insert(0, ('sequence', 'ASC')) + def init(self, module_name): + cursor = Transaction().cursor + table = TableHandler(cursor, self, module_name) + + super(RuleLine, self).init(module_name) + + # Migration from 2.4: drop required on sequence + table.not_null_action('sequence', action='remove') + def match(self, line, pattern): ''' Match line on pattern