Overview The subproject live template is used to store important subproject details, such as start/end dates, milestones and related documents.
Using Scaffolding elements, we will build a form for storing project data similar to the one above .
What's in this guide Under each section is the source of that particular template. Alternatively, the full template is available in the last section.
Creating a Template In the confluence side bar
go to Space tools
select Content Tools
In the User Created Templates section
When creating a field with predefined options, choose
Subproject Details Project Title Name the first row Title of Project and insert a Reporting block as below.
Project Type In a new row
Next, create a dropdown menu with some predefined categories to describe the nature of the project.
Each list-option is an entry in the dropdown menu.
Project Status Next
create a row for Project Status
create a list-data block
nest the list-data with list-option blocks
insert the Status macro to customise selection items
Project Lead Next
For the groups parameter
Project Members Now for Project members
Project Dates Next
Days Left: if-else statements and parameter injection Finally, create a simple if-else statement that will display the days left for ongoing projects or display a completed message if the project is over.
With report-eval , we can do calculations on predefined variables, suppliers or Scaffolding data blocks.
In the report-eval block, we will perform the calculation of Days Left using parameter injection
For the report-eval calculation formula, type
In the first part
Next
The second part
Then
Together, the above formula means
convert both end date and current date into milliseconds
get the difference (in milliseconds)
convert back to days with division
The report-eval variable can then be accessed via the Variable supplier. The key is the name of the report-eval block (variable:Days Left
).
To create a report-block macro for the if-else statement , in the report-block macro
Next
Inside the report-body block
Now create the 'else' statement
This displays a report-block as below.
Subproject details livetemplate Source code
<table class="relative-table wrapped" style="width: 37.7372%;">
<colgroup>
<col style="width: 36.1757%;"/>
<col style="width: 63.5228%;"/>
</colgroup>
<tbody>
<tr>
<th>Title of project</th>
<td>
<div class="content-wrapper">
<p>
<ac:structured-macro ac:macro-id="1eb06ca4-9a7f-4946-9c72-6f493f8f7f8f" ac:name="report-info" ac:schema-version="1">
<ac:parameter ac:name="">content:title</ac:parameter>
</ac:structured-macro>
</p>
</div>
</td>
</tr>
<tr>
<th colspan="1">Project type</th>
<td colspan="1">
<div class="content-wrapper">
<p>
<ac:structured-macro ac:macro-id="06461ea1-55c1-4dad-bbc0-bb49b59e26b4" ac:name="list-data" ac:schema-version="1">
<ac:parameter ac:name="name">Project Type</ac:parameter>
<ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
<ac:rich-text-body>
<ac:structured-macro ac:macro-id="95e3e9b0-111c-49a3-9b38-c82e97e2afc7" ac:name="list-option" ac:schema-version="1">
<ac:parameter ac:name="sortValue">1</ac:parameter>
<ac:parameter ac:name="label">Equipment</ac:parameter>
<ac:parameter ac:name="value">Equipment</ac:parameter>
<ac:rich-text-body>
<p> Equipment</p>
</ac:rich-text-body>
</ac:structured-macro>
<ac:structured-macro ac:macro-id="27e84db2-015a-41e9-9513-360260d38343" ac:name="list-option" ac:schema-version="1">
<ac:parameter ac:name="sortValue">2</ac:parameter>
<ac:parameter ac:name="label">Human Resources</ac:parameter>
<ac:parameter ac:name="value">Human Resources</ac:parameter>
<ac:rich-text-body>
<p>Human Resources</p>
</ac:rich-text-body>
</ac:structured-macro>
<ac:structured-macro ac:macro-id="eebd563b-e845-4f89-a08b-773e9fb1bdd4" ac:name="list-option" ac:schema-version="1">
<ac:parameter ac:name="sortValue">3</ac:parameter>
<ac:parameter ac:name="label">Marketing</ac:parameter>
<ac:parameter ac:name="value">Marketing</ac:parameter>
<ac:rich-text-body>
<p>Marketing</p>
</ac:rich-text-body>
</ac:structured-macro>
<ac:structured-macro ac:macro-id="04eeed5f-dfef-492b-bbe4-ffec0ee09d94" ac:name="list-option" ac:schema-version="1">
<ac:parameter ac:name="sortValue">4</ac:parameter>
<ac:parameter ac:name="label">Software</ac:parameter>
<ac:parameter ac:name="value">Software</ac:parameter>
<ac:rich-text-body>
<p>Software</p>
</ac:rich-text-body>
</ac:structured-macro>
<ac:structured-macro ac:macro-id="3b4806a9-6e50-4d52-9393-91d79b922e15" ac:name="list-option" ac:schema-version="1">
<ac:parameter ac:name="sortValue">5</ac:parameter>
<ac:parameter ac:name="label">Others</ac:parameter>
<ac:parameter ac:name="value">Others</ac:parameter>
<ac:rich-text-body>
<p>Others</p>
</ac:rich-text-body>
</ac:structured-macro>
</ac:rich-text-body>
</ac:structured-macro>
</p>
</div>
</td>
</tr>
<tr>
<th colspan="1">Project status</th>
<td colspan="1">
<div class="content-wrapper">
<p>
<ac:structured-macro ac:macro-id="7b9af378-8611-4bc1-86df-a576367a655b" ac:name="list-data" ac:schema-version="1">
<ac:parameter ac:name="name">Project Status</ac:parameter>
<ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
<ac:rich-text-body>
<ac:structured-macro ac:macro-id="bc5aef71-f6de-4cf3-8099-86feccbbea00" ac:name="list-option" ac:schema-version="1">
<ac:parameter ac:name="sortValue">1</ac:parameter>
<ac:parameter ac:name="label">Unstarted</ac:parameter>
<ac:parameter ac:name="value">Unstarted</ac:parameter>
<ac:rich-text-body>
<p>
<ac:structured-macro ac:macro-id="1dc308a4-d0b0-4611-a03a-87fa7f8141ce" ac:name="status" ac:schema-version="1">
<ac:parameter ac:name="colour">Grey</ac:parameter>
<ac:parameter ac:name="title">Unstarted</ac:parameter>
<ac:parameter ac:name=""/>
</ac:structured-macro>
</p>
</ac:rich-text-body>
</ac:structured-macro>
<ac:structured-macro ac:macro-id="5053a7df-450f-4b38-ad46-bad0111b4186" ac:name="list-option" ac:schema-version="1">
<ac:parameter ac:name="sortValue">2</ac:parameter>
<ac:parameter ac:name="label">In progress</ac:parameter>
<ac:parameter ac:name="value">In progress</ac:parameter>
<ac:rich-text-body>
<p>
<ac:structured-macro ac:macro-id="27c86cda-4642-4289-b044-05efd23bcd3f" ac:name="status" ac:schema-version="1">
<ac:parameter ac:name="colour">Yellow</ac:parameter>
<ac:parameter ac:name="title">In Progress</ac:parameter>
<ac:parameter ac:name=""/>
</ac:structured-macro>
</p>
</ac:rich-text-body>
</ac:structured-macro>
<ac:structured-macro ac:macro-id="d9124413-7181-4b77-ac38-3e72539eb4d2" ac:name="list-option" ac:schema-version="1">
<ac:parameter ac:name="sortValue">3</ac:parameter>
<ac:parameter ac:name="label">Awaiting approval</ac:parameter>
<ac:parameter ac:name="value">Awaiting approval</ac:parameter>
<ac:rich-text-body>
<p>
<ac:structured-macro ac:macro-id="e8fa6644-a9fe-486e-9973-47d3ba0f1b1f" ac:name="status" ac:schema-version="1">
<ac:parameter ac:name="colour">Blue</ac:parameter>
<ac:parameter ac:name="title">Awaiting Approval</ac:parameter>
<ac:parameter ac:name=""/>
</ac:structured-macro>
</p>
</ac:rich-text-body>
</ac:structured-macro>
<ac:structured-macro ac:macro-id="d401ff0b-6e1e-4e8d-85a8-f79c9dc53a79" ac:name="list-option" ac:schema-version="1">
<ac:parameter ac:name="sortValue">4</ac:parameter>
<ac:parameter ac:name="label">Completed</ac:parameter>
<ac:parameter ac:name="value">Completed</ac:parameter>
<ac:rich-text-body>
<p>
<ac:structured-macro ac:macro-id="18c4d013-92c7-4465-99b0-ac373d968a5c" ac:name="status" ac:schema-version="1">
<ac:parameter ac:name="colour">Green</ac:parameter>
<ac:parameter ac:name="title">Completed</ac:parameter>
<ac:parameter ac:name=""/>
</ac:structured-macro> </p>
</ac:rich-text-body>
</ac:structured-macro>
</ac:rich-text-body>
</ac:structured-macro>
</p>
</div>
</td>
</tr>
<tr>
<th>Project leader</th>
<td>
<div class="content-wrapper">
<p>
<ac:structured-macro ac:macro-id="721b955c-610a-4a26-997f-18e9da0339fd" ac:name="list-data" ac:schema-version="1">
<ac:parameter ac:name="name">Project Leader</ac:parameter>
<ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
<ac:rich-text-body>
<ac:structured-macro ac:macro-id="399b7252-b502-4f71-b6ad-9f3c6e3d98a5" ac:name="user-options" ac:schema-version="1">
<ac:parameter ac:name="groups">pmd-project-leaders</ac:parameter>
<ac:rich-text-body>
<p> </p>
</ac:rich-text-body>
</ac:structured-macro>
</ac:rich-text-body>
</ac:structured-macro>
</p>
</div>
</td>
</tr>
<tr>
<th>Project members</th>
<td>
<div class="content-wrapper">
<p>
<ac:structured-macro ac:macro-id="86803746-577d-420f-b6cf-47fa43a0c9ea" ac:name="list-data" ac:schema-version="1">
<ac:parameter ac:name="multiple">true</ac:parameter>
<ac:parameter ac:name="name">Project Members</ac:parameter>
<ac:parameter ac:name="type">auto complete</ac:parameter>
<ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
<ac:parameter ac:name="blankText">No members</ac:parameter>
<ac:rich-text-body>
<ac:structured-macro ac:macro-id="bb91a8ee-a1cb-41ab-ab06-8c967c7ac7c7" ac:name="user-options" ac:schema-version="1">
<ac:parameter ac:name="groups">pmd-project-members</ac:parameter>
<ac:rich-text-body>
<p> </p>
</ac:rich-text-body>
</ac:structured-macro>
</ac:rich-text-body>
</ac:structured-macro>
</p>
</div>
</td>
</tr>
<tr>
<th>Start date</th>
<td>
<div class="content-wrapper">
<p>
<ac:structured-macro ac:macro-id="b4b0ca7a-ec0c-4d7d-ae2c-58ce87ca0fe9" ac:name="date-data" ac:schema-version="1">
<ac:parameter ac:name="format">dd MMMM yyyy</ac:parameter>
<ac:parameter ac:name="name">Project Start Date</ac:parameter>
<ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
<ac:plain-text-body><![CDATA[ ]]></ac:plain-text-body>
</ac:structured-macro>
</p>
</div>
</td>
</tr>
<tr>
<th>End date</th>
<td>
<div class="content-wrapper">
<p>
<ac:structured-macro ac:macro-id="f6f0a856-87d6-4aff-a616-e446a78d9bea" ac:name="date-data" ac:schema-version="1">
<ac:parameter ac:name="format">dd MMMM yyyy</ac:parameter>
<ac:parameter ac:name="name">Project End Date</ac:parameter>
<ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
<ac:plain-text-body><![CDATA[ ]]></ac:plain-text-body>
</ac:structured-macro>
</p>
</div>
</td>
</tr>
<tr>
<th colspan="1">Days left</th>
<td colspan="1">
<div class="content-wrapper">
<p>
<ac:structured-macro ac:macro-id="e1062e71-f8d0-4427-8882-e44dac773b66" ac:name="report-eval" ac:schema-version="1">
<ac:parameter ac:name="default">0</ac:parameter>
<ac:parameter ac:name="hidden">true</ac:parameter>
<ac:parameter ac:name="format">##,00</ac:parameter>
<ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
<ac:parameter ac:name="">Days Left</ac:parameter>
<ac:plain-text-body><![CDATA[(%data:Project End Date > date:milliseconds% - %global:current date > date:milliseconds%)/1000/60/60/24]]></ac:plain-text-body>
</ac:structured-macro>
<ac:structured-macro ac:macro-id="cb311386-9493-44a6-af29-ab7c190ed0c1" ac:name="report-block" ac:schema-version="1">
<ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
<ac:rich-text-body>
<ac:structured-macro ac:macro-id="4e7c657c-0c99-4c95-b343-8f3f58fe4c05" ac:name="local-reporter" ac:schema-version="1">
<ac:parameter ac:name="">@self</ac:parameter>
<ac:rich-text-body> </ac:rich-text-body>
</ac:structured-macro>
<p>
<ac:structured-macro ac:macro-id="8381c68f-f058-47c6-839f-2a0f47f460cb" ac:name="number-filter" ac:schema-version="1">
<ac:parameter ac:name="aboveValue">0</ac:parameter>
<ac:parameter ac:name="">variable:Days Left</ac:parameter>
</ac:structured-macro>
</p>
<ac:structured-macro ac:macro-id="af877eef-0630-442c-adf7-dc516a17a520" ac:name="report-body" ac:schema-version="1">
<ac:parameter ac:name="injected">true</ac:parameter>
<ac:rich-text-body>
<p>%variable:Days Left > number:#% day(s)</p>
</ac:rich-text-body>
</ac:structured-macro>
<p>
<ac:structured-macro ac:macro-id="20f5798d-143e-41d8-9569-dd0564fd327c" ac:name="number-filter" ac:schema-version="1">
<ac:parameter ac:name="belowValue">0</ac:parameter>
<ac:parameter ac:name="">variable:Days Left</ac:parameter>
</ac:structured-macro>
</p>
<ac:structured-macro ac:macro-id="90136fad-3ffa-45ae-bfa9-17fd2df2f8ea" ac:name="report-body" ac:schema-version="1">
<ac:rich-text-body>
<p>This project has ended</p>
</ac:rich-text-body>
</ac:structured-macro>
</ac:rich-text-body>
</ac:structured-macro>
</p>
</div>
</td>
</tr>
</tbody>
</table>
Milestones Now create a form that tabulates all the related milestones of each subproject, along with the due date and budget.
Add a milestones table Within the table-data macro
Select the Heading Row button so that the table headers are horizontal.
Milestone ID Milestone name Choose line
or area
for the type, depending on the length of milestone names.
Due date Enter dd MMMM yyyy
for the Display Format.
Status name the fourth column Status
insert a list-data macro in the second row
nest the list-data macro with some list-option macro blocks
As in the previous section, Project Details , make a dropdown menu to choose the milestone status.
Estimated time Additionally, check Allow Decimal Values if you'd like users to input for example, 2.5 hours .
After the number-data block
Actual time Additionally, check Allow Decimal Values if you'd like users to input for example, 2.5 hours .
After the number-data block
Time difference In the eval-data block
After the number-data block
Budget name the eighth column Budget
insert a number-data block (to allow user to input the budget allocated for a particular milestone)
edit the number-data block to
Expenditure name the ninth column Actual expenditure
insert a number-data block (to allow user to input the actual amount spent on a particular milestone)
edit the number-data block to
Expenditure Difference name the last column Expenditure difference
insert an eval-data block (to calculate the difference between actual expenditure and budget allocation)
edit the eval-data block to
In the eval-data block
Total Budget and Expenditure After the table, add two eval-data blocks to calculate the sum of all milestone's budget allocation and actual expenditure.
Subproject milestones livetemplate
Source code...
<h2>Milestones</h2>
<ac:structured-macro ac:macro-id="02300977-32f9-47f8-b823-7bd706ddde57" ac:name="table-data" ac:schema-version="1">
<ac:parameter ac:name="name">Project Milestones</ac:parameter>
<ac:parameter ac:name="initialRows">1</ac:parameter>
<ac:rich-text-body>
<table class="relative-table wrapped" style="width: 100.0%;">
<colgroup>
<col/>
<col style="width: 16.3506%;"/>
<col style="width: 16.3506%;"/>
<col style="width: 18.24%;"/>
<col style="width: 16.3506%;"/>
<col style="width: 16.3506%;"/>
<col style="width: 16.3506%;"/>
<col/>
<col/>
<col/>
</colgroup>
<tbody>
<tr>
<th colspan="1">ID</th>
<th>
<p>Name</p>
</th>
<th colspan="1">Due Date</th>
<th colspan="1">Status</th>
<th colspan="1">
<span>Estimated time</span>
</th>
<th>Actual time</th>
<th>Time difference</th>
<th colspan="1">Budget</th>
<th colspan="1">Actual expenditure</th>
<th colspan="1">Expenditure Difference</th>
</tr>
<tr>
<td colspan="1">
<div class="content-wrapper">
<p>
<ac:structured-macro ac:macro-id="48cbccf4-7374-494a-ae3a-6a6ddeaa70ef" ac:name="number-data" ac:schema-version="1">
<ac:parameter ac:name="minValue">1</ac:parameter>
<ac:parameter ac:name="name">Milestone ID</ac:parameter>
<ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
<ac:plain-text-body><![CDATA[ ]]></ac:plain-text-body>
</ac:structured-macro>
</p>
</div>
</td>
<td colspan="1">
<div class="content-wrapper">
<p>
<ac:structured-macro ac:macro-id="5f5a0300-b130-4e34-a483-f95d8aeca74f" ac:name="text-data" ac:schema-version="1">
<ac:parameter ac:name="name">Name</ac:parameter>
<ac:parameter ac:name="type">line</ac:parameter>
<ac:parameter ac:name="content">text</ac:parameter>
<ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
<ac:rich-text-body>
<p> </p>
</ac:rich-text-body>
</ac:structured-macro>
</p>
</div>
</td>
<td colspan="1">
<div class="content-wrapper">
<p>
<ac:structured-macro ac:macro-id="0ae3bac1-4a49-4a48-9804-89232ba09483" ac:name="date-data" ac:schema-version="1">
<ac:parameter ac:name="format">dd MMMM yyyy</ac:parameter>
<ac:parameter ac:name="name">Date</ac:parameter>
<ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
<ac:plain-text-body><![CDATA[ ]]></ac:plain-text-body>
</ac:structured-macro>
</p>
</div>
</td>
<td colspan="1">
<div class="content-wrapper">
<p>
<ac:structured-macro ac:macro-id="b201093c-948b-49d5-94b9-6791ff312376" ac:name="list-data" ac:schema-version="1">
<ac:parameter ac:name="name">Status</ac:parameter>
<ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
<ac:rich-text-body>
<ac:structured-macro ac:macro-id="1eb3887e-33ed-4191-b0fd-310c920633b9" ac:name="list-option" ac:schema-version="1">
<ac:parameter ac:name="sortValue">1</ac:parameter>
<ac:parameter ac:name="label">Unstarted</ac:parameter>
<ac:parameter ac:name="value">Unstarted</ac:parameter>
<ac:rich-text-body>
<p>
<ac:structured-macro ac:macro-id="a7a95a35-01f9-44a0-a66e-674bb4a28b08" ac:name="status" ac:schema-version="1">
<ac:parameter ac:name="colour">Grey</ac:parameter>
<ac:parameter ac:name="title">Unstarted</ac:parameter>
<ac:parameter ac:name=""/>
</ac:structured-macro>
</p>
</ac:rich-text-body>
</ac:structured-macro>
<ac:structured-macro ac:macro-id="18967985-f49f-45e4-bd54-2a0103a7d0e9" ac:name="list-option" ac:schema-version="1">
<ac:parameter ac:name="sortValue">2</ac:parameter>
<ac:parameter ac:name="label">In progress</ac:parameter>
<ac:parameter ac:name="value">In progress</ac:parameter>
<ac:rich-text-body>
<p> <ac:structured-macro ac:macro-id="d5094294-8d8a-4a40-aa81-1c763c3bc5fb" ac:name="status" ac:schema-version="1">
<ac:parameter ac:name="colour">Yellow</ac:parameter>
<ac:parameter ac:name="title">In Progress</ac:parameter>
<ac:parameter ac:name=""/>
</ac:structured-macro>
</p>
</ac:rich-text-body>
</ac:structured-macro>
<ac:structured-macro ac:macro-id="88e7dfd5-da14-45c9-9128-b85b7a99f439" ac:name="list-option" ac:schema-version="1">
<ac:parameter ac:name="sortValue">3</ac:parameter>
<ac:parameter ac:name="label">Awaiting approval</ac:parameter>
<ac:parameter ac:name="value">Awaiting approval</ac:parameter>
<ac:rich-text-body>
<p>
<ac:structured-macro ac:macro-id="e9907196-c52b-49c4-b82c-c28df13f1149" ac:name="status" ac:schema-version="1">
<ac:parameter ac:name="colour">Blue</ac:parameter>
<ac:parameter ac:name="title">Awaiting Approval</ac:parameter>
<ac:parameter ac:name=""/>
</ac:structured-macro>
</p>
</ac:rich-text-body>
</ac:structured-macro>
<ac:structured-macro ac:macro-id="bc457abe-1f19-46ad-9d59-7630f4105588" ac:name="list-option" ac:schema-version="1">
<ac:parameter ac:name="sortValue">4</ac:parameter>
<ac:parameter ac:name="label">Completed</ac:parameter>
<ac:parameter ac:name="value">Completed</ac:parameter>
<ac:rich-text-body>
<p>
<ac:structured-macro ac:macro-id="5a51a925-52ce-4218-b2d4-c1d1de8df594" ac:name="status" ac:schema-version="1">
<ac:parameter ac:name="colour">Green</ac:parameter>
<ac:parameter ac:name="title">Completed</ac:parameter>
<ac:parameter ac:name=""/>
</ac:structured-macro> </p>
</ac:rich-text-body>
</ac:structured-macro>
</ac:rich-text-body>
</ac:structured-macro>
</p>
</div>
</td>
<td colspan="1">
<div class="content-wrapper">
<p>
<ac:structured-macro ac:macro-id="82c3d400-8d1e-4445-9ba4-ee5b23a1ea5b" ac:name="number-data" ac:schema-version="1">
<ac:parameter ac:name="name">Estimated Time</ac:parameter>
<ac:parameter ac:name="decimal">true</ac:parameter>
<ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
<ac:plain-text-body><![CDATA[ ]]></ac:plain-text-body>
</ac:structured-macro>
</p>hours<p> </p>
</div>
</td>
<td colspan="1">
<div class="content-wrapper">
<p>
<ac:structured-macro ac:macro-id="2fe01a8b-f277-49c7-ab5f-141034afeaa3" ac:name="number-data" ac:schema-version="1">
<ac:parameter ac:name="name">Actual Time</ac:parameter>
<ac:parameter ac:name="decimal">true</ac:parameter>
<ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
<ac:plain-text-body><![CDATA[ ]]></ac:plain-text-body>
</ac:structured-macro>
</p>hours<p> </p>
</div>
</td>
<td colspan="1">
<div class="content-wrapper">
<p>
<ac:structured-macro ac:macro-id="9fc6f0c0-2f20-4bea-8a5a-cfab409512ca" ac:name="eval-data" ac:schema-version="1">
<ac:parameter ac:name="name">Time Difference</ac:parameter>
<ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
<ac:plain-text-body><![CDATA[${Actual Time}-${Estimated Time}]]></ac:plain-text-body>
</ac:structured-macro>
</p>hours<p> </p>
</div>
</td>
<td colspan="1">
<div class="content-wrapper">
<p>
<ac:structured-macro ac:macro-id="54c0e6a7-d281-47ff-a44d-ed2e032f65f9" ac:name="number-data" ac:schema-version="1">
<ac:parameter ac:name="format">$#,##0.00</ac:parameter>
<ac:parameter ac:name="name">Budget</ac:parameter>
<ac:parameter ac:name="decimal">true</ac:parameter>
<ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
<ac:plain-text-body><![CDATA[ ]]></ac:plain-text-body>
</ac:structured-macro>
</p>
</div>
</td>
<td colspan="1">
<div class="content-wrapper">
<p>
<ac:structured-macro ac:macro-id="3d11761c-2359-4943-96c0-01d71b87799f" ac:name="number-data" ac:schema-version="1">
<ac:parameter ac:name="format">$#,##0.00</ac:parameter>
<ac:parameter ac:name="name">Expenditure</ac:parameter>
<ac:parameter ac:name="decimal">true</ac:parameter>
<ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
<ac:plain-text-body><![CDATA[ ]]></ac:plain-text-body>
</ac:structured-macro>
</p>
</div>
</td>
<td colspan="1">
<div class="content-wrapper">
<p>
<ac:structured-macro ac:macro-id="ed54b449-0c4c-4af8-8737-c2ee61253e53" ac:name="eval-data" ac:schema-version="1">
<ac:parameter ac:name="format">$#,##0.00</ac:parameter>
<ac:parameter ac:name="name">Project Budget Difference</ac:parameter>
<ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
<ac:plain-text-body><![CDATA[${Budget}-${Expenditure}]]></ac:plain-text-body>
</ac:structured-macro>
</p>
</div>
</td>
</tr>
</tbody>
</table>
</ac:rich-text-body>
</ac:structured-macro>
<p> </p>
<h4>Total budget:</h4>
<p>
<ac:structured-macro ac:macro-id="18443199-58ab-489d-8f6f-a4506f180a11" ac:name="eval-data" ac:schema-version="1">
<ac:parameter ac:name="format">$#,##0.00</ac:parameter>
<ac:parameter ac:name="name">Budget Total</ac:parameter>
<ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
<ac:plain-text-body><![CDATA[sumtable("Project Milestones", "Budget")]]></ac:plain-text-body>
</ac:structured-macro>
</p>
<h4>Total expenditure:</h4>
<p>
<ac:structured-macro ac:macro-id="2a409a81-f48d-4406-bce3-1991cd3f72cb" ac:name="eval-data" ac:schema-version="1">
<ac:parameter ac:name="format">$#,##0.00</ac:parameter>
<ac:parameter ac:name="name">Expenditure Total</ac:parameter>
<ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
<ac:plain-text-body><![CDATA[sumtable("Project Milestones", "Expenditure")]]></ac:plain-text-body>
</ac:structured-macro>
</p>
Notes section Create a Notes section for extra notes related to the project, or other details that are not captured in the Milestones section.
The hidden-data block shows a message when user has not added any notes in the text-data block (Optional).
In this case, we set the name of our text-data block as Project Notes , so the condition for hidden-data is when Project Notes is not empty, hide this message.
Subproject notes livetemplate
Source code
<h2>Notes</h2>
<p>
<ac:structured-macro ac:macro-id="2abf2f98-7d7f-458b-bf5b-a327eea9e277" ac:name="hidden-data" ac:schema-version="1">
<ac:parameter ac:name="whenNotEmpty">Project Notes</ac:parameter>
<ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
<ac:rich-text-body>
<p>
<em>No notes for this project.</em>
</p>
</ac:rich-text-body>
</ac:structured-macro>
<ac:structured-macro ac:macro-id="b557f535-98ad-44cc-92f7-8b6a73a2f45c" ac:name="text-data" ac:schema-version="1">
<ac:parameter ac:name="name">Project Notes</ac:parameter>
<ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
<ac:rich-text-body>
<p> </p>
</ac:rich-text-body>
</ac:structured-macro> </p>
Related Documents section This section is useful when documents like invoices, quotations are related to a particular subproject.
The attachment-data block allows users to quickly upload subproject related documents and find them easily in the future.
Similar to the Notes section, there is a hidden-data block that shows a message when there are no attachments in this section.
Now
In the table-data block
name the first column Attachment
insert an attachment-data macro in the second row
name the second column Description
insert a text-data macro in the second row
edit the text-data macro
Subproject documents livetemplate
Full sourceNext Part 3 - Using Live Templates to create subprojects