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." 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"

View file

@ -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"

View file

@ -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 />&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 metal:use-macro="reportView/resultsRenderer" />
</div> </div>

View file

@ -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