From 31376a6c36fec001c11f1f3adb9dd8192e5f7cd4 Mon Sep 17 00:00:00 2001
From: Ivan Tyagov <ivan@nexedi.com>
Date: Thu, 4 Jun 2015 11:58:54 +0300
Subject: [PATCH] Extend API and set default to None for an array. Add a new
 property of type array.

---
 .../document.erp5.DataArray.py                |  6 ++
 .../elementary_type/array.xml                 | 89 +++++++++++++++++++
 .../DataArray/array_property.xml              |  4 +-
 .../test.erp5.testWendelin.py                 |  1 +
 bt5/erp5_wendelin/bt/template_path_list       |  1 +
 5 files changed, 99 insertions(+), 2 deletions(-)
 create mode 100644 bt5/erp5_wendelin/PathTemplateItem/portal_categories/elementary_type/array.xml
 create mode 100644 bt5/erp5_wendelin/bt/template_path_list

diff --git a/bt5/erp5_wendelin/DocumentTemplateItem/portal_components/document.erp5.DataArray.py b/bt5/erp5_wendelin/DocumentTemplateItem/portal_components/document.erp5.DataArray.py
index ff3b886..8f1a328 100644
--- a/bt5/erp5_wendelin/DocumentTemplateItem/portal_components/document.erp5.DataArray.py
+++ b/bt5/erp5_wendelin/DocumentTemplateItem/portal_components/document.erp5.DataArray.py
@@ -57,6 +57,12 @@ class DataArray(BigFile):
     """
     array = ZBigArray(shape, dtype)
     self._setArray(array)
+    
+  def getArray(self, default=None):
+    """
+    Get numpy array value.
+    """
+    return getattr(self, 'array', None)
 
   def _setArray(self, value):
     """
diff --git a/bt5/erp5_wendelin/PathTemplateItem/portal_categories/elementary_type/array.xml b/bt5/erp5_wendelin/PathTemplateItem/portal_categories/elementary_type/array.xml
new file mode 100644
index 0000000..adbe312
--- /dev/null
+++ b/bt5/erp5_wendelin/PathTemplateItem/portal_categories/elementary_type/array.xml
@@ -0,0 +1,89 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Category" module="erp5.portal_type"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_Add_portal_content_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Add_portal_folders_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Copy_or_Move_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Delete_objects_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Modify_portal_content_Permission</string> </key>
+            <value>
+              <tuple>
+                <string>Assignee</string>
+                <string>Assignor</string>
+                <string>Manager</string>
+                <string>Owner</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>categories</string> </key>
+            <value>
+              <tuple>
+                <string>elementary_type/array</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>array</string> </value>
+        </item>
+        <item>
+            <key> <string>portal_type</string> </key>
+            <value> <string>Category</string> </value>
+        </item>
+        <item>
+            <key> <string>short_title</string> </key>
+            <value> <string>Array</string> </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string>array</string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_wendelin/PropertySheetTemplateItem/portal_property_sheets/DataArray/array_property.xml b/bt5/erp5_wendelin/PropertySheetTemplateItem/portal_property_sheets/DataArray/array_property.xml
index eeb6425..6a92047 100644
--- a/bt5/erp5_wendelin/PropertySheetTemplateItem/portal_property_sheets/DataArray/array_property.xml
+++ b/bt5/erp5_wendelin/PropertySheetTemplateItem/portal_property_sheets/DataArray/array_property.xml
@@ -27,7 +27,7 @@
             <key> <string>categories</string> </key>
             <value>
               <tuple>
-                <string>elementary_type/data</string>
+                <string>elementary_type/array</string>
               </tuple>
             </value>
         </item>
@@ -49,7 +49,7 @@
         </item>
         <item>
             <key> <string>property_default</string> </key>
-            <value> <string>python: \'\'</string> </value>
+            <value> <string>python: None</string> </value>
         </item>
       </dictionary>
     </pickle>
diff --git a/bt5/erp5_wendelin/TestTemplateItem/portal_components/test.erp5.testWendelin.py b/bt5/erp5_wendelin/TestTemplateItem/portal_components/test.erp5.testWendelin.py
index 9f73d91..abf85a6 100644
--- a/bt5/erp5_wendelin/TestTemplateItem/portal_components/test.erp5.testWendelin.py
+++ b/bt5/erp5_wendelin/TestTemplateItem/portal_components/test.erp5.testWendelin.py
@@ -118,6 +118,7 @@ class Test(ERP5TypeTestCase):
     
     data_array = self.portal.data_array_module.newContent( \
                    portal_type = 'Data Array')
+    self.assertEqual(None, data_array.getArray())
     data_array.initArray((3, 3), np.uint8)
     self.tic()
     
diff --git a/bt5/erp5_wendelin/bt/template_path_list b/bt5/erp5_wendelin/bt/template_path_list
new file mode 100644
index 0000000..f6b5591
--- /dev/null
+++ b/bt5/erp5_wendelin/bt/template_path_list
@@ -0,0 +1 @@
+portal_categories/elementary_type/array
\ No newline at end of file
-- 
2.30.9