diff --git a/expert/browser/export.py b/expert/browser/export.py
index 8c06e21..f27c105 100644
--- a/expert/browser/export.py
+++ b/expert/browser/export.py
@@ -24,12 +24,13 @@ import csv
from cStringIO import StringIO
from zope.i18n import translate
-from loops.expert.browser.report import ReportConceptView
+from loops.common import normalizeName
+from loops.expert.browser.report import ResultsConceptView
from loops.interfaces import ILoopsObject
from loops.util import _
-class ReportConceptCSVExport(ReportConceptView):
+class ResultsConceptCSVExport(ResultsConceptView):
isToplevel = True
reportMode = 'export'
@@ -38,7 +39,7 @@ class ReportConceptCSVExport(ReportConceptView):
encoding = 'UTF-8'
def getFileName(self):
- return 'output'
+ return normalizeName(self.context.title)
def getColumnTitle(self, field):
lang = self.languageInfo.language
diff --git a/expert/browser/report.py b/expert/browser/report.py
index acf6279..395d5f3 100644
--- a/expert/browser/report.py
+++ b/expert/browser/report.py
@@ -190,6 +190,12 @@ class ResultsConceptView(ConceptView):
def getColumnRenderer(self, col):
return self.result_macros[col.renderer]
+ @Lazy
+ def downloadLink(self, format='csv'):
+ opt = self.options('download_' + format)
+ if opt:
+ return opt[0]
+
class EmbeddedResultsConceptView(ResultsConceptView):
diff --git a/expert/browser/results.pt b/expert/browser/results.pt
index b9d9ed1..62a9085 100644
--- a/expert/browser/results.pt
+++ b/expert/browser/results.pt
@@ -37,6 +37,13 @@
+
+
+
+
diff --git a/knowledge/qualification/browser.py b/knowledge/qualification/browser.py
index 186642f..5c0a061 100644
--- a/knowledge/qualification/browser.py
+++ b/knowledge/qualification/browser.py
@@ -26,7 +26,7 @@ from zope.app.pagetemplate import ViewPageTemplateFile
from zope.cachedescriptors.property import Lazy
from loops.browser.concept import ConceptView
-from loops.expert.browser.export import ReportConceptCSVExport
+from loops.expert.browser.export import ResultsConceptCSVExport
from loops.expert.browser.report import ResultsConceptView
from loops.organize.party import getPersonForUser
from loops.util import _
@@ -37,7 +37,7 @@ class Qualifications(ResultsConceptView):
reportName = 'qualification_overview'
-class QualificationsCSVExport(ReportConceptCSVExport):
+class QualificationsCSVExport(ResultsConceptCSVExport):
reportName = 'qualification_overview'
diff --git a/locales/de/LC_MESSAGES/loops.mo b/locales/de/LC_MESSAGES/loops.mo
index bcc801f..df8afd7 100644
Binary files a/locales/de/LC_MESSAGES/loops.mo and b/locales/de/LC_MESSAGES/loops.mo differ
diff --git a/locales/de/LC_MESSAGES/loops.po b/locales/de/LC_MESSAGES/loops.po
index 404556d..0b357ea 100644
--- a/locales/de/LC_MESSAGES/loops.po
+++ b/locales/de/LC_MESSAGES/loops.po
@@ -3,7 +3,7 @@ msgstr ""
"Project-Id-Version: 0.13.1\n"
"POT-Creation-Date: 2007-05-22 12:00 CET\n"
-"PO-Revision-Date: 2014-08-08 12:00 CET\n"
+"PO-Revision-Date: 2015-03-13 12:00 CET\n"
"Last-Translator: Helmut Merz \n"
"Language-Team: loops developers \n"
"MIME-Version: 1.0\n"
@@ -89,6 +89,11 @@ msgstr "Thema ändern"
msgid "Please correct the indicated errors."
msgstr "Bitte berichtigen Sie die angezeigten Fehler."
+# expert (reporting)
+
+msgid "Download Data"
+msgstr "Download als Excel-Datei"
+
# blog
msgid "Edit Blog Post..."
diff --git a/organize/work/report.py b/organize/work/report.py
index 0d7dd14..c3e90d1 100644
--- a/organize/work/report.py
+++ b/organize/work/report.py
@@ -32,7 +32,7 @@ from cybertools.organize.interfaces import IWorkItems
from cybertools.util.date import timeStamp2Date, timeStamp2ISO
from cybertools.util.jeep import Jeep
from loops.common import adapted, baseObject
-from loops.expert.browser.export import ReportConceptCSVExport
+from loops.expert.browser.export import ResultsConceptCSVExport
from loops.expert.browser.report import ReportConceptView
from loops.expert.field import Field, TargetField, DateField, StateField, \
TextField, HtmlTextField, UrlField
@@ -50,7 +50,7 @@ class WorkStatementView(ReportConceptView):
reportName = 'work_statement'
-class WorkStatementCSVExport(ReportConceptCSVExport):
+class WorkStatementCSVExport(ResultsConceptCSVExport):
reportName = 'work_statement'