Skip to content

Commit

Permalink
project_task_scheduling: Use date_start and date_end for scheduling
Browse files Browse the repository at this point in the history
Use existing fields date_start and date_end for scheduling
instead of date_start_assignation and date_stop_assignation
  • Loading branch information
ernestotejeda committed Sep 19, 2018
1 parent 07022bb commit e83e1ce
Show file tree
Hide file tree
Showing 6 changed files with 27 additions and 40 deletions.
14 changes: 4 additions & 10 deletions project_task_assignment/models/project.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,7 @@ class Task(models.Model):
)
employee_id = fields.Many2one(
comodel_name='hr.employee',
string="Employee",
)
date_start_assignation = fields.Datetime(
string="Date start",
)
date_stop_assignation = fields.Datetime(
string="Date stop",
string="Assigned to employee",
)
employee_category_id = fields.Many2one(
comodel_name='hr.employee.category',
Expand All @@ -51,11 +45,11 @@ def _compute_employee_ids(self):
record.employee_ids = emp.ids

@api.multi
@api.depends('employee_id', 'date_start_assignation',
'date_stop_assignation')
@api.depends('employee_id', 'date_start',
'date_end')
def _compute_scheduled(self):
for rec in self:
start, stop = rec.date_start_assignation, rec.date_stop_assignation
start, stop = rec.date_start, rec.date_end
rec.scheduled = rec.employee_id and start and stop

@api.onchange('project_id')
Expand Down
19 changes: 6 additions & 13 deletions project_task_assignment/views/project_view.xml
Original file line number Diff line number Diff line change
Expand Up @@ -22,22 +22,15 @@
<field name="model">project.task</field>
<field name="inherit_id" ref="project.view_task_form2"/>
<field name="arch" type="xml">
<field name="user_id" position="attributes">
<attribute name="string">Assigned to user</attribute>
</field>
<field name="user_id" position="after">
<field name="employee_id"/>
</field>
<field name="tag_ids" position="after">
<field name="employee_category_id"/>
</field>
<xpath expr="//notebook/page[@name='description_page']" position="after">
<page string="Scheduling">
<group>
<group>
<field name="employee_id"/>
</group>
<group>
<field name="date_start_assignation"/>
<field name="date_stop_assignation"/>
</group>
</group>
</page>
</xpath>
</field>
</record>

Expand Down
4 changes: 2 additions & 2 deletions project_task_scheduling/models/project_task_scheduling.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,6 @@ def action_set_assignation(self):
record.task_id.write({
'employee_id': record.employee_id.id,
'user_id': record.employee_id.user_id.id or self.env.user.id,
'date_start_assignation': record.datetime_start,
'date_stop_assignation': record.datetime_stop,
'date_start': record.datetime_start,
'date_end': record.datetime_stop,
})
16 changes: 8 additions & 8 deletions project_task_scheduling/tests/test_scheduling_proposal.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,17 +36,17 @@ def test_action_set_scheduling(self):
proposals[-1].action_set_scheduling()

self.assertTrue(self.task_2.employee_id)
self.assertTrue(self.task_2.date_start_assignation)
self.assertTrue(self.task_2.date_stop_assignation)
self.assertTrue(self.task_2.date_start)
self.assertTrue(self.task_2.date_end)

self.assertTrue(self.task_3.employee_id)
self.assertTrue(self.task_3.date_start_assignation)
self.assertTrue(self.task_3.date_stop_assignation)
self.assertTrue(self.task_3.date_start)
self.assertTrue(self.task_3.date_end)

self.assertTrue(self.task_7.employee_id)
self.assertTrue(self.task_7.date_start_assignation)
self.assertTrue(self.task_7.date_stop_assignation)
self.assertTrue(self.task_7.date_start)
self.assertTrue(self.task_7.date_end)

self.assertTrue(self.task_1.employee_id)
self.assertTrue(self.task_1.date_start_assignation)
self.assertTrue(self.task_1.date_stop_assignation)
self.assertTrue(self.task_1.date_start)
self.assertTrue(self.task_1.date_end)
4 changes: 2 additions & 2 deletions project_task_scheduling/tests/test_scheduling_wizard.py
Original file line number Diff line number Diff line change
Expand Up @@ -77,8 +77,8 @@ def test_get_employees_dict_with_values(self):

assigned_task.write({
'employee_id': self.jth_emp.id,
'date_start_assignation': a_start,
'date_stop_assignation': a_end,
'date_start': a_start,
'date_end': a_end,
})

accum_emp = self.wizard._accum_inter[self.jth_emp.id]
Expand Down
10 changes: 5 additions & 5 deletions project_task_scheduling/wizards/scheduling_wizard.py
Original file line number Diff line number Diff line change
Expand Up @@ -208,11 +208,11 @@ def _get_assigned_tasks(self):
self.ensure_one()
tasks = self.env['project.task']
domain = [
('date_stop_assignation', '>', self.date_start),
('date_end', '>', self.date_start),
('employee_id', 'in', self.employee_ids.ids),
('id', 'not in', self.task_ids.ids),
]
return tasks.search(domain, order='date_stop_assignation')
return tasks.search(domain, order='date_end')

@api.multi
def init_accum_inter(self):
Expand Down Expand Up @@ -458,8 +458,8 @@ def _get_employees_dict(self):
tasks = self._get_assigned_tasks()
for task in tasks:
gaps = employees_dict[task.employee_id.id]
start = fields.Datetime.from_string(task.date_start_assignation)
stop = fields.Datetime.from_string(task.date_stop_assignation)
start = fields.Datetime.from_string(task.date_start)
stop = fields.Datetime.from_string(task.date_end)
data = {'employee': task.employee_id}
to_remove = calendar._interval_new(start, stop, data)
self._gaps_remove_interval(gaps, to_remove)
Expand Down Expand Up @@ -616,7 +616,7 @@ def _greedy_distribution(self, state, init_index=0):
if depend.id in state.tasks_dict:
end_datetime = state.tasks_dict[depend.id].end_datetime
else:
end_datetime = depend.date_stop_assignation
end_datetime = depend.date_end
end_datetime = fields.Datetime.from_string(end_datetime)
if not end_datetime:
not_schedule = True
Expand Down

0 comments on commit e83e1ce

Please sign in to comment.