Merge branch 'cor_cr' into 'master'

Cor cr

See merge request prakash.jain/cor-odoo!259
This commit is contained in:
pawan.sharma 2022-10-10 11:37:30 +05:30
commit 1a778e84c6
2 changed files with 95 additions and 63 deletions

View File

@ -27,8 +27,9 @@ class AccountAnalyticLine(models.Model):
def _domain_project_id(self):
today = fields.Date.today()
#domain = [('allow_timesheets', '=', True), ('is_sub_project', '=', False)]
domain = [('allow_timesheets', '=', True), ('is_sub_project', '=', False),('date', '>=', today),('date_start', '<=', today)]
# domain = [('allow_timesheets', '=', True), ('is_sub_project', '=', False)]
domain = [('allow_timesheets', '=', True), ('is_sub_project', '=', False), ('date', '>=', today),
('date_start', '<=', today)]
if not self.user_has_groups('hr_timesheet.group_timesheet_manager'):
return expression.AND([domain,
['|', ('privacy_visibility', '!=', 'followers'),
@ -42,7 +43,6 @@ class AccountAnalyticLine(models.Model):
result['employee_id'] = self.env['hr.employee'].search([('user_id', '=', self.env.user.id)], limit=1).id
return result
project_id = fields.Many2one('project.project', 'Project', compute='_compute_project_id', store=True,
readonly=False,
domain=_domain_project_id)
@ -57,7 +57,7 @@ class AccountAnalyticLine(models.Model):
string='Sub Project')
active_project = fields.Boolean(related='project_id.active', store=True)
pricing_type = fields.Selection(related='project_id.pricing_type', store=True)
project_type= fields.Selection(related='project_id.project_type', store=True)
project_type = fields.Selection(related='project_id.project_type', store=True)
@api.onchange('project_id')
def _onchange_sub_project_id(self):
@ -84,25 +84,34 @@ class AccountAnalyticLine(models.Model):
if self.employee_id and self.employee_id.user_id and self.employee_id.user_id.id in project_manager_grp:
all_projects = self.env['project.project'].search([('allow_timesheets', '=', True),
('is_sub_project', '=', False),
('date', '>=', today),('date_start', '<=', today)]).ids
('date', '>=', today), ('date_start', '<=', today)]).ids
domain = [('id', 'in', all_projects)]
else:
if self.employee_id and self.employee_id.user_id and self.employee_id.user_id.id in project_user_grp:
manager_id = self.env['project.project'].search(
[('user_id', '=', self.employee_id.user_id.id), ('allow_timesheets', '=', True),
('date', '>=', today),('date_start', '<=', today),
('is_sub_project', '=', False)]).ids
('is_sub_project', '=', False),('pricing_type', '=', 'fixed_rate')]).ids
emp_project_ids = self.env['project.project'].search(
[('privacy_visibility', 'in', ('employees', 'portal')), ('allow_timesheets', '=', True),
('date', '>=', today),('date_start', '<=', today),
('is_sub_project', '=', False)]).ids
('is_sub_project', '=', False),('pricing_type', '=', 'fixed_rate')]).ids
project_ids = self.env['project.project'].search(
[('privacy_visibility', '=', 'followers'), ('allow_timesheets', '=', True),
('date', '>=', today),('date_start', '<=', today),
('is_sub_project', '=', False),
('allowed_internal_user_ids', 'in', self.employee_id.user_id.id)]).ids
consul_ids = self.env['project.sale.line.employee.map'].search([('employee_id', '=', self.employee_id.id)])
consul_project_ids = [val.project_id.id for val in consul_ids]
('allowed_internal_user_ids', 'in', self.employee_id.user_id.id),('pricing_type', '=', 'fixed_rate')]).ids
consul_ids = self.env['project.sale.line.employee.map'].search(
[('employee_id', '=', self.employee_id.id)])
consul_project_ids = []
for rec in consul_ids:
if rec.project_id.pricing_type != 'fixed_rate' and rec.project_id.allow_timesheets == True and rec.project_id.is_sub_project == False:
if rec.start_date and rec.end_date:
if rec.start_date <= today <= rec.end_date:
consul_project_ids.append(rec.project_id.id)
elif rec.start_date:
if rec.start_date <= today:
consul_project_ids.append(rec.project_id.id)
emp_all_project_ids = manager_id + emp_project_ids + project_ids + consul_project_ids
domain = [('id', 'in', list(set(emp_all_project_ids)))]
result = {
@ -185,7 +194,6 @@ class AccountAnalyticLine(models.Model):
raise ValidationError(_("End time cannot be earlier than Start time"))
self.unit_amount = res"""
# @api.onchange('start_time', 'end_time')
# def _onchange_start_end_time(self):
# if self.start_time > 0:

View File

@ -1,24 +1,46 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<function name="write" model="ir.model.data">
<function name="search" model="ir.model.data">
<value eval="[('module','=','project'),('name','=','project_public_members_rule')]"/>
</function>
<value eval="{'noupdate': False}"/>
</function>
<!-- Overide Project user group record rule-->
<record model="ir.rule" id="project.project_public_members_rule">
<field name="name">Project: Only invited users</field>
<field name="model_id" ref="model_project_project"/>
<field name="domain_force">[
'|', '|',
('privacy_visibility', '!=', 'followers'),
('allowed_internal_user_ids', 'in', user.ids),
('sale_line_employee_ids.employee_id.user_id', 'in', user.ids),
]
</field>
<field name="groups" eval="[(4, ref('base.group_user'))]"/>
</record>
<!-- -->
<!-- Note using code overriding menu in code (not working) so these below features will add using ODOO UI -->
<!--<record id="group_show_hr_discuss_group" model="res.groups">
<field name="name">Show Discuss Menu</field>
<field name="comment">Show Discuss Menu related user group</field>
</record>
<!--<record id="group_show_hr_discuss_group" model="res.groups">
<field name="name">Show Discuss Menu</field>
<field name="comment">Show Discuss Menu related user group</field>
</record>
<record id="group_show_hr_contact_group" model="res.groups">
<field name="name">Show Contact Menu</field>
<field name="comment">Show Contact Menu related user group</field>
<field name="users" eval="[(4, ref('base.user_root')), (4, ref('base.user_admin'))]"/>
</record>
<record id="group_show_hr_contact_group" model="res.groups">
<field name="name">Show Contact Menu</field>
<field name="comment">Show Contact Menu related user group</field>
<field name="users" eval="[(4, ref('base.user_root')), (4, ref('base.user_admin'))]"/>
</record>
<record id="group_show_hr_menu_group" model="res.groups">
<field name="name">Show HR Menu</field>
<field name="comment">Show HR Menu related user group</field>
<field name="users" eval="[(4, ref('base.user_root')), (4, ref('base.user_admin'))]"/>
</record>-->
<record id="group_show_hr_menu_group" model="res.groups">
<field name="name">Show HR Menu</field>
<field name="comment">Show HR Menu related user group</field>
<field name="users" eval="[(4, ref('base.user_root')), (4, ref('base.user_admin'))]"/>
</record>-->
<!--<record id="project.group_project_manager" model="res.groups">
<field name="name">Manager</field>
@ -27,19 +49,19 @@
<field name="users" eval="[(4, ref('base.user_root')), (4, ref('base.user_admin'))]"/>
</record>-->
<!-- <record id="group_project_cor_admin" model="res.groups">
<field name="name">Cor Custom</field>
<field name="category_id" ref="base.module_category_services_project"/>
<field name="implied_ids" eval="[(4, ref('project.group_project_manager'))]"/>
<field name="users" eval="[(4, ref('base.user_root')), (4, ref('base.user_admin'))]"/>
</record> -->
<!-- <record id="group_project_cor_admin" model="res.groups">
<field name="name">Cor Custom</field>
<field name="category_id" ref="base.module_category_services_project"/>
<field name="implied_ids" eval="[(4, ref('project.group_project_manager'))]"/>
<field name="users" eval="[(4, ref('base.user_root')), (4, ref('base.user_admin'))]"/>
</record> -->
<function name="write" model="ir.model.data">
<function name="search" model="ir.model.data">
<value eval="[('module','=','hr_timesheet'),('name','=','timesheet_line_rule_user')]"/>
</function>
<value eval="{'noupdate': False}" />
<value eval="{'noupdate': False}"/>
</function>
@ -50,12 +72,13 @@
('user_id', '=', user.id),
('project_id', '!=', False),
'|', '|','|',
('project_id.privacy_visibility', '!=', 'followers'),
('project_id.allowed_internal_user_ids', 'in', user.ids),
('task_id.allowed_user_ids', 'in', user.ids),
('project_id.sale_line_employee_ids.employee_id.user_id', 'in', user.ids),
('project_id.privacy_visibility', '!=', 'followers'),
('project_id.allowed_internal_user_ids', 'in', user.ids),
('task_id.allowed_user_ids', 'in', user.ids),
('project_id.sale_line_employee_ids.employee_id.user_id', 'in', user.ids),
]</field>
]
</field>
<field name="groups" eval="[(4, ref('hr_timesheet.group_hr_timesheet_user'))]"/>
</record>
@ -64,20 +87,21 @@
<function name="search" model="ir.model.data">
<value eval="[('module','=','hr_timesheet'),('name','=','timesheet_line_rule_approver')]"/>
</function>
<value eval="{'noupdate': False}" />
<value eval="{'noupdate': False}"/>
</function>
<record id="hr_timesheet.timesheet_line_rule_approver" model="ir.rule">
<field name="name">account.analytic.line.timesheet.approver</field>
<field name="model_id" ref="analytic.model_account_analytic_line" />
<field name="model_id" ref="analytic.model_account_analytic_line"/>
<field name="domain_force">[
('project_id', '!=', False),
'|','|',
('project_id.privacy_visibility', '!=', 'followers'),
('project_id.allowed_internal_user_ids', 'in', user.ids),
('project_id.sale_line_employee_ids.employee_id.user_id', 'in', user.ids),
]</field>
<field name="groups" eval="[(4, ref('hr_timesheet.group_hr_timesheet_approver'))]" />
('project_id.privacy_visibility', '!=', 'followers'),
('project_id.allowed_internal_user_ids', 'in', user.ids),
('project_id.sale_line_employee_ids.employee_id.user_id', 'in', user.ids),
]
</field>
<field name="groups" eval="[(4, ref('hr_timesheet.group_hr_timesheet_approver'))]"/>
</record>
<!-- <function name="write" model="ir.model.data">
@ -109,19 +133,19 @@
<field name="groups" eval="[(4,ref('project.group_project_manager'))]"/>
</record> -->
<!-- <record model="ir.rule" id="project_project_all_admin_rule">
<field name="name">Project: project manager: see all</field>
<field name="model_id" ref="model_project_project"/>
<field name="domain_force">[(1, '=', 1)]</field>
<field name="groups" eval="[(4,ref('group_project_cor_admin'))]"/>
</record>
<!-- <record model="ir.rule" id="project_project_all_admin_rule">
<field name="name">Project: project manager: see all</field>
<field name="model_id" ref="model_project_project"/>
<field name="domain_force">[(1, '=', 1)]</field>
<field name="groups" eval="[(4,ref('group_project_cor_admin'))]"/>
</record>
<record model="ir.rule" id="project_project_all_project_tasks_admin_rule">
<field name="name">Project/Task: project manager: see all</field>
<field name="model_id" ref="model_project_task"/>
<field name="domain_force">[(1, '=', 1)]</field>
<field name="groups" eval="[(4,ref('group_project_cor_admin'))]"/>
</record> -->
<record model="ir.rule" id="project_project_all_project_tasks_admin_rule">
<field name="name">Project/Task: project manager: see all</field>
<field name="model_id" ref="model_project_task"/>
<field name="domain_force">[(1, '=', 1)]</field>
<field name="groups" eval="[(4,ref('group_project_cor_admin'))]"/>
</record> -->
<record model="ir.rule" id="project_view_consultant_user_own_rule">
<field name="name">Project: view Consultant: Own User</field>
@ -137,12 +161,12 @@
<field name="groups" eval="[(4,ref('project.group_project_manager'))]"/>
</record>
<!-- [('project_id.user_id','=',user.id)]
<record model="ir.rule" id="project_view_consultant_admin_rrule">
<field name="name">Project: view Consultant: all User</field>
<field name="model_id" ref="model_project_consultant_hrs_report"/>
<field name="domain_force">[(1,'=',1)]</field>
<field name="groups" eval="[(4,ref('group_project_cor_admin'))]"/>
</record>-->
<!-- [('project_id.user_id','=',user.id)]
<record model="ir.rule" id="project_view_consultant_admin_rrule">
<field name="name">Project: view Consultant: all User</field>
<field name="model_id" ref="model_project_consultant_hrs_report"/>
<field name="domain_force">[(1,'=',1)]</field>
<field name="groups" eval="[(4,ref('group_project_cor_admin'))]"/>
</record>-->
</odoo>