[Erp5-report] r41977 ivan - in /erp5/trunk/bt5/erp5_base: ExtensionTemplateItem/ PathTempla...

nobody at svn.erp5.org nobody at svn.erp5.org
Tue Jan 4 10:29:58 CET 2011


Author: ivan
Date: Tue Jan  4 10:29:58 2011
New Revision: 41977

URL: http://svn.erp5.org?rev=41977&view=rev
Log:
Add upgrader alarm that is able to handle migration of embedded "File" & "Image" objects to "Embedded File" portal type.

Added:
    erp5/trunk/bt5/erp5_base/ExtensionTemplateItem/
    erp5/trunk/bt5/erp5_base/ExtensionTemplateItem/BaseMigration.py
    erp5/trunk/bt5/erp5_base/PathTemplateItem/portal_alarms/
    erp5/trunk/bt5/erp5_base/PathTemplateItem/portal_alarms/upgrader_migrate_to_embedded_file.xml
    erp5/trunk/bt5/erp5_base/SkinTemplateItem/portal_skins/erp5_base/Base_migrateToEmbeddedFile.xml
    erp5/trunk/bt5/erp5_base/SkinTemplateItem/portal_skins/erp5_base/ERP5Site_migrateToEmbeddedFile.xml
    erp5/trunk/bt5/erp5_base/bt/template_extension_id_list
Modified:
    erp5/trunk/bt5/erp5_base/bt/change_log
    erp5/trunk/bt5/erp5_base/bt/revision
    erp5/trunk/bt5/erp5_base/bt/template_path_list

Added: erp5/trunk/bt5/erp5_base/ExtensionTemplateItem/BaseMigration.py
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_base/ExtensionTemplateItem/BaseMigration.py?rev=41977&view=auto
==============================================================================
--- erp5/trunk/bt5/erp5_base/ExtensionTemplateItem/BaseMigration.py (added)
+++ erp5/trunk/bt5/erp5_base/ExtensionTemplateItem/BaseMigration.py [utf8] Tue Jan  4 10:29:58 2011
@@ -0,0 +1,44 @@
+##############################################################################
+#
+# Copyright (c) 2006 Nexedi SARL and Contributors. All Rights Reserved.
+#          Ivan Tyagov <ivan at nexedi.com>
+#
+# WARNING: This program as such is intended to be used by professional
+# programmers who take the whole responsability of assessing all potential
+# consequences resulting from its eventual inadequacies and bugs
+# End users who are looking for a ready-to-use solution with commercial
+# garantees and support are strongly adviced to contract a Free Software
+# Service Company
+#
+# This program is Free Software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+#
+##############################################################################
+
+def migrateToEmbeddedFile(self):
+  """ Migrate all embedded "File" and "Image" 
+     objects to an unified "Embedded File
+  """
+  from Products.ERP5.Extensions.CheckPortalTypes import changeObjectClass
+  from Products.ERP5.Document.EmbeddedFile import EmbeddedFile
+  
+  if self.getPortalType() in ('File', 'Image',) and \
+    self.getValidationState()=='embedded':
+    changeObjectClass(self.getParentValue(), self.id, EmbeddedFile)
+    instance = getattr(self.getParentValue(), self.id)
+    instance.portal_type = EmbeddedFile.portal_type
+    instance.reindexObject()
+    self.log("Migrated %s" %self.getRelativeUrl())
+    return self.getRelativeUrl()
+  
\ No newline at end of file

Added: erp5/trunk/bt5/erp5_base/PathTemplateItem/portal_alarms/upgrader_migrate_to_embedded_file.xml
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_base/PathTemplateItem/portal_alarms/upgrader_migrate_to_embedded_file.xml?rev=41977&view=auto
==============================================================================
--- erp5/trunk/bt5/erp5_base/PathTemplateItem/portal_alarms/upgrader_migrate_to_embedded_file.xml (added)
+++ erp5/trunk/bt5/erp5_base/PathTemplateItem/portal_alarms/upgrader_migrate_to_embedded_file.xml [utf8] Tue Jan  4 10:29:58 2011
@@ -0,0 +1,55 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Alarm" module="erp5.portal_type"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>active_sense_method_id</string> </key>
+            <value> <string>ERP5Site_migrateToEmbeddedFile</string> </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value> <string>This alarm when triggered will migrate all embedded "File" and "Image" objects to an unified "Embedded File".</string> </value>
+        </item>
+        <item>
+            <key> <string>enabled</string> </key>
+            <value> <int>0</int> </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>upgrader_migrate_to_embedded_file</string> </value>
+        </item>
+        <item>
+            <key> <string>periodicity_start_date</string> </key>
+            <value>
+              <object>
+                <klass>
+                  <global name="DateTime" module="DateTime.DateTime"/>
+                </klass>
+                <tuple>
+                  <none/>
+                </tuple>
+                <state>
+                  <tuple>
+                    <float>1294012800.0</float>
+                    <string>GMT</string>
+                  </tuple>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>portal_type</string> </key>
+            <value> <string>Alarm</string> </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string>Migration to Embedded File portal type</string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>

