From 54d27f5069427f8d03a09f655b2dc81fb920d0b6 Mon Sep 17 00:00:00 2001 From: Ahmed Aly Date: Tue, 10 Apr 2018 13:39:18 +0200 Subject: [PATCH] Feedback 1596 + 1610 --- .../wizards/portal_assign_company.py | 23 ++++++++++++++----- 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/ext/custom-addons/dp_custom/wizards/portal_assign_company.py b/ext/custom-addons/dp_custom/wizards/portal_assign_company.py index e68560f2..a87ed3ab 100644 --- a/ext/custom-addons/dp_custom/wizards/portal_assign_company.py +++ b/ext/custom-addons/dp_custom/wizards/portal_assign_company.py @@ -5,7 +5,7 @@ import json import requests from odoo import tools, api, fields, models, _ -from odoo.exceptions import ValidationError +from odoo.exceptions import ValidationError, UserError class PortalAssignCompany(models.TransientModel): @@ -37,14 +37,24 @@ class PortalAssignCompany(models.TransientModel): portal_url = tools.config.get('portal_url') application_id = tools.config.get('portal_secret') data = { - 'portal_id': int(portal_id), + 'portal_id': portal_id, 'company_odoo_id': odoo_id } response = requests.post(portal_url + '/api/v1/set-odoo-id/?secret=' + application_id, data=json.dumps(data)) if response.status_code != 200: - raise ValidationError(_('Die Odoo id konnte für den partner nicht gesetzt werden.' - 'Status Code: %s, Reason: %s') % (response.status_code, response.reason)) + error_content = True + error_msg = "" + try: + error_msg = json.loads(response.content.decode()) + except Exception: + error_content = False + + if error_content and error_msg.get('errors'): + raise UserError(_('%s') % (error_msg.get('errors')[0])) + else: + raise UserError(_('Die Odoo id konnte für den partner nicht gesetzt werden. ' + 'Status Code: %s, Reason: %s') % (response.status_code, response.reason)) def button_activate(self): self.ensure_one() @@ -74,6 +84,7 @@ class PortalAssignCompany(models.TransientModel): if not self.main_partner_id.portal_id: self.main_partner_id.portal_id = portal_id - - return self.env.ref('base.action_partner_form').read()[0] + action = self.env.ref('base.action_partner_form').read()[0] + action['res_id'] = self.main_partner_id.id + return action return {'type': 'ir.actions.act_window_close'}