Odoo Mindscape. Understand Odoo faster. Explore modules, fields, dependencies and version differences in one place instead of digging through the source code.

Module: Field Service - Skills

Entity: fsm.order

Compute Method: _compute_skill_workers

Inputs Method Outputs
worker_ids = []
req_skills = self.skill_ids.ids
if not self.skill_ids:
            worker_ids = self.env["fsm.person"].search([]).ids
        else:
            FPS = self.env["fsm.person.skill"]
            potential_workers = FPS.search(
                [("skill_id", "in", self.skill_ids.ids)]
            ).mapped("person_id")
            for w in potential_workers:
                worker_skills = FPS.search([("person_id", "=", w.id)]).mapped(
                    "skill_id"
                )
                if set(worker_skills.ids) >= set(req_skills):
                    worker_ids.append(w.id)
self.skill_worker_ids = [Command.set(worker_ids)]

Back to entity