From 115075bff0771ab534781fae4f13b52e044d46ba Mon Sep 17 00:00:00 2001 From: Martin Etmajer Date: Mon, 16 Jan 2023 08:22:53 +0100 Subject: [PATCH] Enable all GAMP Categories in the CSD documents for GAMP3/4/5 (#91) --- CHANGELOG.md | 1 + templates/CSD-3.html.tmpl | 450 +++++++++++++++++++++++++++++++++++++- templates/CSD-4.html.tmpl | 256 +++++++++++++++++++++- 3 files changed, 696 insertions(+), 11 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fd03605..e0d5ae4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ # Changelog ## Unreleased +- Enable all GAMP Categories in the CSD documents for GAMP3/4/5 ([#91](https://github.com/opendevstack/ods-document-generation-templates/pull/91)) - Add check for project property PROJECT.IS_GXP in SSDS templates ([#90](https://github.com/opendevstack/ods-document-generation-templates/pull/90)) - Rename BuildConfig and DeploymentConfig to abstract *Resource ([#88](https://github.com/opendevstack/ods-document-generation-templates/pull/88)) diff --git a/templates/CSD-3.html.tmpl b/templates/CSD-3.html.tmpl index 28f0632..6b3311a 100644 --- a/templates/CSD-3.html.tmpl +++ b/templates/CSD-3.html.tmpl @@ -197,16 +197,266 @@ {{/each}}

3.2.1 Functional Requirements

-

N/A

+ {{#if data.requirements.functionalrequirements}} + {{#if data.requirements.functionalrequirements.noepics}} + + + + + + + + {{#each data.requirements.functionalrequirements.noepics}} + + + + + + + + + + + + + + + + + {{/each}} +
No.DocumentRequirementApplicability
{{key}}URSSummary: {{{ursName}}}{{#if ursDescription}}
{{{ursDescription}}}{{/if}}
{{applicability}}
FSSummary: {{{fsName}}}{{#if fsDescription}}
{{{fsDescription}}}{{/if}}
{{applicability}}
CSSummary: {{{csName}}}{{#if csDescription}}
{{{csDescription}}}{{/if}}
{{applicability}}
+ {{/if}} + + {{#each data.requirements.functionalrequirements.epics}} +
3.2.1.{{epicIndex}}{{key}}: {{epicTitle}}
+ {{{epicDescription}}} + + + + + + + + {{#each stories}} + + + + + + + + + + + + + + + + + {{/each}} +
No.DocumentRequirementApplicability
{{key}}URSSummary: {{{ursName}}}{{#if ursDescription}}
{{{ursDescription}}}{{/if}}
{{applicability}}
FSSummary: {{{fsName}}}{{#if fsDescription}}
{{{fsDescription}}}{{/if}}
{{applicability}}
CSSummary: {{{csName}}}{{#if csDescription}}
{{{csDescription}}}{{/if}}
{{applicability}}
+ {{/each}} + {{else}} +

N/A

+ {{/if}} + +

3.2.2 Data Requirements

-

N/A

+ {{#if data.requirements.datarequirements}} + {{#if data.requirements.datarequirements.noepics}} + + + + + + + + {{#each data.requirements.datarequirements.noepics}} + + + + + + + + + + + + + + + + + {{/each}} +
No.DocumentRequirementApplicability
{{key}}URSSummary: {{{ursName}}}{{#if ursDescription}}
{{{ursDescription}}}{{/if}}
{{applicability}}
FSSummary: {{{fsName}}}{{#if fsDescription}}
{{{fsDescription}}}{{/if}}
{{applicability}}
CSSummary: {{{csName}}}{{#if csDescription}}
{{{csDescription}}}{{/if}}
{{applicability}}
+ {{/if}} + + {{#each data.requirements.datarequirements.epics}} +
3.2.2.{{epicIndex}}{{key}}: {{epicTitle}}
+ {{{epicDescription}}} + + + + + + + + {{#each stories}} + + + + + + + + + + + + + + + + + {{/each}} +
No.DocumentRequirementApplicability
{{key}}URSSummary: {{{ursName}}}{{#if ursDescription}}
{{{ursDescription}}}{{/if}}
{{applicability}}
FSSummary: {{{fsName}}}{{#if fsDescription}}
{{{fsDescription}}}{{/if}}
{{applicability}}
CSSummary: {{{csName}}}{{#if csDescription}}
{{{csDescription}}}{{/if}}
{{applicability}}
+ {{/each}} + {{else}} +

N/A

+ {{/if}}

3.2.3 Technical Requirements

-

N/A

+ {{#if data.requirements.technicalrequirements}} + {{#if data.requirements.technicalrequirements.noepics}} + + + + + + + + {{#each data.requirements.technicalrequirements.noepics}} + + + + + + + + + + + + + + + + + {{/each}} +
No.DocumentRequirementApplicability
{{key}}URSSummary: {{{ursName}}}{{#if ursDescription}}
{{{ursDescription}}}{{/if}}
{{applicability}}
FSSummary: {{{fsName}}}{{#if fsDescription}}
{{{fsDescription}}}{{/if}}
{{applicability}}
CSSummary: {{{csName}}}{{#if csDescription}}
{{{csDescription}}}{{/if}}
{{applicability}}
+ {{/if}} + + {{#each data.requirements.technicalrequirements.epics}} +
3.2.3.{{epicIndex}}{{key}}: {{epicTitle}}
+ {{{epicDescription}}} + + + + + + + + {{#each stories}} + + + + + + + + + + + + + + + + + {{/each}} +
No.DocumentRequirementApplicability
{{key}}URSSummary: {{{ursName}}}{{#if ursDescription}}
{{{ursDescription}}}{{/if}}
{{applicability}}
FSSummary: {{{fsName}}}{{#if fsDescription}}
{{{fsDescription}}}{{/if}}
{{applicability}}
CSSummary: {{{csName}}}{{#if csDescription}}
{{{csDescription}}}{{/if}}
{{applicability}}
+ {{/each}} + {{else}} +

N/A

+ {{/if}}

3.2.4 Maintenance Requirements

-

N/A

+ {{#if data.requirements.maintenancerequirements}} + {{#if data.requirements.maintenancerequirements.noepics}} + + + + + + + + {{#each data.requirements.maintenancerequirements.noepics}} + + + + + + + + + + + + + + + + + {{/each}} +
No.DocumentRequirementApplicability
{{key}}URSSummary: {{{ursName}}}{{#if ursDescription}}
{{{ursDescription}}}{{/if}}
{{applicability}}
FSSummary: {{{fsName}}}{{#if fsDescription}}
{{{fsDescription}}}{{/if}}
{{applicability}}
CSSummary: {{{csName}}}{{#if csDescription}}
{{{csDescription}}}{{/if}}
{{applicability}}
+ {{/if}} + + {{#each data.requirements.maintenancerequirements.epics}} +
3.2.4.{{epicIndex}}{{key}}: {{epicTitle}}
+ {{{epicDescription}}} + + + + + + + + {{#each stories}} + + + + + + + + + + + + + + + + + {{/each}} +
No.DocumentRequirementApplicability
{{key}}URSSummary: {{{ursName}}}{{#if ursDescription}}
{{{ursDescription}}}{{/if}}
{{applicability}}
FSSummary: {{{fsName}}}{{#if fsDescription}}
{{{fsDescription}}}{{/if}}
{{applicability}}
CSSummary: {{{csName}}}{{#if csDescription}}
{{{csDescription}}}{{/if}}
{{applicability}}
+ {{/each}} + {{else}} +

N/A

+ {{/if}}

3.3Non-Operational Requirements

3.3.1 Performance Requirements

@@ -341,13 +591,199 @@ {{/if}}

3.3.3 Security Requirements

-

N/A

+ {{#if data.requirements.securityrequirements}} + {{#if data.requirements.securityrequirements.noepics}} + + + + + + + + {{#each data.requirements.securityrequirements.noepics}} + + + + + + + + + + + + + + + + + {{/each}} +
No.DocumentRequirementApplicability
{{key}}URSSummary: {{{ursName}}}{{#if ursDescription}}
{{{ursDescription}}}{{/if}}
{{applicability}}
FSSummary: {{{fsName}}}{{#if fsDescription}}
{{{fsDescription}}}{{/if}}
{{applicability}}
CSSummary: {{{csName}}}{{#if csDescription}}
{{{csDescription}}}{{/if}}
{{applicability}}
+ {{/if}} + + {{#each data.requirements.securityrequirements.epics}} +
3.3.3.{{epicIndex}}{{key}}: {{epicTitle}}
+ {{{epicDescription}}} + + + + + + + + {{#each stories}} + + + + + + + + + + + + + + + + + {{/each}} +
No.DocumentRequirementApplicability
{{key}}URSSummary: {{{ursName}}}{{#if ursDescription}}
{{{ursDescription}}}{{/if}}
{{applicability}}
FSSummary: {{{fsName}}}{{#if fsDescription}}
{{{fsDescription}}}{{/if}}
{{applicability}}
CSSummary: {{{csName}}}{{#if csDescription}}
{{{csDescription}}}{{/if}}
{{applicability}}
+ {{/each}} + {{else}} +

N/A

+ {{/if}}

3.3.4 Regulatory Requirements

-

N/A

+ {{#if data.requirements.regulatoryrequirements}} + {{#if data.requirements.regulatoryrequirements.noepics}} + + + + + + + + {{#each data.requirements.regulatoryrequirements.noepics}} + + + + + + + + + + + + + + + + + {{/each}} +
No.DocumentRequirementApplicability
{{key}}URSSummary: {{{ursName}}}{{#if ursDescription}}
{{{ursDescription}}}{{/if}}
{{applicability}}
FSSummary: {{{fsName}}}{{#if fsDescription}}
{{{fsDescription}}}{{/if}}
{{applicability}}
CSSummary: {{{csName}}}{{#if csDescription}}
{{{csDescription}}}{{/if}}
{{applicability}}
+ {{/if}} + + {{#each data.requirements.regulatoryrequirements.epics}} +
3.3.4.{{epicIndex}}{{key}}: {{epicTitle}}
+ {{{epicDescription}}} + + + + + + + + {{#each stories}} + + + + + + + + + + + + + + + + + {{/each}} +
No.DocumentRequirementApplicability
{{key}}URSSummary: {{{ursName}}}{{#if ursDescription}}
{{{ursDescription}}}{{/if}}
{{applicability}}
FSSummary: {{{fsName}}}{{#if fsDescription}}
{{{fsDescription}}}{{/if}}
{{applicability}}
CSSummary: {{{csName}}}{{#if csDescription}}
{{{csDescription}}}{{/if}}
{{applicability}}
+ {{/each}} + {{else}} +

N/A

+ {{/if}}

3.4Overarching Requirements

-

N/A

+ {{#if data.requirements.overarchingrequirements}} + {{#if data.requirements.overarchingrequirements.noepics}} + + + + + + + + {{#each data.requirements.overarchingrequirements.noepics}} + + + + + + + + + + + + + + + + + {{/each}} +
No.DocumentRequirementApplicability
{{key}}URSSummary: {{{ursName}}}{{#if ursDescription}}
{{{ursDescription}}}{{/if}}
{{applicability}}
FSSummary: {{{fsName}}}{{#if fsDescription}}
{{{fsDescription}}}{{/if}}
{{applicability}}
CSSummary: {{{csName}}}{{#if csDescription}}
{{{csDescription}}}{{/if}}
{{applicability}}
+ {{/if}} + + {{#each data.requirements.overarchingrequirements.epics}} +

3.4.{{epicIndex}}{{key}}: {{epicTitle}}

+ {{{epicDescription}}} + + + + + + + + {{#each stories}} + + + + + + + + + + + + + + + + + {{/each}} +
No.DocumentRequirementApplicability
{{key}}URSSummary: {{{ursName}}}{{#if ursDescription}}
{{{ursDescription}}}{{/if}}
{{applicability}}
FSSummary: {{{fsName}}}{{#if fsDescription}}
{{{fsDescription}}}{{/if}}
{{applicability}}
CSSummary: {{{csName}}}{{#if csDescription}}
{{{csDescription}}}{{/if}}
{{applicability}}
+ {{/each}} + {{else}} +

N/A

+ {{/if}}

3.5Roles

N/A

diff --git a/templates/CSD-4.html.tmpl b/templates/CSD-4.html.tmpl index 8d073e5..3e33020 100644 --- a/templates/CSD-4.html.tmpl +++ b/templates/CSD-4.html.tmpl @@ -334,10 +334,134 @@

3.2.3 Technical Requirements

-

N/A

+ {{#if data.requirements.technicalrequirements}} + {{#if data.requirements.technicalrequirements.noepics}} + + + + + + + + {{#each data.requirements.technicalrequirements.noepics}} + + + + + + + + + + + + + + + + + {{/each}} +
No.DocumentRequirementApplicability
{{key}}URSSummary: {{{ursName}}}{{#if ursDescription}}
{{{ursDescription}}}{{/if}}
{{applicability}}
FSSummary: {{{fsName}}}{{#if fsDescription}}
{{{fsDescription}}}{{/if}}
{{applicability}}
CSSummary: {{{csName}}}{{#if csDescription}}
{{{csDescription}}}{{/if}}
{{applicability}}
+ {{/if}} + + {{#each data.requirements.technicalrequirements.epics}} +
3.2.3.{{epicIndex}}{{key}}: {{epicTitle}}
+ {{{epicDescription}}} + + + + + + + + {{#each stories}} + + + + + + + + + + + + + + + + + {{/each}} +
No.DocumentRequirementApplicability
{{key}}URSSummary: {{{ursName}}}{{#if ursDescription}}
{{{ursDescription}}}{{/if}}
{{applicability}}
FSSummary: {{{fsName}}}{{#if fsDescription}}
{{{fsDescription}}}{{/if}}
{{applicability}}
CSSummary: {{{csName}}}{{#if csDescription}}
{{{csDescription}}}{{/if}}
{{applicability}}
+ {{/each}} + {{else}} +

N/A

+ {{/if}}

3.2.4 Maintenance Requirements

-

N/A

+ {{#if data.requirements.maintenancerequirements}} + {{#if data.requirements.maintenancerequirements.noepics}} + + + + + + + + {{#each data.requirements.maintenancerequirements.noepics}} + + + + + + + + + + + + + + + + + {{/each}} +
No.DocumentRequirementApplicability
{{key}}URSSummary: {{{ursName}}}{{#if ursDescription}}
{{{ursDescription}}}{{/if}}
{{applicability}}
FSSummary: {{{fsName}}}{{#if fsDescription}}
{{{fsDescription}}}{{/if}}
{{applicability}}
CSSummary: {{{csName}}}{{#if csDescription}}
{{{csDescription}}}{{/if}}
{{applicability}}
+ {{/if}} + + {{#each data.requirements.maintenancerequirements.epics}} +
3.2.4.{{epicIndex}}{{key}}: {{epicTitle}}
+ {{{epicDescription}}} + + + + + + + + {{#each stories}} + + + + + + + + + + + + + + + + + {{/each}} +
No.DocumentRequirementApplicability
{{key}}URSSummary: {{{ursName}}}{{#if ursDescription}}
{{{ursDescription}}}{{/if}}
{{applicability}}
FSSummary: {{{fsName}}}{{#if fsDescription}}
{{{fsDescription}}}{{/if}}
{{applicability}}
CSSummary: {{{csName}}}{{#if csDescription}}
{{{csDescription}}}{{/if}}
{{applicability}}
+ {{/each}} + {{else}} +

N/A

+ {{/if}}

3.3Non-Operational Requirements

3.3.1 Performance Requirements

@@ -540,10 +664,134 @@

3.3.4 Regulatory Requirements

-

N/A

+ {{#if data.requirements.regulatoryrequirements}} + {{#if data.requirements.regulatoryrequirements.noepics}} + + + + + + + + {{#each data.requirements.regulatoryrequirements.noepics}} + + + + + + + + + + + + + + + + + {{/each}} +
No.DocumentRequirementApplicability
{{key}}URSSummary: {{{ursName}}}{{#if ursDescription}}
{{{ursDescription}}}{{/if}}
{{applicability}}
FSSummary: {{{fsName}}}{{#if fsDescription}}
{{{fsDescription}}}{{/if}}
{{applicability}}
CSSummary: {{{csName}}}{{#if csDescription}}
{{{csDescription}}}{{/if}}
{{applicability}}
+ {{/if}} + + {{#each data.requirements.regulatoryrequirements.epics}} +
3.3.4.{{epicIndex}}{{key}}: {{epicTitle}}
+ {{{epicDescription}}} + + + + + + + + {{#each stories}} + + + + + + + + + + + + + + + + + {{/each}} +
No.DocumentRequirementApplicability
{{key}}URSSummary: {{{ursName}}}{{#if ursDescription}}
{{{ursDescription}}}{{/if}}
{{applicability}}
FSSummary: {{{fsName}}}{{#if fsDescription}}
{{{fsDescription}}}{{/if}}
{{applicability}}
CSSummary: {{{csName}}}{{#if csDescription}}
{{{csDescription}}}{{/if}}
{{applicability}}
+ {{/each}} + {{else}} +

N/A

+ {{/if}}

3.4Overarching Requirements

-

N/A

+ {{#if data.requirements.overarchingrequirements}} + {{#if data.requirements.overarchingrequirements.noepics}} + + + + + + + + {{#each data.requirements.overarchingrequirements.noepics}} + + + + + + + + + + + + + + + + + {{/each}} +
No.DocumentRequirementApplicability
{{key}}URSSummary: {{{ursName}}}{{#if ursDescription}}
{{{ursDescription}}}{{/if}}
{{applicability}}
FSSummary: {{{fsName}}}{{#if fsDescription}}
{{{fsDescription}}}{{/if}}
{{applicability}}
CSSummary: {{{csName}}}{{#if csDescription}}
{{{csDescription}}}{{/if}}
{{applicability}}
+ {{/if}} + + {{#each data.requirements.overarchingrequirements.epics}} +

3.4.{{epicIndex}}{{key}}: {{epicTitle}}

+ {{{epicDescription}}} + + + + + + + + {{#each stories}} + + + + + + + + + + + + + + + + + {{/each}} +
No.DocumentRequirementApplicability
{{key}}URSSummary: {{{ursName}}}{{#if ursDescription}}
{{{ursDescription}}}{{/if}}
{{applicability}}
FSSummary: {{{fsName}}}{{#if fsDescription}}
{{{fsDescription}}}{{/if}}
{{applicability}}
CSSummary: {{{csName}}}{{#if csDescription}}
{{{csDescription}}}{{/if}}
{{applicability}}
+ {{/each}} + {{else}} +

N/A

+ {{/if}}

3.5Roles

{{#if data.requirements.roles}}