diff --git a/fieldservice_crm/README.rst b/fieldservice_crm/README.rst index a55473a68a..c0772ea5c6 100644 --- a/fieldservice_crm/README.rst +++ b/fieldservice_crm/README.rst @@ -57,8 +57,9 @@ Usage - User must have Field Service User permissions - Go to CRM app - Create a new Opportunity -- Click the FS Orders Smart Button -- Create a Field Service Order +- Click the **Create FSM Order** button in the header to open a + pre-filled order form, or click the **FS Orders** smart button to + manage existing orders Known issues / Roadmap ====================== diff --git a/fieldservice_crm/models/crm_lead.py b/fieldservice_crm/models/crm_lead.py index 181dcb0c37..3a51a8e3f6 100644 --- a/fieldservice_crm/models/crm_lead.py +++ b/fieldservice_crm/models/crm_lead.py @@ -18,3 +18,18 @@ class Lead(models.Model): def _compute_fsm_order_count(self): for rec in self: rec.fsm_order_count = len(rec.fsm_order_ids) + + def action_create_fsm_order(self): + self.ensure_one() + action = self.env["ir.actions.actions"]._for_xml_id( + "fieldservice.action_fsm_operation_order" + ) + action["context"] = { + "default_opportunity_id": self.id, + "default_location_id": self.fsm_location_id.id, + "default_description": self.description, + "default_priority": self.priority, + } + view = self.env.ref("fieldservice.fsm_order_form", raise_if_not_found=False) + action["views"] = [(view and view.id or False, "form")] + return action diff --git a/fieldservice_crm/readme/USAGE.md b/fieldservice_crm/readme/USAGE.md index ce337dd0c5..4945f42d29 100644 --- a/fieldservice_crm/readme/USAGE.md +++ b/fieldservice_crm/readme/USAGE.md @@ -1,5 +1,5 @@ - User must have Field Service User permissions - Go to CRM app - Create a new Opportunity -- Click the FS Orders Smart Button -- Create a Field Service Order +- Click the **Create FSM Order** button in the header to open a pre-filled order form, + or click the **FS Orders** smart button to manage existing orders diff --git a/fieldservice_crm/static/description/index.html b/fieldservice_crm/static/description/index.html index ffc81fdee9..489592e027 100644 --- a/fieldservice_crm/static/description/index.html +++ b/fieldservice_crm/static/description/index.html @@ -407,8 +407,9 @@
Test description
", + "priority": "1", + } + ) + action = lead.action_create_fsm_order() + ctx = action.get("context", {}) + self.assertEqual(ctx.get("default_opportunity_id"), lead.id) + self.assertEqual(ctx.get("default_location_id"), location.id) + self.assertEqual(ctx.get("default_description"), "Test description
") + self.assertEqual(ctx.get("default_priority"), "1") diff --git a/fieldservice_crm/views/crm_lead.xml b/fieldservice_crm/views/crm_lead.xml index 935ef8c135..5a7919a14a 100644 --- a/fieldservice_crm/views/crm_lead.xml +++ b/fieldservice_crm/views/crm_lead.xml @@ -5,8 +5,18 @@