add filter in timesheet project

This commit is contained in:
Pawan Kumar 2021-03-09 12:06:07 +05:30
parent cc70afeb4b
commit 343a70922c
2 changed files with 13 additions and 27 deletions

View File

@ -14,28 +14,26 @@ import dateutil.parser
class AccountAnalyticLine(models.Model):
_inherit = 'account.analytic.line'
def _domain_project_id(self):
domain = [('allow_timesheets', '=', True),('is_sub_project', '=', False)]
if not self.user_has_groups('hr_timesheet.group_timesheet_manager'):
return expression.AND([domain,
['|', ('privacy_visibility', '!=', 'followers'), ('allowed_internal_user_ids', 'in', self.env.user.ids)]
])
return domain
project_id = fields.Many2one(
'project.project', 'Project', compute='_compute_project_id', store=True, readonly=False,
domain=_domain_project_id)
start_time = fields.Float(string='Start Time', digits=(16, 2))
end_time = fields.Float(string='End Time', digits=(16, 2))
start_datetime = fields.Datetime("Start Time", required=True)
end_datetime = fields.Datetime("End Time", required=True)
unit_amount = fields.Float('Duration', default=0.0)
parent_project = fields.Many2one('project.project', related='project_id.parent_project', string='Parent Project')
sub_project = fields.Many2many('project.project', 'project_subproject_timesheet_rel', 'project_id', 'id',
domain="[('is_sub_project', '=', True)]",
sub_project = fields.Many2one('project.project', domain="[('is_sub_project', '=', True)]",
string='Sub Project')
# @api.onchange('employee_id')
# def onchange_employee_id(self):
# res = {}
# emp_ids = [emp.employee_id.id for emp in self.project_id.sale_line_employee_ids]
# res['domain'] = {'employee_id': [('id', 'in', emp_ids)]}
# if 'project_id' in self.env.context:
# # if not self.env.context['project_id']:
# # raise UserError(_('Please save record before add a line'))
# if not emp_ids:
# raise UserError(_('Please add consultant at Invoicing tab before add a line'))
# res['domain'] = {'employee_id': [('id', 'in', emp_ids)]}
# return res
@api.onchange('project_id')
def _onchange_sub_project_id(self):
@ -54,18 +52,6 @@ class AccountAnalyticLine(models.Model):
return fields.Datetime.to_string(datetime.combine(fields.Datetime.now(), datetime.max.time()))
# @api.onchange('project_id')
# def _onchange_parent_project_id(self):
# if self.project_id:
# parent_project = self.env['project.project'].search([('sub_project', '=', self.project_id.id)], limit=1)
# if parent_project:
# self.parent_project = parent_project.id
# else:
# self.parent_project = False
# else:
# self.parent_project = False
@api.onchange('employee_id')
def _onchange_employee_id(self):
domain = []

View File

@ -67,7 +67,7 @@
<field name="employee_id" invisible="1"/>
<field name="project_id" required="1" options="{'no_create_edit': True}"
context="{'form_view_ref': 'project.project_project_view_form_simplified',}"/>
<field name="sub_project" widget="many2many_tags" options="{'no_open': True, 'no_create': True, 'no_create_edit': True}"/>
<field name="sub_project" options="{'no_open': True, 'no_create': True, 'no_create_edit': True}"/>
<field name="task_id" optional="show" options="{'no_create_edit': True, 'no_open': True}"
widget="task_with_hours" context="{'default_project_id': project_id}"
domain="[('project_id', '=', project_id)]"/>