diff --git a/cor_custom/models/analytic.py b/cor_custom/models/analytic.py index 9b31467..b22397e 100755 --- a/cor_custom/models/analytic.py +++ b/cor_custom/models/analytic.py @@ -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 = [] diff --git a/cor_custom/views/analytic_view.xml b/cor_custom/views/analytic_view.xml index acdac25..56e4a08 100755 --- a/cor_custom/views/analytic_view.xml +++ b/cor_custom/views/analytic_view.xml @@ -67,7 +67,7 @@ - +