diff --git a/__init__.py b/__init__.py index 2a4c038..7f021a3 100644 --- a/__init__.py +++ b/__init__.py @@ -11,6 +11,7 @@ def register(): Pool.register( ir.Sequence, ir.SequencePeriod, + ir.SequenceStrict, module='ir_sequence_period', type_='model') Pool.register( sale.Sale, diff --git a/ir.py b/ir.py index ef63985..36b1143 100644 --- a/ir.py +++ b/ir.py @@ -3,12 +3,12 @@ from itertools import izip from trytond.model import ModelSQL, ModelView, MatchMixin, fields from trytond.pool import PoolMeta, Pool -from trytond.pyson import Eval, And +from trytond.pyson import Eval, And, Bool from trytond.transaction import Transaction from trytond import backend from sql import Literal, For -__all__ = ['Sequence', 'SequencePeriod'] +__all__ = ['Sequence', 'SequencePeriod', 'SequenceStrict'] sql_sequence = backend.get('Database').has_sequence() @@ -224,3 +224,17 @@ class SequencePeriod(ModelSQL, ModelView, MatchMixin): if not date: return False return self.start_date <= date <= self.end_date + + +class SequenceStrict: + __name__ = 'ir.sequence.strict' + __metaclass__ = PoolMeta + + # needed due to both models share form view + periods = fields.Function( + fields.One2Many('ir.sequence.period', None, 'Periods', + states={'invisible': Bool(True)}), + 'get_periods') + + def get_periods(self, name=None): + return []