1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
|
# This file is part of Tryton. The COPYRIGHT file at the top level of
# this repository contains the full copyright notices and license terms.
from trytond.pool import Pool, PoolMeta
from trytond.transaction import Transaction
class Line(metaclass=PoolMeta):
__name__ = 'timesheet.line'
@classmethod
def default_work(cls):
pool = Pool()
Work = pool.get('timesheet.work')
try:
default = super().default_work()
except AttributeError:
default = None
project_works = Transaction().context.get('project.work')
if project_works is not None:
works = Work.search([
('origin.id', 'in', project_works, 'project.work'),
])
if len(works) == 1:
default = works[0].id
return default
class Work(metaclass=PoolMeta):
__name__ = 'timesheet.work'
@classmethod
def _get_origin(cls):
return super()._get_origin() + ['project.work']
def _validate_company(self):
pool = Pool()
ProjectWork = pool.get('project.work')
result = super()._validate_company()
if isinstance(self.origin, ProjectWork):
result &= self.company == self.origin.company
return result
|