summaryrefslogtreecommitdiff
path: root/addons/web/controllers/main.py
diff options
context:
space:
mode:
authorXavier Morel <xmo@openerp.com>2012-01-13 10:06:11 +0100
committerXavier Morel <xmo@openerp.com>2012-01-13 10:06:11 +0100
commitc89d45b6583023d28735d4e17762165d10edf493 (patch)
tree510ad1184d61c6a2516f986672a5f738e956a1c0 /addons/web/controllers/main.py
parent4f57d12b65c45c647db960f2cb25f42e8cb30149 (diff)
[IMP] display a warning and disable excel export option when XLWT is not installed
lp bug: https://launchpad.net/bugs/915347 fixed bzr revid: xmo@openerp.com-20120113090611-lmiu5y7y7b9td8hg
Diffstat (limited to 'addons/web/controllers/main.py')
-rw-r--r--addons/web/controllers/main.py16
1 files changed, 11 insertions, 5 deletions
diff --git a/addons/web/controllers/main.py b/addons/web/controllers/main.py
index fd8d85f9d69..7081ce3ce32 100644
--- a/addons/web/controllers/main.py
+++ b/addons/web/controllers/main.py
@@ -18,6 +18,10 @@ from cStringIO import StringIO
import babel.messages.pofile
import werkzeug.utils
+try:
+ import xlwt
+except ImportError:
+ xlwt = None
import web.common
openerpweb = web.common.http
@@ -1308,7 +1312,7 @@ class Export(View):
for path, controller in openerpweb.controllers_path.iteritems()
if path.startswith(self._cp_path)
if hasattr(controller, 'fmt')
- ], key=operator.itemgetter(1))
+ ], key=operator.itemgetter("label"))
def fields_get(self, req, model):
Model = req.session.model(model)
@@ -1484,7 +1488,7 @@ class Export(View):
class CSVExport(Export):
_cp_path = '/web/export/csv'
- fmt = ('csv', 'CSV')
+ fmt = {'tag': 'csv', 'label': 'CSV'}
@property
def content_type(self):
@@ -1519,7 +1523,11 @@ class CSVExport(Export):
class ExcelExport(Export):
_cp_path = '/web/export/xls'
- fmt = ('xls', 'Excel')
+ fmt = {
+ 'tag': 'xls',
+ 'label': 'Excel',
+ 'error': None if xlwt else "XLWT required"
+ }
@property
def content_type(self):
@@ -1529,8 +1537,6 @@ class ExcelExport(Export):
return base + '.xls'
def from_data(self, fields, rows):
- import xlwt
-
workbook = xlwt.Workbook()
worksheet = workbook.add_sheet('Sheet 1')