Bugfix: Problem mit Deadlock behoben

develop
Andreas Brückl 2018-04-06 11:39:35 +02:00
parent f075ecc8d3
commit b317e4a23f
2 changed files with 10 additions and 3 deletions

View File

@ -216,7 +216,7 @@ class Partner(models.Model):
_("Die Lieferbedingung mit dem Code \'%s\' kann nicht zugeordnet werden") % vals['incoterm'])
if vals.get('company_odoo_id', False):
parent_id = self.env['res.partner'].search([('id', '=', vals['company_odoo_id'])])
parent_id = self.env['res.partner'].with_context(active_test=False).search([('id', '=', vals['company_odoo_id'])])
if parent_id:
vals['parent_id'] = parent_id.id
vals['street'] = parent_id.street

View File

@ -52,9 +52,12 @@ class PortalAssignCompany(models.TransientModel):
if not partner:
raise ValidationError(_('Der Partner konnte nicht gefuden werden.'))
# Wichtig hier ist, dass dieser Call vor dem ersten Write stattfindet, da das Portal
# parallel einen Call absetzt, dann dann blockieren würde.
self.send_to_portal(partner.portal_id, partner.id)
partner.write({'portal_pending': False, 'active': True})
return self.send_to_portal(partner.portal_id, partner.id)
return True
def button_assign(self):
self.ensure_one()
@ -63,10 +66,14 @@ class PortalAssignCompany(models.TransientModel):
if not partner:
raise ValidationError(_('Der Partner konnte nicht gefuden werden.'))
portal_id = partner.portal_id
# Wichtig hier ist, dass dieser Call vor dem ersten Write stattfindet, da das Portal
# parallel einen Call absetzt, dann dann blockieren würde.
self.send_to_portal(portal_id, self.main_partner_id.id)
partner.unlink()
if not self.main_partner_id.portal_id:
self.main_partner_id.portal_id = portal_id
self.send_to_portal(self.main_partner_id.portal_id, self.main_partner_id.id)
return self.env.ref('base.action_partner_form').read()[0]
return {'type': 'ir.actions.act_window_close'}