first commit
This commit is contained in:
41
modules/project/timesheet.py
Normal file
41
modules/project/timesheet.py
Normal file
@@ -0,0 +1,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
|
||||
Reference in New Issue
Block a user