Module: check_mk
Branch: master
Commit: 78bedeaf1bfd4421bcef59c7c9802eb61ce5a652
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=78bedeaf1bfd44…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Mon Aug 26 12:04:47 2013 +0200
Fixed problems ins view CSV export
---
web/htdocs/views.py | 11 +++++++----
web/plugins/views/webservice.py | 16 +++++++---------
2 files changed, 14 insertions(+), 13 deletions(-)
diff --git a/web/htdocs/views.py b/web/htdocs/views.py
index 62f1a70..ac1711d 100644
--- a/web/htdocs/views.py
+++ b/web/htdocs/views.py
@@ -2341,6 +2341,12 @@ def execute_hooks(hook):
else:
pass
+def paint_painter(painter, row):
+ if "args" in painter:
+ return painter["paint"](row, *painter["args"])
+ else:
+ return painter["paint"](row)
+
def prepare_paint(p, row):
painter = p[0]
linkview = p[1]
@@ -2351,10 +2357,7 @@ def prepare_paint(p, row):
if not row:
return "", "" # no join information available for that
column
- if "args" in painter:
- tdclass, content = painter["paint"](row, *painter["args"])
- else:
- tdclass, content = painter["paint"](row)
+ tdclass, content = paint_painter(painter, row)
content = html.utf8_to_entities(content)
diff --git a/web/plugins/views/webservice.py b/web/plugins/views/webservice.py
index 16a9e47..a4e9561 100644
--- a/web/plugins/views/webservice.py
+++ b/web/plugins/views/webservice.py
@@ -92,7 +92,7 @@ def render_json(rows, view, group_painters, painters, num_columns,
show_checkbox
first = False
else:
html.write(",")
- tdclass, content = p[0]["paint"](row)
+ tdclass, content = paint_painter(p[0], row)
content = str(content).replace("<br>","\n")
stripped = html.strip_tags(content)
utf8 = stripped.encode("utf-8")
@@ -123,7 +123,7 @@ def render_csv(rows, view, group_painters, painters, num_columns,
show_checkboxe
filename = '%s-%s.csv' % (view['name'],
time.strftime('%Y-%m-%d_%H-%M-%S', time.localtime(time.time())))
html.req.headers_out['Content-Disposition'] = 'Attachment;
filename=%s' % filename
- csv_separator = html.var("csv_separator", ",")
+ csv_separator = html.var("csv_separator", ";")
first = True
for p in painters:
if first:
@@ -131,9 +131,8 @@ def render_csv(rows, view, group_painters, painters, num_columns,
show_checkboxe
else:
html.write(csv_separator)
content = p[0]["name"]
- stripped = html.strip_tags(content)
- stripped = stripped.replace(csv_separator, "\%s" % csv_separator)
- html.write(stripped.encode("utf-8"))
+ stripped = html.strip_tags(content).replace('\n',
'').replace('"', '""')
+ html.write('"%s"' % stripped.encode("utf-8"))
for row in rows:
html.write("\n")
@@ -143,10 +142,9 @@ def render_csv(rows, view, group_painters, painters, num_columns,
show_checkboxe
first = False
else:
html.write(csv_separator)
- tdclass, content = p[0]["paint"](row)
- stripped = html.strip_tags(content)
- stripped = stripped.replace(csv_separator, "\%s" % csv_separator)
- html.write(stripped.encode("utf-8"))
+ tdclass, content = paint_painter(p[0], row)
+ stripped = html.strip_tags(content).replace('\n',
'').replace('"', '""')
+ html.write('"%s"' % stripped.encode("utf-8"))
multisite_layouts["csv_export"] = {
"title" : _("CSV data export"),