]> git.parisson.com Git - telemeta-data.git/commitdiff
fix items and collections collector/creator normalization
authorolivier <olivier@3bf09e05-f825-4182-b9bc-eedd7160adf0>
Tue, 9 Feb 2010 18:20:44 +0000 (18:20 +0000)
committerolivier <olivier@3bf09e05-f825-4182-b9bc-eedd7160adf0>
Tue, 9 Feb 2010 18:20:44 +0000 (18:20 +0000)
git-svn-id: http://svn.parisson.org/svn/crem@148 3bf09e05-f825-4182-b9bc-eedd7160adf0

trunk/import/migration/tasks/collections.py
trunk/import/migration/tasks/items.py

index fccfbca0ecb200d8a012ddf28608407fab16925d..c84746461f337cc67f62c0148d3b9f06f994c0e0 100644 (file)
@@ -338,7 +338,7 @@ class CollectionsPublishersMapper(DataMigrator):
         self.end()
 
 class CollectionsCollectorNormalizer(DataMigrator):
-    """Migrate collector_is_creator flag"""
+    """Migrate collector_is_creator flag and empty unsignificant creator/collector"""
 
     implements(IDataMigrator)
 
@@ -346,10 +346,17 @@ class CollectionsCollectorNormalizer(DataMigrator):
         return "collections:collector"
 
     def process(self):
-        self.start()
-        self.target_cursor.execute("UPDATE media_collections SET collector_is_creator = 0")
-        self.target_cursor.execute("UPDATE media_collections SET collector_is_creator = (collector IN ('=', '=+N', 'ID' 'ID.' 'IDE.' 'IDEM'))")
+        self.start(3)
+        self.target_cursor.execute("UPDATE media_collections SET collector_is_creator = 1, collector = '' "
+                                   "WHERE collector IN ('=', '=+N', 'ID', 'ID.', 'IDE.', 'IDEM') ")
         self.stats['flagged'] = self.target_cursor.rowcount
+        self.step(1)
+        self.target_cursor.execute("UPDATE media_collections SET collector = '' WHERE collector IN ('N', 'ND', '?', '+')")
+        self.stats['emptied_collector'] = self.stats['flagged'] + self.target_cursor.rowcount
+        self.step(2)
+        self.target_cursor.execute("UPDATE media_collections SET creator = '' WHERE creator IN ('N', ' N', '?', ' ')")
+        self.stats['emptied_creator'] = self.target_cursor.rowcount
+        self.step(3)
         self.end()
 
 class CollectionsPublishedStateMigrator(DataMigrator):
index 86199fc11cf275f009af705aff4f80c991ebf943..89961d2cd64fd876ea8d89f04f9294717e48cada 100644 (file)
@@ -311,6 +311,24 @@ class ItemsLocationsMapper(DataMigrator):
         self.target("SET foreign_key_checks = 1")
         self.end()
                     
+class ItemsCollectorNormalizer(DataMigrator):
+    """Migrate collector_from_collection flag and empty unsignificant collector"""
+
+    implements(IDataMigrator)
+
+    def get_name(self):
+        return "items:collector"
+
+    def process(self):
+        self.start(2)
+        self.target_cursor.execute("UPDATE media_items SET collector_from_collection = 1, collector = '' "
+                                   "WHERE collector = '=' ")
+        self.stats['flagged'] = self.target_cursor.rowcount
+        self.step(1)
+        self.target_cursor.execute("UPDATE media_items SET collector = '' WHERE collector IN ('*', '-', '-1', 'N', 'ND')")
+        self.stats['emptied_collector'] = self.stats['flagged'] + self.target_cursor.rowcount
+        self.step(2)
+        self.end()