Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 2 additions & 3 deletions hr_course/models/hr_course_schedule.py
Original file line number Diff line number Diff line change
Expand Up @@ -118,14 +118,13 @@ def inprogress2validation(self):

def validation2complete(self):
for record in self:
if self.course_attendee_ids.filtered(
if record.course_attendee_ids.filtered(
lambda r: r.result == "pending" and r.active
):
raise ValidationError(
_("You cannot complete the course with pending results")
)
else:
record.write(record._validation2complete_values())
record.write(record._validation2complete_values())

def back2draft(self):
for record in self:
Expand Down
28 changes: 28 additions & 0 deletions hr_course/tests/test_hr_course.py
Original file line number Diff line number Diff line change
Expand Up @@ -75,3 +75,31 @@ def test_hr_course_schedule(self):
)
self.course_schedule_id.validation2complete()
self.assertEqual(self.course_schedule_id.state, "completed")

def test_validation2complete_multi_record(self):
self.course_schedule_id.draft2waiting()
self.course_schedule_id.attendant_ids = [(6, 0, [self.employee1.id])]
self.course_schedule_id.waiting2inprogress()
self.course_schedule_id.inprogress2validation()
self.course_schedule_id.all_passed()

course_schedule_2 = self.env["hr.course.schedule"].create(
{
"name": "Convocatory 2",
"course_id": self.course_id.id,
"cost": 100,
"authorized_by": self.employee1.id,
}
)
course_schedule_2.draft2waiting()
course_schedule_2.attendant_ids = [(6, 0, [self.employee2.id])]
course_schedule_2.waiting2inprogress()
course_schedule_2.inprogress2validation()

with self.assertRaises(ValidationError):
(self.course_schedule_id | course_schedule_2).validation2complete()

course_schedule_2.all_passed()
(self.course_schedule_id | course_schedule_2).validation2complete()
self.assertEqual(self.course_schedule_id.state, "completed")
self.assertEqual(course_schedule_2.state, "completed")
3 changes: 2 additions & 1 deletion hr_course/views/hr_course_schedule_views.xml
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,8 @@
<field
name="course_attendee_ids"
widget="one2many_list"
invisible="state not in ['in_validation']"
invisible="state not in ['in_progress','in_validation','completed']"
readonly="state != 'in_validation'"
/>
</page>
<page
Expand Down
Loading