cashbook/configuration.py
2022-08-09 15:08:41 +02:00

79 lines
2.5 KiB
Python

# -*- coding: utf-8 -*-
# This file is part of the cashbook-module from m-ds for Tryton.
# The COPYRIGHT file at the top level of this repository contains the
# full copyright notices and license terms.
from trytond.model import ModelSingleton, ModelView, ModelSQL, Workflow, fields, Check
from .model import UserMultiValueMixin, UserValueMixin
from trytond.pyson import Eval, If
from trytond.pool import Pool
class Configuration(ModelSingleton, ModelSQL, ModelView, UserMultiValueMixin):
'Configuration'
__name__ = 'cashbook.configuration'
date_from = fields.MultiValue(fields.Date(string='Start Date', depends=['date_to'],
domain=[
If(Eval('date_to') & Eval('date_from'),
('date_from', '<=', Eval('date_to')),
()),
]))
date_to = fields.MultiValue(fields.Date(string='End Date', depends=['date_from'],
domain=[
If(Eval('date_to') & Eval('date_from'),
('date_from', '<=', Eval('date_to')),
()),
]))
checked = fields.MultiValue(fields.Boolean(string='Checked'))
done = fields.MultiValue(fields.Boolean(string='Done'))
@classmethod
def multivalue_model(cls, field):
""" get model for value
"""
pool = Pool()
if field in ['date_from', 'date_to', 'checked', 'done']:
return pool.get('cashbook.configuration_user')
return super(Configuration, cls).multivalue_model(field)
@classmethod
def default_checked(cls, **pattern):
return cls.multivalue_model('checked').default_checked()
@classmethod
def default_done(cls, **pattern):
return cls.multivalue_model('done').default_done()
# end Configuration
class UserConfiguration(ModelSQL, UserValueMixin):
'User Configuration'
__name__ = 'cashbook.configuration_user'
date_from = fields.Date(string='Start Date', depends=['date_to'],
domain=[
If(Eval('date_to') & Eval('date_from'),
('date_from', '<=', Eval('date_to')),
()),
])
date_to = fields.Date(string='End Date', depends=['date_from'],
domain=[
If(Eval('date_to') & Eval('date_from'),
('date_from', '<=', Eval('date_to')),
()),
])
checked = fields.Boolean(string='Checked')
done = fields.Boolean(string='Done')
@classmethod
def default_checked(cls):
return True
@classmethod
def default_done(cls):
return False
# end UserConfiguration