provide generation of meeting minutes Word document
This commit is contained in:
		
							parent
							
								
									59bb401b8f
								
							
						
					
					
						commit
						4447ea04ef
					
				
					 5 changed files with 47 additions and 0 deletions
				
			
		
										
											Binary file not shown.
										
									
								
							|  | @ -293,6 +293,9 @@ msgstr "Besprechungsprotokoll anzeigen..." | ||||||
| msgid "Show meeting minutes for this object." | msgid "Show meeting minutes for this object." | ||||||
| msgstr "Besprechungsprotokoll für dieses Objekt anzeigen." | msgstr "Besprechungsprotokoll für dieses Objekt anzeigen." | ||||||
| 
 | 
 | ||||||
|  | msgid "Download Meeting Minutes" | ||||||
|  | msgstr "Besprechungsprotokoll generieren" | ||||||
|  | 
 | ||||||
| msgid "Task/Action" | msgid "Task/Action" | ||||||
| msgstr "Aufgabe" | msgstr "Aufgabe" | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -103,6 +103,12 @@ | ||||||
|       class="loops.organize.work.meeting.MeetingMinutes" |       class="loops.organize.work.meeting.MeetingMinutes" | ||||||
|       permission="zope.View" /> |       permission="zope.View" /> | ||||||
| 
 | 
 | ||||||
|  |   <browser:page | ||||||
|  |       name="meeting_minutes.doc" | ||||||
|  |       for="loops.interfaces.IConceptSchema" | ||||||
|  |       class="loops.organize.work.meeting.MeetingMinutesDocument" | ||||||
|  |       permission="zope.View" /> | ||||||
|  | 
 | ||||||
|   <!-- setup --> |   <!-- setup --> | ||||||
| 
 | 
 | ||||||
|   <zope:adapter factory="loops.organize.work.setup.SetupManager" |   <zope:adapter factory="loops.organize.work.setup.SetupManager" | ||||||
|  |  | ||||||
|  | @ -8,6 +8,20 @@ | ||||||
|     <metal:block use-macro="view/concept_macros/concepttitle" /> |     <metal:block use-macro="view/concept_macros/concepttitle" /> | ||||||
|     <metal:block use-macro="view/concept_macros/conceptfields" /> |     <metal:block use-macro="view/concept_macros/conceptfields" /> | ||||||
|   </div><br /> |   </div><br /> | ||||||
|  |   <span class="button" | ||||||
|  |         tal:condition="item/reportDownload"> | ||||||
|  |     <a target="_blank" | ||||||
|  |        tal:attributes="href string:${item/targetUrl}/${item/reportDownload}" | ||||||
|  |        i18n:translate="">Download Meeting Minutes</a></span> | ||||||
|  |   <br />  | ||||||
|  |   <div metal:use-macro="reportView/resultsRenderer" /> | ||||||
|  | </div> | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | <div metal:define-macro="document" | ||||||
|  |      tal:define="item nocall:view; | ||||||
|  |                  report item/reportInstance; | ||||||
|  |                  reportView nocall:item"> | ||||||
|   <div metal:use-macro="reportView/resultsRenderer" /> |   <div metal:use-macro="reportView/resultsRenderer" /> | ||||||
| </div> | </div> | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -24,6 +24,7 @@ from zope.app.pagetemplate import ViewPageTemplateFile | ||||||
| from zope.cachedescriptors.property import Lazy | from zope.cachedescriptors.property import Lazy | ||||||
| 
 | 
 | ||||||
| from cybertools.browser.action import actions | from cybertools.browser.action import actions | ||||||
|  | from cybertools.docgen.base import WordDocument | ||||||
| from loops.browser.action import TargetAction | from loops.browser.action import TargetAction | ||||||
| from loops.expert.browser.report import ResultsConceptView | from loops.expert.browser.report import ResultsConceptView | ||||||
| from loops.util import _ | from loops.util import _ | ||||||
|  | @ -41,6 +42,7 @@ actions.register('meeting_minutes', 'portlet', TargetAction, | ||||||
| class MeetingMinutes(ResultsConceptView): | class MeetingMinutes(ResultsConceptView): | ||||||
| 
 | 
 | ||||||
|     reportName = 'meeting_minutes' |     reportName = 'meeting_minutes' | ||||||
|  |     reportDownload = 'meeting_minutes.doc' | ||||||
| 
 | 
 | ||||||
|     @Lazy |     @Lazy | ||||||
|     def meeting_macros(self): |     def meeting_macros(self): | ||||||
|  | @ -59,3 +61,25 @@ class MeetingMinutes(ResultsConceptView): | ||||||
|         if renderer == 'subreport': |         if renderer == 'subreport': | ||||||
|             return self.meeting_macros[renderer] |             return self.meeting_macros[renderer] | ||||||
|         return self.result_macros[renderer] |         return self.result_macros[renderer] | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class MeetingMinutesDocument(WordDocument, MeetingMinutes): | ||||||
|  | 
 | ||||||
|  |     isToplevel = True | ||||||
|  | 
 | ||||||
|  |     def __init__(self, context, request): | ||||||
|  |         MeetingMinutes.__init__(self, context, request) | ||||||
|  | 
 | ||||||
|  |     @Lazy | ||||||
|  |     def macros(self): | ||||||
|  |         return meeting_template.macros | ||||||
|  | 
 | ||||||
|  |     @Lazy | ||||||
|  |     def reportRenderer(self): | ||||||
|  |         return self.macros['document'] | ||||||
|  | 
 | ||||||
|  |     @Lazy | ||||||
|  |     def content(self): | ||||||
|  |         return self.reportRenderer | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue