[Erp5-report] r41359 hugo.maia - in /erp5/trunk/utils/cloudooo/cloudooo: ./ granulate/ inte...

nobody at svn.erp5.org nobody at svn.erp5.org
Sat Dec 11 17:31:17 CET 2010


Author: hugo.maia
Date: Sat Dec 11 17:31:17 2010
New Revision: 41359

URL: http://svn.erp5.org?rev=41359&view=rev
Log:
Implement getTableItemList

Added:
    erp5/trunk/utils/cloudooo/cloudooo/tests/data/granulate_table_test.odt   (with props)
Modified:
    erp5/trunk/utils/cloudooo/cloudooo/CHANGES.txt
    erp5/trunk/utils/cloudooo/cloudooo/granulate/oogranulate.py
    erp5/trunk/utils/cloudooo/cloudooo/interfaces/granulate.py
    erp5/trunk/utils/cloudooo/cloudooo/tests/testOOGranulate.py

Modified: erp5/trunk/utils/cloudooo/cloudooo/CHANGES.txt
URL: http://svn.erp5.org/erp5/trunk/utils/cloudooo/cloudooo/CHANGES.txt?rev=41359&r1=41358&r2=41359&view=diff
==============================================================================
--- erp5/trunk/utils/cloudooo/cloudooo/CHANGES.txt [utf8] (original)
+++ erp5/trunk/utils/cloudooo/cloudooo/CHANGES.txt [utf8] Sat Dec 11 17:31:17 2010
@@ -1,5 +1,6 @@
 1.0.10 (unreleased)
 ===================
+  - Add getTableItemList for OOGranulate
   - Add getParagraphItemList and getParagraphItem for OOGranulate
   - Add getImageItemList and getImage for OOGranulate
   - Add OdfDocument

Modified: erp5/trunk/utils/cloudooo/cloudooo/granulate/oogranulate.py
URL: http://svn.erp5.org/erp5/trunk/utils/cloudooo/cloudooo/granulate/oogranulate.py?rev=41359&r1=41358&r2=41359&view=diff
==============================================================================
--- erp5/trunk/utils/cloudooo/cloudooo/granulate/oogranulate.py [utf8] (original)
+++ erp5/trunk/utils/cloudooo/cloudooo/granulate/oogranulate.py [utf8] Sat Dec 11 17:31:17 2010
@@ -42,9 +42,19 @@ class OOGranulate(object):
   def __init__(self, file, source_format):
     self.document = OdfDocument(file, source_format)
 
-  def getTableItemList(self, file):
+  def getTableItemList(self):
     """Returns the list of table IDs in the form of (id, title)."""
-    raise NotImplementedError
+    xml_table_list = self.document.parsed_content.xpath('.//table:table',
+                                namespaces=self.document.parsed_content.nsmap)
+    name_key = '{urn:oasis:names:tc:opendocument:xmlns:table:1.0}name'
+    table_list = []
+    for table in xml_table_list:
+      title = ''.join(table.xpath('following-sibling::text:p[position()=1] \
+                          [starts-with(@text:style-name, "Table")]//text()',
+                          namespaces=table.nsmap))
+      id = table.attrib[name_key]
+      table_list.append((id, title))
+    return table_list
 
   def getColumnItemList(self, file, table_id):
     """Return the list of columns in the form of (id, title)."""

Modified: erp5/trunk/utils/cloudooo/cloudooo/interfaces/granulate.py
URL: http://svn.erp5.org/erp5/trunk/utils/cloudooo/cloudooo/interfaces/granulate.py?rev=41359&r1=41358&r2=41359&view=diff
==============================================================================
--- erp5/trunk/utils/cloudooo/cloudooo/interfaces/granulate.py [utf8] (original)
+++ erp5/trunk/utils/cloudooo/cloudooo/interfaces/granulate.py [utf8] Sat Dec 11 17:31:17 2010
@@ -32,7 +32,7 @@ from zope.interface import Interface
 class ITableGranulator(Interface):
   """Provides methods to granulate a document into tables."""
 
-  def getTableItemList(file):
+  def getTableItemList():
     """Returns the list of table IDs in the form of (id, title)."""
 
   def getColumnItemList(file, table_id):

Added: erp5/trunk/utils/cloudooo/cloudooo/tests/data/granulate_table_test.odt
URL: http://svn.erp5.org/erp5/trunk/utils/cloudooo/cloudooo/tests/data/granulate_table_test.odt?rev=41359&view=auto
==============================================================================
Binary file - no diff available.

Propchange: erp5/trunk/utils/cloudooo/cloudooo/tests/data/granulate_table_test.odt
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Modified: erp5/trunk/utils/cloudooo/cloudooo/tests/testOOGranulate.py
URL: http://svn.erp5.org/erp5/trunk/utils/cloudooo/cloudooo/tests/testOOGranulate.py?rev=41359&r1=41358&r2=41359&view=diff
==============================================================================
--- erp5/trunk/utils/cloudooo/cloudooo/tests/testOOGranulate.py [utf8] (original)
+++ erp5/trunk/utils/cloudooo/cloudooo/tests/testOOGranulate.py [utf8] Sat Dec 11 17:31:17 2010
@@ -42,8 +42,12 @@ class TestOOGranulate(cloudoooTestCase):
 
   def testgetTableItemList(self):
     """Test if getTableItemList() returns the right tables list"""
-    self.assertRaises(NotImplementedError, self.oogranulate.getTableItemList,
-                                           'file')
+    data = open('./data/granulate_table_test.odt').read()
+    oogranulate = OOGranulate(data, 'odt')
+    table_list = [('Developers', ''),
+                  ('Prices', 'Table 1: Prices table from Mon Restaurant'),
+                  ('SoccerTeams', 'Tabela 2: Soccer Teams')]
+    self.assertEquals(table_list, oogranulate.getTableItemList())
 
   def testGetColumnItemList(self):
     """Test if getColumnItemList() returns the right table columns list"""



More information about the Erp5-report mailing list