Added: erp5/trunk/bt5/erp5_base/SkinTemplateItem/portal_skins/erp5_base/Base_migrateToEmbeddedFile.xml
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_base/SkinTemplateItem/portal_skins/erp5_base/Base_migrateToEmbeddedFile.xml?rev=41977&view=auto
==============================================================================
--- erp5/trunk/bt5/erp5_base/SkinTemplateItem/portal_skins/erp5_base/Base_migrateToEmbeddedFile.xml (added)
+++ erp5/trunk/bt5/erp5_base/SkinTemplateItem/portal_skins/erp5_base/Base_migrateToEmbeddedFile.xml [utf8] Tue Jan  4 10:29:58 2011
@@ -0,0 +1,28 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="ExternalMethod" module="Products.ExternalMethod.ExternalMethod"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_function</string> </key>
+            <value> <string>migrateToEmbeddedFile</string> </value>
+        </item>
+        <item>
+            <key> <string>_module</string> </key>
+            <value> <string>BaseMigration</string> </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>Base_migrateToEmbeddedFile</string> </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string></string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>

Added: erp5/trunk/bt5/erp5_base/SkinTemplateItem/portal_skins/erp5_base/ERP5Site_migrateToEmbeddedFile.xml
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_base/SkinTemplateItem/portal_skins/erp5_base/ERP5Site_migrateToEmbeddedFile.xml?rev=41977&view=auto
==============================================================================
--- erp5/trunk/bt5/erp5_base/SkinTemplateItem/portal_skins/erp5_base/ERP5Site_migrateToEmbeddedFile.xml (added)
+++ erp5/trunk/bt5/erp5_base/SkinTemplateItem/portal_skins/erp5_base/ERP5Site_migrateToEmbeddedFile.xml [utf8] Tue Jan  4 10:29:58 2011
@@ -0,0 +1,78 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>Script_magic</string> </key>
+            <value> <int>3</int> </value>
+        </item>
+        <item>
+            <key> <string>_bind_names</string> </key>
+            <value>
+              <object>
+                <klass>
+                  <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
+                </klass>
+                <tuple/>
+                <state>
+                  <dictionary>
+                    <item>
+                        <key> <string>_asgns</string> </key>
+                        <value>
+                          <dictionary>
+                            <item>
+                                <key> <string>name_container</string> </key>
+                                <value> <string>container</string> </value>
+                            </item>
+                            <item>
+                                <key> <string>name_context</string> </key>
+                                <value> <string>context</string> </value>
+                            </item>
+                            <item>
+                                <key> <string>name_m_self</string> </key>
+                                <value> <string>script</string> </value>
+                            </item>
+                            <item>
+                                <key> <string>name_subpath</string> </key>
+                                <value> <string>traverse_subpath</string> </value>
+                            </item>
+                          </dictionary>
+                        </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>_body</string> </key>
+            <value> <string>"""\n
+  This script when triggered will migrate all embedded "File" and "Image" \n
+  objects to an unified "Embedded File".\n
+"""\n
+active_process = context.getPortalObject().portal_activities.newActiveProcess()\n
+context.ERP5Site_checkDataWithScript("Base_migrateToEmbeddedFile", \n
+                                      tag="migrate",\n
+                                      active_process=active_process.getPath())\n
+\n
+\n
+print "Migration started with process id: %s" %active_process.getPath()\n
+return printed\n
+</string> </value>
+        </item>
+        <item>
+            <key> <string>_params</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>ERP5Site_migrateToEmbeddedFile</string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>

Modified: erp5/trunk/bt5/erp5_base/bt/change_log
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_base/bt/change_log?rev=41977&r1=41976&r2=41977&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_base/bt/change_log [utf8] (original)
+++ erp5/trunk/bt5/erp5_base/bt/change_log [utf8] Tue Jan  4 10:29:58 2011
@@ -1,3 +1,6 @@
+2011-01-04 Ivan
+* Add upgrader alarm that is able to handle migration of embedded "File" & "Image" objects to "Embedded File" portal type
+
 2010-12-23 Kazuhiko
 * use my_filename instead of my_source_reference in File_view and Image_view.
 

Modified: erp5/trunk/bt5/erp5_base/bt/revision
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_base/bt/revision?rev=41977&r1=41976&r2=41977&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_base/bt/revision [utf8] (original)
+++ erp5/trunk/bt5/erp5_base/bt/revision [utf8] Tue Jan  4 10:29:58 2011
@@ -1 +1 @@
-924
\ No newline at end of file
+927
\ No newline at end of file

Added: erp5/trunk/bt5/erp5_base/bt/template_extension_id_list
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_base/bt/template_extension_id_list?rev=41977&view=auto
==============================================================================
--- erp5/trunk/bt5/erp5_base/bt/template_extension_id_list (added)
+++ erp5/trunk/bt5/erp5_base/bt/template_extension_id_list [utf8] Tue Jan  4 10:29:58 2011
@@ -0,0 +1 @@
+BaseMigration
\ No newline at end of file

Modified: erp5/trunk/bt5/erp5_base/bt/template_path_list
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_base/bt/template_path_list?rev=41977&r1=41976&r2=41977&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_base/bt/template_path_list [utf8] (original)
+++ erp5/trunk/bt5/erp5_base/bt/template_path_list [utf8] Tue Jan  4 10:29:58 2011
@@ -1,3 +1,4 @@
+portal_alarms/upgrader_migrate_to_embedded_file
 portal_caches/document_cache_factory
 portal_caches/document_cache_factory/**
 portal_categories/collect_order_group/cell



More information about the Erp5-report mailing list