[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