hunk.code_window:             // link other records to current record
               otherRecords.add(recordToLink);
               // link current record to other records
               if (hasToUpdateInverse) {
                   this.modelManager._update(
                       recordToLink,
                       { [this.inverse]: link(record) },
                       { allowWriteReadonly: true, hasToUpdateInverse: false }
  
hunk.labels: keep keep keep keep replace keep keep keep
hunk.after_edit:                 record.modelManager._update(
  
hunk.file_path: addons/mail/static/src/model/model_field.js
hunk.type: replace
file: # -*- coding: utf-8 -*-
  # Part of Odoo. See LICENSE file for full copyright and licensing details.
  
  import odoo.tests
  from odoo.addons.product_matrix.tests.common import TestMatrixCommon
  
  
  @odoo.tests.tagged('post_install', '-at_install')
  class TestPurchaseMatrixUi(TestMatrixCommon):
  
      def test_purchase_matrix_ui(self):
          self.start_tour("/web", 'purchase_matrix_tour', login="admin")
  
          # Ensures some dynamic create variants have been created by the matrix
          # Ensures a PO has been created with exactly x lines ...
  
          self.assertEqual(len(self.matrix_template.product_variant_ids), 8)
          self.assertEqual(len(self.matrix_template.product_variant_ids.product_template_attribute_value_ids), 6)
          self.assertEqual(len(self.matrix_template.attribute_line_ids.product_template_value_ids), 8)
          self.env['purchase.order.line'].search([('product_id', 'in', self.matrix_template.product_variant_ids.ids)]).order_id.button_confirm()
  
          self.matrix_template.flush()
          self.assertEqual(round(self.matrix_template.purchased_product_qty, 2), 56.8)
          for variant in self.matrix_template.product_variant_ids:
              # 5 and 9.2 because of no variant attributes
              self.assertIn(round(variant.purchased_product_qty, 2), [5, 9.2])
  
          # Ensure no duplicate line has been created on the PO.
          # NB: the *2 is because the no_variant attribute doesn't create a variant
          # but still gives different order lines.
          self.assertEqual(
              len(self.env['purchase.order.line'].search([('product_id', 'in', self.matrix_template.product_variant_ids.ids)])),
              len(self.matrix_template.product_variant_ids)*2
          )
  