meeting minutes: generate Word document by embedding content in .mht file
This commit is contained in:
parent
c029e98878
commit
1b8146b683
4 changed files with 54 additions and 48 deletions
|
@ -526,6 +526,12 @@ div.comment {
|
||||||
background-color: #eeeeff;
|
background-color: #eeeeff;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tr.agenda-item-headline td,
|
||||||
|
tr.agenda-item-headline td a,
|
||||||
|
tr.agenda-item-headline td a[href] {
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
/* dojo stuff */
|
/* dojo stuff */
|
||||||
|
|
||||||
.dijitDialog {
|
.dijitDialog {
|
||||||
|
|
|
@ -115,6 +115,7 @@
|
||||||
name="meeting_minutes.doc"
|
name="meeting_minutes.doc"
|
||||||
for="loops.interfaces.IConceptSchema"
|
for="loops.interfaces.IConceptSchema"
|
||||||
class="loops.organize.work.meeting.MeetingMinutesDocument"
|
class="loops.organize.work.meeting.MeetingMinutesDocument"
|
||||||
|
attribute="embed"
|
||||||
permission="zope.View" />
|
permission="zope.View" />
|
||||||
|
|
||||||
<!-- setup -->
|
<!-- setup -->
|
||||||
|
|
|
@ -25,39 +25,31 @@
|
||||||
reportView nocall:item;
|
reportView nocall:item;
|
||||||
results reportView/results;
|
results reportView/results;
|
||||||
fields results/context/fields">
|
fields results/context/fields">
|
||||||
<metal:page use-macro="item/macros/page_header" />
|
<div class ="WordSection1">
|
||||||
<div class ="Section2">
|
<div align="center">
|
||||||
<table class="report" width="100%"
|
<table class="MsoTableGrid" width="98%" cellpadding="0" cellspacing="0"
|
||||||
tal:define="showCheckboxes nothing">
|
tal:define="showCheckboxes nothing">
|
||||||
<metal:header use-macro="item/macros/header" />
|
<metal:header use-macro="item/macros/header" />
|
||||||
<metal:header use-macro="item/macros/rows" />
|
<metal:header use-macro="item/macros/rows" />
|
||||||
</table>
|
</table>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</metal:doc>
|
</metal:doc>
|
||||||
|
|
||||||
|
|
||||||
<metal:page define-macro="page_header">
|
|
||||||
<table width="100%">
|
|
||||||
<tr>
|
|
||||||
<td> </td>
|
|
||||||
<td><h1 i18n:translate="">Meeting Minutes</h1></td>
|
|
||||||
<td><span i18n:translate="">Page</span> </td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</metal:page>
|
|
||||||
|
|
||||||
|
|
||||||
<metal:header define-macro="header"
|
<metal:header define-macro="header"
|
||||||
tal:define="row results/first">
|
tal:define="row results/first">
|
||||||
<tr>
|
<tr style="background-color: #777777">
|
||||||
<td colspan="4">
|
<td colspan="4">
|
||||||
<div tal:define="col fields/eventTitle">
|
<div tal:define="col fields/eventTitle"
|
||||||
|
class="MinutesAndAgendaTitles">
|
||||||
<metal:col use-macro="python:item.getColumnRenderer(col)" /></div>
|
<metal:col use-macro="python:item.getColumnRenderer(col)" /></div>
|
||||||
<div tal:define="col fields/eventDescription">
|
<div tal:define="col fields/eventDescription"
|
||||||
|
class="MinutesAndAgendaTitles">
|
||||||
<metal:col use-macro="python:item.getColumnRenderer(col)" /></div>
|
<metal:col use-macro="python:item.getColumnRenderer(col)" /></div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr style="background-color: #eeeeee">
|
||||||
<td colspan="2">
|
<td colspan="2">
|
||||||
<span tal:define="col fields/eventDate">
|
<span tal:define="col fields/eventDate">
|
||||||
<metal:col use-macro="python:item.getColumnRenderer(col)" /></span>
|
<metal:col use-macro="python:item.getColumnRenderer(col)" /></span>
|
||||||
|
@ -100,7 +92,8 @@
|
||||||
<td style="width: 12%"> </td>
|
<td style="width: 12%"> </td>
|
||||||
</tr>
|
</tr>
|
||||||
<tal:task repeat="row results">
|
<tal:task repeat="row results">
|
||||||
<tr>
|
<tr class="agenda-item-headline"
|
||||||
|
style="background-color: #777777">
|
||||||
<td tal:condition="showCheckboxes"
|
<td tal:condition="showCheckboxes"
|
||||||
style="border: 1px solid grey">
|
style="border: 1px solid grey">
|
||||||
<input type="checkbox" checked
|
<input type="checkbox" checked
|
||||||
|
@ -110,36 +103,39 @@
|
||||||
style="border: 1px solid grey"
|
style="border: 1px solid grey"
|
||||||
tal:define="col report/fields/title"
|
tal:define="col report/fields/title"
|
||||||
tal:attributes="class col/cssClass">
|
tal:attributes="class col/cssClass">
|
||||||
<metal:column use-macro="python:
|
<div class="MinutesAndAgendaTitles">
|
||||||
reportView.getColumnRenderer(col)" />
|
<metal:column use-macro="python:
|
||||||
|
reportView.getColumnRenderer(col)" /></div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr tal:repeat="colname python:
|
<tal:item repeat="colname python:
|
||||||
('responsible', 'description', 'discussion', 'consequences')">
|
('responsible', 'description', 'discussion', 'consequences')">
|
||||||
<tal:field define="col report/fields/?colname">
|
<tr>
|
||||||
<td style="border: 1px solid grey"
|
<tal:field define="col report/fields/?colname">
|
||||||
tal:condition="showCheckboxes"></td>
|
<td style="border: 1px solid grey"
|
||||||
<td style="border: 1px solid grey; width: 15%"
|
tal:condition="showCheckboxes"></td>
|
||||||
tal:content="col/title"
|
<td style="border: 1px solid grey; width: 15%"
|
||||||
i18n:translate=""></td>
|
tal:content="col/title"
|
||||||
<td colspan="3"
|
i18n:translate=""></td>
|
||||||
style="border: 1px solid grey; width: 85%"
|
<td colspan="3"
|
||||||
tal:attributes="class col/cssClass">
|
style="border: 1px solid grey; width: 85%"
|
||||||
<metal:column use-macro="python:
|
tal:attributes="class col/cssClass">
|
||||||
reportView.getColumnRenderer(col)" />
|
<metal:column use-macro="python:
|
||||||
</td>
|
reportView.getColumnRenderer(col)" />
|
||||||
|
</td>
|
||||||
</tal:field>
|
</tal:field>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
</tal:item>
|
||||||
<th style="border: 1px solid grey"
|
<tr style="background-color: #eeeeee">
|
||||||
tal:condition="showCheckboxes"></th>
|
<td style="border: 1px solid grey"
|
||||||
<th colspan="2"
|
tal:condition="showCheckboxes"></td>
|
||||||
|
<td colspan="2"
|
||||||
style="border: 1px solid grey; width: 68%"
|
style="border: 1px solid grey; width: 68%"
|
||||||
i18n:translate="">header_workitems</th>
|
i18n:translate="">header_workitems</td>
|
||||||
<th style="border: 1px solid grey; width: 20%"
|
<td style="border: 1px solid grey; width: 20%"
|
||||||
i18n:translate="">header_responsible</th>
|
i18n:translate="">header_responsible</td>
|
||||||
<th style="border: 1px solid grey; width: 12%"
|
<td style="border: 1px solid grey; width: 12%; text-align: center"
|
||||||
i18n:translate="">header_deadline</th>
|
i18n:translate="">header_deadline</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tal:workitems define="col report/fields/workItems">
|
<tal:workitems define="col report/fields/workItems">
|
||||||
<metal:column use-macro="python:
|
<metal:column use-macro="python:
|
||||||
|
|
|
@ -71,6 +71,9 @@ class MeetingMinutesDocument(WordDocument, MeetingMinutes):
|
||||||
def __init__(self, context, request):
|
def __init__(self, context, request):
|
||||||
MeetingMinutes.__init__(self, context, request)
|
MeetingMinutes.__init__(self, context, request)
|
||||||
|
|
||||||
|
def __call__(self, *args, **kw):
|
||||||
|
return self.embed(*args, **kw)
|
||||||
|
|
||||||
@Lazy
|
@Lazy
|
||||||
def macros(self):
|
def macros(self):
|
||||||
return meeting_template.macros
|
return meeting_template.macros
|
||||||
|
|
Loading…
Add table
Reference in a new issue