diff --git a/.drone.yml b/.drone.yml index ad6a450..168e6b2 100644 --- a/.drone.yml +++ b/.drone.yml @@ -1,6 +1,27 @@ +--- +kind: secret +name: docker_username +get: + path: odit-registry-builder + name: username + +--- +kind: secret +name: docker_password +get: + path: odit-registry-builder + name: password + +--- +kind: secret +name: git_ssh +get: + path: odit-git-bot + name: sshkey + --- kind: pipeline -type: docker +type: kubernetes name: build:dev clone: disable: true @@ -16,9 +37,9 @@ steps: depends_on: [clone] settings: username: - from_secret: DOCKER_REGISTRY_USER + from_secret: docker_username password: - from_secret: DOCKER_REGISTRY_PASSWORD + from_secret: docker_password repo: registry.odit.services/lfk/document-server tags: - dev @@ -38,7 +59,7 @@ steps: author_email: bot@odit.services remote: git@git.odit.services:lfk/document-server.git ssh_key: - from_secret: GITLAB_SSHKEY + from_secret: git_ssh - name: run full license export depends_on: ["clone"] image: node:14.15.1-alpine3.12 @@ -56,7 +77,7 @@ steps: remote: git@git.odit.services:lfk/document-server.git skip_verify: true ssh_key: - from_secret: GITLAB_SSHKEY + from_secret: git_ssh trigger: branch: @@ -66,7 +87,7 @@ trigger: --- kind: pipeline -type: docker +type: kubernetes name: build:latest clone: disable: true @@ -84,9 +105,9 @@ steps: image: plugins/docker settings: username: - from_secret: DOCKER_REGISTRY_USER + from_secret: docker_username password: - from_secret: DOCKER_REGISTRY_PASSWORD + from_secret: docker_password repo: registry.odit.services/lfk/document-server tags: - latest @@ -99,7 +120,7 @@ steps: commit: false remote: git@git.odit.services:lfk/document-server.git ssh_key: - from_secret: GITLAB_SSHKEY + from_secret: git_ssh trigger: branch: @@ -109,7 +130,7 @@ trigger: --- kind: pipeline -type: docker +type: kubernetes name: build:tags steps: @@ -118,9 +139,9 @@ steps: depends_on: [clone] settings: username: - from_secret: DOCKER_REGISTRY_USER + from_secret: docker_username password: - from_secret: DOCKER_REGISTRY_PASSWORD + from_secret: docker_password repo: registry.odit.services/lfk/document-server tags: - '${DRONE_TAG}' diff --git a/CHANGELOG.md b/CHANGELOG.md index 9e5fd05..dd50bf1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,12 +2,26 @@ All notable changes to this project will be documented in this file. Dates are displayed in UTC. +#### [v0.3.3](https://git.odit.services/lfk/document-server/compare/v0.3.3...v0.3.3) + +- Merge pull request 'Configurable sponsoring disclaimer feature/33-disclaimer' (#34) from feature/33-disclaimer into dev [`e9d3574`](https://git.odit.services/lfk/document-server/commit/e9d35745997a9e948509ea67b59f5a7658f9d652) +- Updated styleing [`03ed6d5`](https://git.odit.services/lfk/document-server/commit/03ed6d5bc18c5b26edd7b1d698c9de936e008f32) +- Added disclaimer to template [`4e1e124`](https://git.odit.services/lfk/document-server/commit/4e1e124d0dc08f96aeb05dd1c975064fe785b80f) +- MAde disclaimer configurable via env [`5e4d6f4`](https://git.odit.services/lfk/document-server/commit/5e4d6f44dab581483135594432bd8c8d65ba74ef) +- MAde disclaimer configurable via env [`885765a`](https://git.odit.services/lfk/document-server/commit/885765ac71b6a65c869ee841c383667f4947dcde) +- 🧾New changelog file version [CI SKIP] [skip ci] [`19fbf50`](https://git.odit.services/lfk/document-server/commit/19fbf50f6f6057c5321a999b6551d05db32b5fd8) +- Added reamde entry for the new env var [`9dd62ce`](https://git.odit.services/lfk/document-server/commit/9dd62cefa94bf3f0bf8e77fd25e7ca1ec4b30e2b) + #### [v0.3.3](https://git.odit.services/lfk/document-server/compare/v0.3.2...v0.3.3) +> 19 February 2021 + +- Merge pull request 'Alpha Release 0.3.3 - Download options' (#32) from dev into main [`21b5e04`](https://git.odit.services/lfk/document-server/commit/21b5e048ed5ed72f88304e5c737639c54cc71483) - 🧾New changelog file version [CI SKIP] [skip ci] [`d1a29c1`](https://git.odit.services/lfk/document-server/commit/d1a29c1cbb8845a1adf8a414d158ebcabd48dc04) - 🧾New changelog file version [CI SKIP] [skip ci] [`fd8b7e5`](https://git.odit.services/lfk/document-server/commit/fd8b7e56da4a1601141f63627e3990660c521ea6) - Added download option to cards [`1ca5d3e`](https://git.odit.services/lfk/document-server/commit/1ca5d3ea078ef51818657e2b3c9f114c67bff86d) - Added download header [`55877de`](https://git.odit.services/lfk/document-server/commit/55877de2aa46583f30d033467037e0454d1236be) +- 🧾New changelog file version [CI SKIP] [skip ci] [`c012b49`](https://git.odit.services/lfk/document-server/commit/c012b4943d96ee3a9442c65389c4dcea08642109) - 🚀Bumped version to v0.3.3 [`ba566bc`](https://git.odit.services/lfk/document-server/commit/ba566bcc33ed920324cd9977b3f293a2c629f92c) - 🧾New changelog file version [CI SKIP] [skip ci] [`a386c5b`](https://git.odit.services/lfk/document-server/commit/a386c5bef88da29e4447399d4edca0234b674ed5) diff --git a/README.md b/README.md index ac522c5..d3bd447 100644 --- a/README.md +++ b/README.md @@ -36,6 +36,8 @@ The basic generation mechanism makes the templates and routes interchangeable (i | SPONSORING_RECEIPT_MINIMUM_AMOUNT | String | "10" | The mimimum total donation amount a sponsor has to donate to be able to receive a donation receipt - used to generate pdf text. | SPONOR_LOGOS | Array | Empty png | The sponsor images you want to loop through. You can provide them via http url, local file or base64-encoded image. | API_KEY | String(min length: 64) | Random generated string | The api key you want to use for auth (query-param `key`), has to be at least 64 chars long. +| DISCLAIMER_TEXT | String | N/A | A disclaimer that will get displayed on the bottom of each sponsoring contract. R/N You can only provide the disclaimer for one language. +| CONTRACTS_PER_RUNNER | Number | 1 | The amount of contracts that get created per runner (per request). ## Templates > The document server uses html templates to generate various pdf documents. diff --git a/package.json b/package.json index 7e0245e..af57d63 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@odit/lfk-document-server", - "version": "0.3.3", + "version": "0.4.0", "description": "The document generation server for the LfK! runner system. This generates certificates, sponsoring aggreements and more", "main": "src/app.ts", "scripts": { diff --git a/src/PdfCreator.ts b/src/PdfCreator.ts index b48889e..549cf4f 100644 --- a/src/PdfCreator.ts +++ b/src/PdfCreator.ts @@ -22,6 +22,7 @@ export class PdfCreator { private templateDir = path.join(__dirname, '/templates'); private browser; private static interpolations = { eventname: config.eventname, sponsoring_receipt_minimum_amount: config.sponsoring_receipt_minimum_amount, currency_symbol: config.currency_symbol } + private static contractsPerRunner = config.contracts_per_runner; /** * Main constructor. @@ -108,6 +109,11 @@ export class PdfCreator { if (runners.length == 1 && Object.keys(runners[0]).length == 0) { runners[0] = this.generateEmptyRunner(); } + for (var i = 1; i < PdfCreator.contractsPerRunner; i++) { + runners = runners.reduce(function (res, current, index, array) { + return res.concat([current, current]); + }, []); + } if (runners.length > 50) { let pdf_promises = new Array>(); let i, j; @@ -121,7 +127,7 @@ export class PdfCreator { await i18next.changeLanguage(locale); const template_source = fs.readFileSync(`${this.templateDir}/sponsoring_contract.html`, 'utf8'); const template = Handlebars.compile(template_source); - let result = template({ runners, codeformat }); + let result = template({ runners, codeformat, disclaimer: config.disclaimer_text }); result = await awaitAsyncHandlebarHelpers(result); const pdf = await this.renderPdf(result, { format: "A5", landscape: true }); return pdf diff --git a/src/config.ts b/src/config.ts index bded138..7dbc3c0 100644 --- a/src/config.ts +++ b/src/config.ts @@ -12,11 +12,16 @@ export const config = { codeformat: process.env.CODEFORMAT || "qrcode", sponor_logos: getSponsorLogos(), api_key: getApiKey(), + disclaimer_text: process.env.DISCLAIMER_TEXT || "", + contracts_per_runner: process.env.CONTRACTS_PER_RUNNER || 1, } let errors = 0 if (typeof config.internal_port !== "number") { errors++ } +if (typeof config.contracts_per_runner !== "number") { + errors++ +} if (typeof config.development !== "boolean") { errors++ } diff --git a/src/templates/sponsoring_contract.html b/src/templates/sponsoring_contract.html index ddcad0a..13e8e15 100644 --- a/src/templates/sponsoring_contract.html +++ b/src/templates/sponsoring_contract.html @@ -68,8 +68,8 @@

{{__ "group"}}

-

{{__ "sponsoring_amount_per_distance"}}

-
+

{{__ "sponsoring_amount_per_distance"}}

+
 

{{__ "lastname"}}

@@ -79,9 +79,9 @@

{{__ "firstname"}}

-

{{__ "address"}} ({{__ "sponsor"}})

+

{{__ "address"}} ({{__ "sponsor"}})

({{__ "sponsoring_address_condition"}})

-
+
 

{{__ "street"}}

@@ -91,7 +91,7 @@

{{__ "house_number"}}

-
+
 

{{__ "postalcode"}}

@@ -101,8 +101,7 @@

{{__ "city"}}

-
-
+
 

{{__ "location"}}, {{__ "date"}}

@@ -112,6 +111,7 @@

{{__ "signature"}}

+

{{../disclaimer}}

{{/each}}