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'