# 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