user own estimations
This commit is contained in:
parent
9c33507a45
commit
e2d6a8c417
|
|
@ -68,16 +68,16 @@ class projectTask(models.Model):
|
|||
|
||||
return super(projectTask, self).write(vals)
|
||||
|
||||
|
||||
@api.constrains('name')
|
||||
def _check_task_name(self):
|
||||
pattern = r'^[A-Za-z0-9 ]+$' # only letters, numbers, space
|
||||
|
||||
for rec in self:
|
||||
if rec.name and not re.match(pattern, rec.name):
|
||||
raise ValidationError(
|
||||
"Task name can only contain letters, numbers, and spaces."
|
||||
)
|
||||
#
|
||||
# @api.constrains('name')
|
||||
# def _check_task_name(self):
|
||||
# pattern = r'^[A-Za-z0-9 ]+$' # only letters, numbers, space
|
||||
#
|
||||
# for rec in self:
|
||||
# if rec.name and not re.match(pattern, rec.name):
|
||||
# raise ValidationError(
|
||||
# "Task name can only contain letters, numbers, and spaces."
|
||||
# )
|
||||
|
||||
sequence_name = fields.Char("Sequence", copy=False)
|
||||
is_generic = fields.Boolean(string='Generic', default=True, tracking=True,
|
||||
|
|
@ -1495,15 +1495,25 @@ class projectTaskTimelines(models.Model):
|
|||
"project.group_project_manager") or current_user == task.project_id.user_id or current_user == task.responsible_lead or current_user == task.project_id.project_lead:
|
||||
task.has_edit_access = True
|
||||
|
||||
@api.depends("project_id","task_id")
|
||||
@api.depends("project_id", "task_id")
|
||||
def _compute_estimated_time_readonly(self):
|
||||
for task in self:
|
||||
task.estimated_time_readonly = True
|
||||
for record in self:
|
||||
record.estimated_time_readonly = True
|
||||
|
||||
if not (record.project_id and record.task_id):
|
||||
continue
|
||||
|
||||
current_user = self.env.user
|
||||
if task.task_id and task.project_id:
|
||||
is_first_stage = task.task_id.stage_id.sequence == min(task.task_id.project_id.type_ids.mapped('sequence'))
|
||||
if is_first_stage or current_user == task.project_id.user_id:
|
||||
task.estimated_time_readonly = False
|
||||
task = record.task_id
|
||||
project = record.project_id
|
||||
stage_sequences = task.project_id.type_ids.mapped("sequence")
|
||||
is_first_stage = stage_sequences and task.stage_id.sequence == min(stage_sequences)
|
||||
|
||||
is_project_user = current_user == project.user_id
|
||||
is_authorized_user = current_user in [project.user_id, project.project_lead,
|
||||
record.assigned_to, record.responsible_lead]
|
||||
can_edit = (is_first_stage or is_project_user) and is_authorized_user
|
||||
record.estimated_time_readonly = not can_edit
|
||||
|
||||
@api.depends('task_id','task_id.timesheet_ids', 'stage_id')
|
||||
def _compute_actual_time(self):
|
||||
|
|
|
|||
|
|
@ -69,14 +69,14 @@
|
|||
<page string="Assignees Timelines" invisible="not show_approval_flow">
|
||||
<button name="button_update_assignees" type="object" string="Update Assignees" class="oe_highlight"/>
|
||||
<button name="action_assign_approx_deadlines" type="object" string="Assign Approx Timeline" class="oe_highlight"/>
|
||||
<field name="assignees_timelines" context="{'default_task_id': id}" >
|
||||
<field name="assignees_timelines" context="{'default_task_id': id}" options="{'no_open': True}">
|
||||
<list editable="bottom">
|
||||
<field name="stage_id" readonly="not has_edit_access"/>
|
||||
<field name="responsible_lead" readonly="not has_edit_access"/>
|
||||
<field name="team_id" readonly="not has_edit_access"/>
|
||||
<field name="assigned_to" readonly="not has_edit_access"/>
|
||||
<!-- <field name="team_all_member_ids" widget="many2many_tags"/>-->
|
||||
<field name="estimated_time" widget="float_time" readonly="not has_edit_access or estimated_time_readonly"/>
|
||||
<field name="estimated_time" widget="float_time" readonly="estimated_time_readonly"/>
|
||||
<field name="actual_time" readonly="1" optional="hide" widget="float_time"/>
|
||||
<field name="has_edit_access" column_invisible="True" optional="hide" readonly="1"/>
|
||||
<field name="estimated_time_readonly" column_invisible="True" optional="hide" readonly="1"/>
|
||||
|
|
|
|||
Loading…
Reference in New Issue