CSV download improvements: button, file name, ...
This commit is contained in:
parent
e16f3e5ccf
commit
d05b3cd544
7 changed files with 27 additions and 8 deletions
|
@ -24,12 +24,13 @@ import csv
|
||||||
from cStringIO import StringIO
|
from cStringIO import StringIO
|
||||||
from zope.i18n import translate
|
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.interfaces import ILoopsObject
|
||||||
from loops.util import _
|
from loops.util import _
|
||||||
|
|
||||||
|
|
||||||
class ReportConceptCSVExport(ReportConceptView):
|
class ResultsConceptCSVExport(ResultsConceptView):
|
||||||
|
|
||||||
isToplevel = True
|
isToplevel = True
|
||||||
reportMode = 'export'
|
reportMode = 'export'
|
||||||
|
@ -38,7 +39,7 @@ class ReportConceptCSVExport(ReportConceptView):
|
||||||
encoding = 'UTF-8'
|
encoding = 'UTF-8'
|
||||||
|
|
||||||
def getFileName(self):
|
def getFileName(self):
|
||||||
return 'output'
|
return normalizeName(self.context.title)
|
||||||
|
|
||||||
def getColumnTitle(self, field):
|
def getColumnTitle(self, field):
|
||||||
lang = self.languageInfo.language
|
lang = self.languageInfo.language
|
||||||
|
|
|
@ -190,6 +190,12 @@ class ResultsConceptView(ConceptView):
|
||||||
def getColumnRenderer(self, col):
|
def getColumnRenderer(self, col):
|
||||||
return self.result_macros[col.renderer]
|
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):
|
class EmbeddedResultsConceptView(ResultsConceptView):
|
||||||
|
|
||||||
|
|
|
@ -37,6 +37,13 @@
|
||||||
|
|
||||||
<div metal:define-macro="results">
|
<div metal:define-macro="results">
|
||||||
<br />
|
<br />
|
||||||
|
<tal:download condition="item/downloadLink">
|
||||||
|
<div class="button">
|
||||||
|
<a i18n:translate=""
|
||||||
|
tal:attributes="href item/downloadLink">Download Data</a>
|
||||||
|
</div>
|
||||||
|
<br />
|
||||||
|
</tal:download>
|
||||||
<table class="report"
|
<table class="report"
|
||||||
tal:define="results reportView/results">
|
tal:define="results reportView/results">
|
||||||
<tr>
|
<tr>
|
||||||
|
|
|
@ -26,7 +26,7 @@ from zope.app.pagetemplate import ViewPageTemplateFile
|
||||||
from zope.cachedescriptors.property import Lazy
|
from zope.cachedescriptors.property import Lazy
|
||||||
|
|
||||||
from loops.browser.concept import ConceptView
|
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.expert.browser.report import ResultsConceptView
|
||||||
from loops.organize.party import getPersonForUser
|
from loops.organize.party import getPersonForUser
|
||||||
from loops.util import _
|
from loops.util import _
|
||||||
|
@ -37,7 +37,7 @@ class Qualifications(ResultsConceptView):
|
||||||
reportName = 'qualification_overview'
|
reportName = 'qualification_overview'
|
||||||
|
|
||||||
|
|
||||||
class QualificationsCSVExport(ReportConceptCSVExport):
|
class QualificationsCSVExport(ResultsConceptCSVExport):
|
||||||
|
|
||||||
reportName = 'qualification_overview'
|
reportName = 'qualification_overview'
|
||||||
|
|
||||||
|
|
Binary file not shown.
|
@ -3,7 +3,7 @@ msgstr ""
|
||||||
|
|
||||||
"Project-Id-Version: 0.13.1\n"
|
"Project-Id-Version: 0.13.1\n"
|
||||||
"POT-Creation-Date: 2007-05-22 12:00 CET\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 <helmutm@cy55.de>\n"
|
"Last-Translator: Helmut Merz <helmutm@cy55.de>\n"
|
||||||
"Language-Team: loops developers <helmutm@cy55.de>\n"
|
"Language-Team: loops developers <helmutm@cy55.de>\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
|
@ -89,6 +89,11 @@ msgstr "Thema ändern"
|
||||||
msgid "Please correct the indicated errors."
|
msgid "Please correct the indicated errors."
|
||||||
msgstr "Bitte berichtigen Sie die angezeigten Fehler."
|
msgstr "Bitte berichtigen Sie die angezeigten Fehler."
|
||||||
|
|
||||||
|
# expert (reporting)
|
||||||
|
|
||||||
|
msgid "Download Data"
|
||||||
|
msgstr "Download als Excel-Datei"
|
||||||
|
|
||||||
# blog
|
# blog
|
||||||
|
|
||||||
msgid "Edit Blog Post..."
|
msgid "Edit Blog Post..."
|
||||||
|
|
|
@ -32,7 +32,7 @@ from cybertools.organize.interfaces import IWorkItems
|
||||||
from cybertools.util.date import timeStamp2Date, timeStamp2ISO
|
from cybertools.util.date import timeStamp2Date, timeStamp2ISO
|
||||||
from cybertools.util.jeep import Jeep
|
from cybertools.util.jeep import Jeep
|
||||||
from loops.common import adapted, baseObject
|
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.browser.report import ReportConceptView
|
||||||
from loops.expert.field import Field, TargetField, DateField, StateField, \
|
from loops.expert.field import Field, TargetField, DateField, StateField, \
|
||||||
TextField, HtmlTextField, UrlField
|
TextField, HtmlTextField, UrlField
|
||||||
|
@ -50,7 +50,7 @@ class WorkStatementView(ReportConceptView):
|
||||||
reportName = 'work_statement'
|
reportName = 'work_statement'
|
||||||
|
|
||||||
|
|
||||||
class WorkStatementCSVExport(ReportConceptCSVExport):
|
class WorkStatementCSVExport(ResultsConceptCSVExport):
|
||||||
|
|
||||||
reportName = 'work_statement'
|
reportName = 'work_statement'
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue