From 98ceb0fd2d9454de3c7dd042eb8308894029b01d Mon Sep 17 00:00:00 2001 From: Dhawal Limbuwala Date: Fri, 18 Aug 2017 16:43:12 +0200 Subject: [PATCH] [IMP] crm,hr_recruitment,project: add 'Create and Edit' btn This commit adds a 'Create and Edit' button in the footer of the dialog opened when creating a record from the Kanban of several models. Clicking on this button creates the record and directly opens it in a more detailled form view in edit mode. --- addons/crm/models/crm_lead.py | 12 ++++++++++++ addons/crm/views/crm_lead_views.xml | 1 + addons/hr_recruitment/models/hr_job.py | 14 +++++++++++++- .../hr_recruitment/views/hr_recruitment_views.xml | 1 + addons/project/models/project.py | 12 ++++++++++++ addons/project/views/project_views.xml | 1 + 6 files changed, 40 insertions(+), 1 deletion(-) diff --git a/addons/crm/models/crm_lead.py b/addons/crm/models/crm_lead.py index 76f8a286205..f06cea3f434 100644 --- a/addons/crm/models/crm_lead.py +++ b/addons/crm/models/crm_lead.py @@ -421,6 +421,18 @@ class Lead(models.Model): def close_dialog(self): return {'type': 'ir.actions.act_window_close'} + @api.multi + def edit_dialog(self): + form_view = self.env.ref('crm.crm_case_form_view_oppor') + return { + 'name': _('Opportunity'), + 'res_model': 'crm.lead', + 'res_id': self.id, + 'views': [(form_view.id, 'form'),], + 'type': 'ir.actions.act_window', + 'target': 'inline' + } + # ---------------------------------------- # Business Methods # ---------------------------------------- diff --git a/addons/crm/views/crm_lead_views.xml b/addons/crm/views/crm_lead_views.xml index 7d6050b50c7..d3cd818330e 100644 --- a/addons/crm/views/crm_lead_views.xml +++ b/addons/crm/views/crm_lead_views.xml @@ -260,6 +260,7 @@ diff --git a/addons/hr_recruitment/models/hr_job.py b/addons/hr_recruitment/models/hr_job.py index 0c6c643b118..a35ba4351c4 100644 --- a/addons/hr_recruitment/models/hr_job.py +++ b/addons/hr_recruitment/models/hr_job.py @@ -1,6 +1,6 @@ # Part of Odoo. See LICENSE file for full copyright and licensing details. -from odoo import api, fields, models +from odoo import api, fields, models, _ class Job(models.Model): @@ -86,3 +86,15 @@ class Job(models.Model): @api.multi def close_dialog(self): return {'type': 'ir.actions.act_window_close'} + + @api.multi + def edit_dialog(self): + form_view = self.env.ref('hr.view_hr_job_form') + return { + 'name': _('Job'), + 'res_model': 'hr.job', + 'res_id': self.id, + 'views': [(form_view.id, 'form'),], + 'type': 'ir.actions.act_window', + 'target': 'inline' + } diff --git a/addons/hr_recruitment/views/hr_recruitment_views.xml b/addons/hr_recruitment/views/hr_recruitment_views.xml index 0403ae64501..a3515f609fd 100644 --- a/addons/hr_recruitment/views/hr_recruitment_views.xml +++ b/addons/hr_recruitment/views/hr_recruitment_views.xml @@ -416,6 +416,7 @@ diff --git a/addons/project/models/project.py b/addons/project/models/project.py index 25c8e52a6dd..137a548e562 100644 --- a/addons/project/models/project.py +++ b/addons/project/models/project.py @@ -345,6 +345,18 @@ class Project(models.Model): def close_dialog(self): return {'type': 'ir.actions.act_window_close'} + @api.multi + def edit_dialog(self): + form_view = self.env.ref('project.edit_project') + return { + 'name': _('Project'), + 'res_model': 'project.project', + 'res_id': self.id, + 'views': [(form_view.id, 'form'),], + 'type': 'ir.actions.act_window', + 'target': 'inline' + } + class Task(models.Model): _name = "project.task" diff --git a/addons/project/views/project_views.xml b/addons/project/views/project_views.xml index 84bfe4b4338..700caa7007d 100644 --- a/addons/project/views/project_views.xml +++ b/addons/project/views/project_views.xml @@ -231,6 +231,7 @@