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