Stefan Rijnhart (Therp) has proposed merging 
lp:~therp-nl/openupgrade-server/7.0-set_created_partner_id_for_default_addresses
 into lp:openupgrade-server.

Requested reviews:
  OpenUpgrade Committers (openupgrade-committers)

For more details, see:
https://code.launchpad.net/~therp-nl/openupgrade-server/7.0-set_created_partner_id_for_default_addresses/+merge/176667

The migration script for the base module creates a partner for each entry in 
the res_partner_address table. It writes the id of the created partner to this 
table for further reference. This branch fixes the fact that the id of existing 
partners, which get the data from the first default address encountered were 
not record on these address records.

-- 
https://code.launchpad.net/~therp-nl/openupgrade-server/7.0-set_created_partner_id_for_default_addresses/+merge/176667
Your team OpenUpgrade Committers is requested to review the proposed merge of 
lp:~therp-nl/openupgrade-server/7.0-set_created_partner_id_for_default_addresses
 into lp:openupgrade-server.
=== modified file 'openerp/addons/base/migrations/7.0.1.3/post-migration.py'
--- openerp/addons/base/migrations/7.0.1.3/post-migration.py	2013-06-17 15:03:32 +0000
+++ openerp/addons/base/migrations/7.0.1.3/post-migration.py	2013-07-24 12:18:28 +0000
@@ -79,6 +79,13 @@
     partner_found = []
     processed_ids = []
 
+    def set_address_partner(address_id, partner_id):
+        cr.execute(
+            "UPDATE res_partner_address "
+            "SET openupgrade_7_migrated_to_partner_id = %s "
+            "WHERE id = %s",
+            (partner_id, address_id))
+
     def create_partner(address_id, vals, defaults):
         """
         Create a partner from an address. Update the vals
@@ -91,11 +98,7 @@
                 vals[key] = defaults[key]
 
         partner_id = partner_obj.create(cr, SUPERUSER_ID, vals)
-        cr.execute(
-            "UPDATE res_partner_address "
-            "SET openupgrade_7_migrated_to_partner_id = %s "
-            "WHERE id = %s",
-            (partner_id, address_id))
+        set_address_partner(address_id, partner_id)
 
     def process_address_type(cr, whereclause, args=None):
         """
@@ -128,6 +131,7 @@
                     partner_obj.write(
                         cr, SUPERUSER_ID, address['partner_id'], partner_vals)
                     partner_found.append(address['partner_id'])
+                    set_address_partner(address['id'], address['partner_id'])
                 else:
                     # any following address for an existing partner
                     partner_vals.update({
@@ -142,6 +146,12 @@
     process_address_type(cr, "type IS NULL OR type = ''")
     process_address_type(cr, "id NOT IN %s", (tuple(processed_ids),))
 
+    # Check that all addresses have been migrated
+    cr.execute(
+        "SELECT COUNT(*) FROM res_partner_address "
+        "WHERE openupgrade_7_migrated_to_partner_id is NULL ")
+    assert(not cr.fetchone()[0])
+
 def update_users_partner(cr, pool):
     """ 
     Now that the fields exist on the model, finish

-- 
Mailing list: https://launchpad.net/~credativ
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~credativ
More help   : https://help.launchpad.net/ListHelp

Reply via email to