Bugfix: Problem mit Deadlock behoben
							parent
							
								
									f075ecc8d3
								
							
						
					
					
						commit
						b317e4a23f
					
				|  | @ -216,7 +216,7 @@ class Partner(models.Model): | ||||||
|                     _("Die Lieferbedingung mit dem Code \'%s\' kann nicht zugeordnet werden") % vals['incoterm']) |                     _("Die Lieferbedingung mit dem Code \'%s\' kann nicht zugeordnet werden") % vals['incoterm']) | ||||||
| 
 | 
 | ||||||
|         if vals.get('company_odoo_id', False): |         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: |             if parent_id: | ||||||
|                 vals['parent_id'] = parent_id.id |                 vals['parent_id'] = parent_id.id | ||||||
|                 vals['street'] = parent_id.street |                 vals['street'] = parent_id.street | ||||||
|  |  | ||||||
|  | @ -52,9 +52,12 @@ class PortalAssignCompany(models.TransientModel): | ||||||
|         if not partner: |         if not partner: | ||||||
|             raise ValidationError(_('Der Partner konnte nicht gefuden werden.')) |             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}) |         partner.write({'portal_pending': False, 'active': True}) | ||||||
| 
 | 
 | ||||||
|         return self.send_to_portal(partner.portal_id, partner.id) |         return True | ||||||
| 
 | 
 | ||||||
|     def button_assign(self): |     def button_assign(self): | ||||||
|         self.ensure_one() |         self.ensure_one() | ||||||
|  | @ -63,10 +66,14 @@ class PortalAssignCompany(models.TransientModel): | ||||||
|             if not partner: |             if not partner: | ||||||
|                 raise ValidationError(_('Der Partner konnte nicht gefuden werden.')) |                 raise ValidationError(_('Der Partner konnte nicht gefuden werden.')) | ||||||
|             portal_id = partner.portal_id |             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() |             partner.unlink() | ||||||
|             if not self.main_partner_id.portal_id: |             if not self.main_partner_id.portal_id: | ||||||
|                 self.main_partner_id.portal_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 self.env.ref('base.action_partner_form').read()[0] | ||||||
|         return {'type': 'ir.actions.act_window_close'} |         return {'type': 'ir.actions.act_window_close'} | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue