provide generation of meeting minutes Word document

This commit is contained in:
Helmut Merz 2012-06-10 18:04:45 +02:00
parent 59bb401b8f
commit 4447ea04ef
5 changed files with 47 additions and 0 deletions

Binary file not shown.

View file

@ -293,6 +293,9 @@ msgstr "Besprechungsprotokoll anzeigen..."
msgid "Show meeting minutes for this object."
msgstr "Besprechungsprotokoll für dieses Objekt anzeigen."
msgid "Download Meeting Minutes"
msgstr "Besprechungsprotokoll generieren"
msgid "Task/Action"
msgstr "Aufgabe"

View file

@ -103,6 +103,12 @@
class="loops.organize.work.meeting.MeetingMinutes"
permission="zope.View" />
<browser:page
name="meeting_minutes.doc"
for="loops.interfaces.IConceptSchema"
class="loops.organize.work.meeting.MeetingMinutesDocument"
permission="zope.View" />
<!-- setup -->
<zope:adapter factory="loops.organize.work.setup.SetupManager"

View file

@ -8,6 +8,20 @@
<metal:block use-macro="view/concept_macros/concepttitle" />
<metal:block use-macro="view/concept_macros/conceptfields" />
</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 />&nbsp;
<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>

View file

@ -24,6 +24,7 @@ from zope.app.pagetemplate import ViewPageTemplateFile
from zope.cachedescriptors.property import Lazy
from cybertools.browser.action import actions
from cybertools.docgen.base import WordDocument
from loops.browser.action import TargetAction
from loops.expert.browser.report import ResultsConceptView
from loops.util import _
@ -41,6 +42,7 @@ actions.register('meeting_minutes', 'portlet', TargetAction,
class MeetingMinutes(ResultsConceptView):
reportName = 'meeting_minutes'
reportDownload = 'meeting_minutes.doc'
@Lazy
def meeting_macros(self):
@ -59,3 +61,25 @@ class MeetingMinutes(ResultsConceptView):
if renderer == 'subreport':
return self.meeting_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