Compare commits
31 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ba3e33f01b | ||
|
|
e2e64c9b0d | ||
|
|
c3b44447ae | ||
|
|
ce61bf3619 | ||
|
|
2a668d2138 | ||
|
|
aac6e59d2a | ||
|
|
de3bc6b0cd | ||
|
|
dcb053b036 | ||
|
|
d325d1b60d | ||
|
|
d8ded9809a | ||
|
|
f9c5c74c00 | ||
|
|
419c322e5e | ||
|
|
2c28259da4 | ||
|
|
4e145e67ff | ||
|
|
07d4dde49c | ||
|
|
8bf3549cce | ||
|
|
aa1272cf0d | ||
|
|
fce61a1a2c | ||
|
|
54067e925e | ||
|
|
d55ac1ae5a | ||
|
|
bb1044f539 | ||
|
|
f982e63a7e | ||
|
|
b41b7ee81e | ||
|
|
38d1343338 | ||
|
|
c701dfa8a5 | ||
|
|
b3ff36e184 | ||
|
|
fc6239d256 | ||
|
|
ada6e3c781 | ||
|
|
dfcbef269d | ||
|
|
bd62954cae | ||
|
|
11817eac09 |
77
CHANGELOG.md
77
CHANGELOG.md
@@ -1,4 +1,80 @@
|
||||
# Changelog
|
||||
|
||||
## 1.38.4 (2026-02-26)
|
||||
### Backend
|
||||
- Bump frontend [OP-3735]
|
||||
|
||||
### Deploy instructions
|
||||
```
|
||||
drc pull frontend && drc up -d frontend
|
||||
```
|
||||
|
||||
## 1.38.3 (2026-02-26)
|
||||
### Backend
|
||||
- Related organisations: Duplicate relations between municipalities and OCMWs [OP-3743]
|
||||
|
||||
### Deploy instructions
|
||||
```
|
||||
drc restart migrations cache
|
||||
```
|
||||
|
||||
## 1.38.2 (2026-02-20)
|
||||
### Backend
|
||||
- Remove deprecated organizations-public-info producer [OP-3581]
|
||||
- bump loket-error-alert-service [DL-7142]
|
||||
- bump adressenregister [OP-3721]
|
||||
- Aalter can be selected twice in editing "werkingsgebied" when making a new Politiezone [OP-3724]
|
||||
- bump frontend [OP-3726]
|
||||
- Add related organizations report to report generation service [OP-3739]
|
||||
|
||||
### Deploy instructions
|
||||
```
|
||||
# removing producer
|
||||
drc restart dispatcher delta-producer-dump-file-publisher delta-producer-background-jobs-initiator delta-producer-publication-graph-maintainer jobs-controller migrations cache
|
||||
drc up -d publication-triplestore-migrations error-alert adressenregister frontend
|
||||
rm -r data/files/deltas/organizations-public-info
|
||||
rm -r data/files/delta-producer-dumps/dump-organizations-public-info
|
||||
|
||||
# new related organizations report
|
||||
drc pull report-generation; drc up -d report-generation
|
||||
```
|
||||
|
||||
### Deploy instructions
|
||||
## 1.38.1 (2026-01-30)
|
||||
### General
|
||||
- Bump frontend to v1.36.3 [OP-3428]
|
||||
- [OP-3720]: Delta background job having errors/getting stuck, send an email
|
||||
|
||||
### Deploy instructions
|
||||
#### For error-alert and deliver-email-service
|
||||
Per environment a specfic configuration for the email service similar to loket config.
|
||||
Ask colleague for specfic credentials.
|
||||
|
||||
```
|
||||
deliver-email-service:
|
||||
environment:
|
||||
EMAIL_PROTOCOL: "smtp"
|
||||
#WELL_KNOWN_SERVICE: "smtp"
|
||||
EMAIL_HOST: "Fill in Email host adress"
|
||||
EMAIL_ADDRESS: "Fill in email"
|
||||
EMAIL_PASSWORD: "Fill in email password"
|
||||
EMAIL_PORT: "Fill in port"
|
||||
SECURE_CONNECTION: "true"
|
||||
EMAIL_CRON_PATTERN: "*/1 * * * *"
|
||||
restart: "no"
|
||||
|
||||
error-alert:
|
||||
environment:
|
||||
EMAIL_FROM: "Fill in email adress of sender
|
||||
EMAIL_TO: "Fill in email adress of receiver"
|
||||
```
|
||||
|
||||
#### Deploy instructions
|
||||
```
|
||||
drc restart migrations deltanotifier
|
||||
drc up -d error-alert deliver-email-service frontend
|
||||
```
|
||||
|
||||
## 1.38.0 (2026-01-08)
|
||||
### General
|
||||
- [OP-3590]: OP is now master of "aantal houders" of mandates
|
||||
@@ -56,6 +132,7 @@ drc pull frontend && drc up -d frontend
|
||||
|
||||
### Deploy notes
|
||||
```
|
||||
# cleanup job
|
||||
drc restart migrations
|
||||
drc exec db-cleanup curl -X GET "http://localhost/runCronJob?cronJobID=8ffd9f11-db25-430d-a66a-31fc8b393d5f"
|
||||
```
|
||||
|
||||
@@ -19,16 +19,6 @@
|
||||
"cronPatternHealingJob": "0 0 4 * * *",
|
||||
"startInitialSync": true
|
||||
},
|
||||
{
|
||||
"name": "organizations-public-info",
|
||||
"jobsGraph": "http://mu.semte.ch/graphs/jobs",
|
||||
"dumpFileCreationJobOperation": "http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/deltaDumpFileCreation/organizations-public-info",
|
||||
"initialPublicationGraphSyncJobOperation": "http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/initialPublicationGraphSyncing/organizations-public-info",
|
||||
"healingJobOperation": "http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/healingOperation/organizations-public-info",
|
||||
"cronPatternDumpJob": "27 */4 * * *",
|
||||
"cronPatternHealingJob": "0 0 4 * * *",
|
||||
"startInitialSync": true
|
||||
},
|
||||
{
|
||||
"name": "worship-posts",
|
||||
"jobsGraph": "http://mu.semte.ch/graphs/jobs",
|
||||
|
||||
@@ -17,24 +17,6 @@
|
||||
"targetFilesGraph": "http://redpencil.data.gift/id/deltas/producer/organizations-deltas",
|
||||
"cleanupOldDumps": true
|
||||
},
|
||||
"http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/deltaDumpFileCreation/organizations-public-info": {
|
||||
"dcatDataSetSubject": "http://data.lblod.info/datasets/delta-producer/dumps/OrganizationsPublicInfoCacheGraphDump",
|
||||
"targetGraph": "http://redpencil.data.gift/id/deltas/producer/organizations-public-info",
|
||||
"fileBaseName": "dump-organizations-public-info",
|
||||
"publicationGraphEndpoint": "http://publication-triplestore:8890/sparql",
|
||||
"targetDcatGraph": "http://mu.semte.ch/graphs/public",
|
||||
"targetFilesGraph": "http://mu.semte.ch/graphs/public",
|
||||
"cleanupOldDumps": true
|
||||
},
|
||||
"http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/initialPublicationGraphSyncing/organizations-public-info": {
|
||||
"dcatDataSetSubject": "http://data.lblod.info/datasets/delta-producer/dumps/OrganizationsPublicInfoCacheGraphDump",
|
||||
"targetGraph": "http://redpencil.data.gift/id/deltas/producer/organizations-public-info",
|
||||
"fileBaseName": "dump-organizations-public-info",
|
||||
"publicationGraphEndpoint": "http://publication-triplestore:8890/sparql",
|
||||
"targetDcatGraph": "http://mu.semte.ch/graphs/public",
|
||||
"targetFilesGraph": "http://mu.semte.ch/graphs/public",
|
||||
"cleanupOldDumps": true
|
||||
},
|
||||
"http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/deltaDumpFileCreation/public": {
|
||||
"dcatDataSetSubject": "http://data.lblod.info/datasets/delta-producer/dumps/PublicCacheGraphDump",
|
||||
"targetGraph": "http://redpencil.data.gift/id/deltas/producer/public",
|
||||
|
||||
@@ -44,29 +44,6 @@
|
||||
"loginPath": "/public/login",
|
||||
"logOutgoingDelta": true
|
||||
},
|
||||
"organizations-public-info": {
|
||||
"deltaInterval": 10000,
|
||||
"errorCreatorUri": "http://lblod.data.gift/services/delta-producer-publication-graph-maintainer-organizations-public-info",
|
||||
"exportConfigPath": "/config/organizations-public-info/export.json",
|
||||
"filesPath": "/organizations-public-info/files",
|
||||
"healingJobOperation": "http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/healingOperation/organizations-public-info",
|
||||
"initialPublicationGraphSyncJobOperation": "http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/initialPublicationGraphSyncing/organizations-public-info",
|
||||
"jobsGraph": "http://mu.semte.ch/graphs/jobs",
|
||||
"publicationGraph": "http://redpencil.data.gift/id/deltas/producer/organizations-public-info",
|
||||
"publisherUri": "http://data.lblod.info/services/delta-production-json-diff-file-manager/organizations-public-info",
|
||||
"queuePollInterval": 3000,
|
||||
"relativeFilePath": "/deltas/organizations-public-info",
|
||||
"serveDeltaFiles": true,
|
||||
"skipMuAuthInitialSync": true,
|
||||
"skipMuAuthHealing": true,
|
||||
"useFileDiff": true,
|
||||
"healingInitialBatchSizeInsert": 1000,
|
||||
"healingPatchPublicationGraphTaskOperation": 500,
|
||||
"useVirtuosoForExpensiveSelects": true,
|
||||
"errorGraph": "http://mu.semte.ch/graphs/jobs",
|
||||
"loginPath": "/organizations-public-info/login",
|
||||
"logOutgoingDelta": true
|
||||
},
|
||||
"worship-posts": {
|
||||
"deltaInterval": 10000,
|
||||
"errorCreatorUri": "http://lblod.data.gift/services/delta-producer-publication-graph-maintainer-worship-posts",
|
||||
|
||||
@@ -178,6 +178,27 @@ export default [
|
||||
ignoreFromSelf: true,
|
||||
optOutMuScopeIds: [ "http://redpencil.data.gift/id/concept/muScope/deltas/initialSync" ]
|
||||
}
|
||||
},
|
||||
{
|
||||
match: {
|
||||
predicate: {
|
||||
type: 'uri',
|
||||
value: 'http://www.w3.org/1999/02/22-rdf-syntax-ns#type'
|
||||
},
|
||||
object: {
|
||||
type: 'uri',
|
||||
value:'http://open-services.net/ns/core#Error'
|
||||
}
|
||||
},
|
||||
callback: {
|
||||
url: 'http://error-alert/delta',
|
||||
method:'POST'
|
||||
},
|
||||
options: {
|
||||
resourceFormat: 'v0.0.1',
|
||||
gracePeriod: 1000,
|
||||
ignoreFromSelf: true
|
||||
}
|
||||
}
|
||||
/*
|
||||
Commenting ldes rules until ready to go to qa/prod. In the meantime, we override the configuration on dev.
|
||||
|
||||
@@ -441,14 +441,6 @@ defmodule Dispatcher do
|
||||
Proxy.forward conn, path, "http://delta-producer-publication-graph-maintainer/organizations/files/"
|
||||
end
|
||||
|
||||
#################################################################
|
||||
# DELTA: organizations-public-info
|
||||
#################################################################
|
||||
|
||||
get "/sync/organizations-public-info/files/*path" do
|
||||
Proxy.forward(conn, path, "http://delta-producer-publication-graph-maintainer/organizations-public-info/files/")
|
||||
end
|
||||
|
||||
#################################################################
|
||||
# DELTA: public
|
||||
#################################################################
|
||||
|
||||
8
config/error-alert/config.json
Normal file
8
config/error-alert/config.json
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"creators": [
|
||||
"http://lblod.data.gift/services/delta-producer-background-jobs-initiator/organizations",
|
||||
"http://lblod.data.gift/services/delta-producer-background-jobs-initiator/public",
|
||||
"http://lblod.data.gift/services/delta-producer-background-jobs-initiator/organizations-public-info",
|
||||
"http://lblod.data.gift/services/delta-producer-background-jobs-initiator/worship-posts"
|
||||
]
|
||||
}
|
||||
@@ -63,38 +63,6 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/initialPublicationGraphSyncing/organizations-public-info": {
|
||||
"tasksConfiguration": [
|
||||
{
|
||||
"currentOperation": null,
|
||||
"nextOperation": "http://redpencil.data.gift/id/jobs/concept/TaskOperation/deltas/initialPublicationGraphSyncing",
|
||||
"nextIndex": "0"
|
||||
},
|
||||
{
|
||||
"currentOperation": "http://redpencil.data.gift/id/jobs/concept/TaskOperation/deltas/initialPublicationGraphSyncing",
|
||||
"nextOperation": "http://redpencil.data.gift/id/jobs/concept/TaskOperation/deltas/deltaDumpFileCreation",
|
||||
"nextIndex": "1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/healingOperation/organizations-public-info": {
|
||||
"tasksConfiguration": [
|
||||
{
|
||||
"currentOperation": null,
|
||||
"nextOperation": "http://redpencil.data.gift/id/jobs/concept/TaskOperation/deltas/healing/patchPublicationGraph",
|
||||
"nextIndex": "0"
|
||||
}
|
||||
]
|
||||
},
|
||||
"http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/deltaDumpFileCreation/organizations-public-info": {
|
||||
"tasksConfiguration": [
|
||||
{
|
||||
"currentOperation": null,
|
||||
"nextOperation": "http://redpencil.data.gift/id/jobs/concept/TaskOperation/deltas/deltaDumpFileCreation",
|
||||
"nextIndex": "0"
|
||||
}
|
||||
]
|
||||
},
|
||||
"http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/initialPublicationGraphSyncing/public": {
|
||||
"tasksConfiguration": [
|
||||
{
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
INSERT DATA {
|
||||
GRAPH <http://mu.semte.ch/graphs/system/email> {
|
||||
<http://data.lblod.info/id/mailboxes/1> a <http://www.semanticdesktop.org/ontologies/2007/03/22/nmo#Mailbox>;
|
||||
<http://mu.semte.ch/vocabularies/core/uuid> "cf9cb7e4-9a00-4855-9ee0-e8e3bbeba9e9";
|
||||
<http://www.semanticdesktop.org/ontologies/2007/01/19/nie#hasPart> <http://data.lblod.info/id/mail-folders/1>;
|
||||
<http://www.semanticdesktop.org/ontologies/2007/01/19/nie#hasPart> <http://data.lblod.info/id/mail-folders/2>;
|
||||
<http://www.semanticdesktop.org/ontologies/2007/01/19/nie#hasPart> <http://data.lblod.info/id/mail-folders/3>;
|
||||
<http://www.semanticdesktop.org/ontologies/2007/01/19/nie#hasPart> <http://data.lblod.info/id/mail-folders/4>;
|
||||
<http://www.semanticdesktop.org/ontologies/2007/01/19/nie#hasPart> <http://data.lblod.info/id/mail-folders/5>;
|
||||
<http://www.semanticdesktop.org/ontologies/2007/01/19/nie#hasPart> <http://data.lblod.info/id/mail-folders/6>.
|
||||
|
||||
<http://data.lblod.info/id/mail-folders/1> a <http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Folder>;
|
||||
<http://mu.semte.ch/vocabularies/core/uuid> "891c67e5-4719-47f8-aec2-d898ba2c09e8";
|
||||
<http://www.semanticdesktop.org/ontologies/2007/01/19/nie#title> "inbox";
|
||||
<http://www.semanticdesktop.org/ontologies/2007/01/19/nie#description> "Your incoming mail goes here.".
|
||||
|
||||
<http://data.lblod.info/id/mail-folders/2> a <http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Folder>;
|
||||
<http://mu.semte.ch/vocabularies/core/uuid> "786a8cb0-4452-40f5-b8d8-046dd2d63281";
|
||||
<http://www.semanticdesktop.org/ontologies/2007/01/19/nie#title> "outbox";
|
||||
<http://www.semanticdesktop.org/ontologies/2007/01/19/nie#description> "Your outgoing mail goes here.".
|
||||
|
||||
<http://data.lblod.info/id/mail-folders/3> a <http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Folder>;
|
||||
<http://mu.semte.ch/vocabularies/core/uuid> "a6fb03f9-11be-4401-9d8f-b4dc0e9df5ee";
|
||||
<http://www.semanticdesktop.org/ontologies/2007/01/19/nie#title> "sentbox";
|
||||
<http://www.semanticdesktop.org/ontologies/2007/01/19/nie#description> "Your sent mail goes here.".
|
||||
|
||||
|
||||
<http://data.lblod.info/id/mail-folders/4> a <http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Folder>;
|
||||
<http://mu.semte.ch/vocabularies/core/uuid> "a430a848-e595-49fa-bc11-f5579605877f";
|
||||
<http://www.semanticdesktop.org/ontologies/2007/01/19/nie#title> "sending";
|
||||
<http://www.semanticdesktop.org/ontologies/2007/01/19/nie#description> "Your mail goes here while being sent.".
|
||||
|
||||
<http://data.lblod.info/id/mail-folders/5> a <http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Folder>;
|
||||
<http://mu.semte.ch/vocabularies/core/uuid> "0cb108a9-1c0d-4c0a-bf53-60e304116e47";
|
||||
<http://www.semanticdesktop.org/ontologies/2007/01/19/nie#title> "drafts";
|
||||
<http://www.semanticdesktop.org/ontologies/2007/01/19/nie#description> "Your draft goes here.".
|
||||
|
||||
<http://data.lblod.info/id/mail-folders/6> a <http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Folder>;
|
||||
<http://mu.semte.ch/vocabularies/core/uuid> "70c0baba-17a0-11eb-adc1-0242ac120002";
|
||||
<http://www.semanticdesktop.org/ontologies/2007/01/19/nie#title> "failbox";
|
||||
<http://www.semanticdesktop.org/ontologies/2007/01/19/nie#description> "Your email that failed while sending goes here.".
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
PREFIX mu: <http://mu.semte.ch/vocabularies/core/>
|
||||
PREFIX ext: <http://mu.semte.ch/vocabularies/ext/>
|
||||
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
||||
PREFIX prov: <http://www.w3.org/ns/prov#>
|
||||
|
||||
DELETE {
|
||||
GRAPH ?g {
|
||||
?aalter rdfs:label ?label .
|
||||
}
|
||||
} INSERT {
|
||||
GRAPH ?g {
|
||||
?aalter rdfs:label "Aalter (voor fusie)" .
|
||||
}
|
||||
} WHERE {
|
||||
GRAPH ?g {
|
||||
?aalter a prov:Location ;
|
||||
rdfs:label ?label .
|
||||
|
||||
VALUES ?aalter {
|
||||
<http://data.lblod.info/id/werkingsgebieden/7a7daa48e9e6449358cf96be6c7b30466648d31236e56b8958fae7d53e2308b8>
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
;
|
||||
|
||||
DELETE {
|
||||
GRAPH ?g {
|
||||
?deinze rdfs:label ?label .
|
||||
}
|
||||
} INSERT {
|
||||
GRAPH ?g {
|
||||
?deinze rdfs:label "Deinze (voor fusie)" .
|
||||
}
|
||||
} WHERE {
|
||||
GRAPH ?g {
|
||||
?deinze a prov:Location ;
|
||||
rdfs:label ?label .
|
||||
|
||||
VALUES ?deinze {
|
||||
<http://data.lblod.info/id/werkingsgebieden/a567b3fdb462a8513ffeeff0188317003c5bbb7debb8f1ea9245b83e1d43b437>
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
PREFIX org: <http://www.w3.org/ns/org#>
|
||||
PREFIX mu: <http://mu.semte.ch/vocabularies/core/>
|
||||
|
||||
|
||||
DELETE {
|
||||
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
|
||||
?membership ?p ?o .
|
||||
}
|
||||
}
|
||||
WHERE {
|
||||
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
|
||||
?membership ?p ?o .
|
||||
}
|
||||
|
||||
FILTER(?membership IN (
|
||||
<http://data.lblod.info/id/lidmaatschap/e30da404c9e798fbf6c3cb08c18aa2fb3467fbb17d0ee3bf7aeea2e33b506394>,
|
||||
<http://data.lblod.info/id/lidmaatschap/57e299c1371ff49f9ab4a59c04f213adb95bbd412fca118ba7b97923e8911f1e>,
|
||||
<http://data.lblod.info/id/lidmaatschap/b5ffde4275206674ce04aec50b96055790fe2bc899688cafab5f317aa351340c>,
|
||||
<http://data.lblod.info/id/lidmaatschap/6b63778ff8a7805b1bb6eadf016e4eb16eb5bf41>,
|
||||
<http://data.lblod.info/id/lidmaatschap/7983bd733dd478ee37e74077a9079d34d0d2f8e1>,
|
||||
<http://data.lblod.info/id/lidmaatschap/b9024618552754cdcf0802109404f2bb5948fe03>,
|
||||
<http://data.lblod.info/id/lidmaatschap/ef819edf7cce76075aa41d5b42a41ad95e54c73225e1eca066352ecda3780e2a>,
|
||||
<http://data.lblod.info/id/lidmaatschap/ce7ae35e02378f6496d02ef27a826330b22a083b>,
|
||||
<http://data.lblod.info/id/lidmaatschap/d275f7cb4cbe0dbf5311d9015c08830a982bb7d3dca565862206d6a840b30dbf>
|
||||
))
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
CLEAR GRAPH <http://redpencil.data.gift/id/deltas/producer/organizations-public-info>
|
||||
@@ -1,5 +1,7 @@
|
||||
import OrganizationsReport from './organizations-report'
|
||||
import RelatedOrganizationsReport from './related-organizations-report'
|
||||
|
||||
export default [
|
||||
OrganizationsReport,
|
||||
RelatedOrganizationsReport,
|
||||
];
|
||||
|
||||
137
config/reports/related-organizations-report.js
Normal file
137
config/reports/related-organizations-report.js
Normal file
@@ -0,0 +1,137 @@
|
||||
import { generateReportFromData, batchedQuery } from "../helpers.js";
|
||||
import { PREFIXES } from "./utils";
|
||||
|
||||
export default {
|
||||
cronPattern: "0 00 4 * * *",
|
||||
name: "relatedOrganizations",
|
||||
execute: async () => {
|
||||
const reportData = {
|
||||
title: "related organizations",
|
||||
description: "List of related Organizations and their relationships",
|
||||
filePrefix: "exports/related-organizations",
|
||||
};
|
||||
|
||||
console.log("Generating related organizations report");
|
||||
|
||||
const queryString = `
|
||||
${PREFIXES}
|
||||
|
||||
SELECT DISTINCT
|
||||
?role_label_renamed
|
||||
?organization
|
||||
?organization_label
|
||||
?organization_classification_label
|
||||
?organization_status_label
|
||||
?organization_kbo_number
|
||||
?related_organization
|
||||
?related_organization_label
|
||||
?related_organization_classification_label
|
||||
?related_organization_status_label
|
||||
?related_organization_kbo_number
|
||||
WHERE {
|
||||
{
|
||||
?membership org:member ?organization ;
|
||||
org:role ?role ;
|
||||
org:organization ?related_organization .
|
||||
?role skos:prefLabel ?role_label .
|
||||
BIND(
|
||||
IF(?role_label = "participant", "Participeert in",
|
||||
IF(?role_label = "stichtend lid", "Is oprichter van",
|
||||
IF(?role_label = "gerelateerd", "Heeft een relatie met",
|
||||
?role_label)))
|
||||
AS ?role_label_renamed
|
||||
)
|
||||
}
|
||||
UNION
|
||||
{
|
||||
|
||||
?membership org:member ?related_organization ;
|
||||
org:role ?role ;
|
||||
org:organization ?organization .
|
||||
?role skos:prefLabel ?role_label .
|
||||
BIND(
|
||||
IF(?role_label = "participant", "Heeft als participanten",
|
||||
IF(?role_label = "stichtend lid", "Werd opgericht door",
|
||||
IF(?role_label = "gerelateerd", "Heeft een relatie met",
|
||||
?role_label)))
|
||||
AS ?role_label_renamed
|
||||
)
|
||||
}
|
||||
|
||||
?organization a org:Organization ;
|
||||
skos:prefLabel ?organization_label ;
|
||||
regorg:orgStatus ?organization_status .
|
||||
|
||||
OPTIONAL { ?organization_status skos:prefLabel ?organization_status_label . }
|
||||
|
||||
?organization org:classification ?organization_classification .
|
||||
?organization_classification skos:prefLabel ?organization_classification_label .
|
||||
|
||||
?related_organization skos:prefLabel ?related_organization_label ;
|
||||
regorg:orgStatus ?related_organization_status .
|
||||
|
||||
OPTIONAL { ?related_organization_status skos:prefLabel ?related_organization_status_label . }
|
||||
|
||||
?related_organization org:classification ?related_organization_classification .
|
||||
?related_organization_classification skos:prefLabel ?related_organization_classification_label .
|
||||
|
||||
OPTIONAL {
|
||||
?organization adms:identifier ?identifier1 .
|
||||
?identifier1 skos:notation "KBO nummer" ;
|
||||
generiek:gestructureerdeIdentificator ?id1 .
|
||||
?id1 generiek:lokaleIdentificator ?organization_kbo_number .
|
||||
}
|
||||
OPTIONAL {
|
||||
?related_organization adms:identifier ?identifier2 .
|
||||
?identifier2 skos:notation "KBO nummer" ;
|
||||
generiek:gestructureerdeIdentificator ?id2 .
|
||||
?id2 generiek:lokaleIdentificator ?related_organization_kbo_number .
|
||||
}
|
||||
}
|
||||
ORDER BY ?organization
|
||||
`;
|
||||
|
||||
const queryResponse = await batchedQuery(queryString);
|
||||
|
||||
const data = queryResponse.results.bindings.map((row) => ({
|
||||
role_label_renamed: getSafeValue(row, "role_label_renamed"),
|
||||
organization: getSafeValue(row, "organization"),
|
||||
organization_label: getSafeValue(row, "organization_label"),
|
||||
organization_classification_label: getSafeValue(row, "organization_classification_label"),
|
||||
organization_status_label: getSafeValue(row, "organization_status_label"),
|
||||
organization_kbo_number: getSafeValue(row, "organization_kbo_number"),
|
||||
related_organization: getSafeValue(row, "related_organization"),
|
||||
related_organization_label: getSafeValue(row, "related_organization_label"),
|
||||
related_organization_classification_label: getSafeValue(row, "related_organization_classification_label"),
|
||||
related_organization_status_label: getSafeValue(row, "related_organization_status_label"),
|
||||
related_organization_kbo_number: getSafeValue(row, "related_organization_kbo_number"),
|
||||
}));
|
||||
|
||||
await generateReportFromData(
|
||||
data,
|
||||
[
|
||||
"role_label_renamed",
|
||||
"organization",
|
||||
"organization_label",
|
||||
"organization_classification_label",
|
||||
"organization_status_label",
|
||||
"organization_kbo_number",
|
||||
"related_organization",
|
||||
"related_organization_label",
|
||||
"related_organization_classification_label",
|
||||
"related_organization_status_label",
|
||||
"related_organization_kbo_number",
|
||||
],
|
||||
reportData,
|
||||
);
|
||||
},
|
||||
};
|
||||
|
||||
function getSafeValue(entry, property) {
|
||||
return entry[property] ? wrapInQuote(entry[property].value) : null;
|
||||
}
|
||||
|
||||
// Some values might contain commas; wrapping them in escapes quotes doesn't disrupt the columns.
|
||||
function wrapInQuote(value) {
|
||||
return `\"${value}\"`;
|
||||
}
|
||||
@@ -19,6 +19,8 @@ services:
|
||||
restart: "no"
|
||||
migrations-triggering-indexing:
|
||||
restart: "no"
|
||||
publication-triplestore-migrations:
|
||||
restart: "no"
|
||||
resource:
|
||||
restart: "no"
|
||||
cache:
|
||||
@@ -95,6 +97,17 @@ services:
|
||||
BASE_URL: "http://localhost/ldes/"
|
||||
kbo-data-sync:
|
||||
restart: "no"
|
||||
error-alert:
|
||||
environment:
|
||||
EMAIL_FROM: 'test@example.com'
|
||||
EMAIL_TO: '123@example.com'
|
||||
restart: "no"
|
||||
deliver-email-service:
|
||||
environment:
|
||||
EMAIL_CRON_PATTERN: "*/5 * * * *"
|
||||
WELL_KNOWN_SERVICE: "test"
|
||||
FROM_NAME: "Your Name"
|
||||
restart: "no"
|
||||
# use this to test acmidm
|
||||
# tlsproxy:
|
||||
# image: caddy:2
|
||||
|
||||
@@ -78,6 +78,16 @@ services:
|
||||
- "logging=true"
|
||||
restart: always
|
||||
logging: *default-logging
|
||||
publication-triplestore-migrations:
|
||||
image: semtech/mu-migrations-service:0.9.0
|
||||
links:
|
||||
- publication-triplestore:database
|
||||
volumes:
|
||||
- ./config/publication-triplestore-migrations:/data/migrations
|
||||
labels:
|
||||
- "logging=true"
|
||||
restart: always
|
||||
logging: *default-logging
|
||||
resource:
|
||||
image: semtech/mu-cl-resources:1.24.0
|
||||
environment:
|
||||
@@ -196,13 +206,13 @@ services:
|
||||
links:
|
||||
- db:database
|
||||
adressenregister:
|
||||
image: lblod/adressenregister-fuzzy-search-service:0.8.0
|
||||
image: lblod/adressenregister-fuzzy-search-service:0.8.2
|
||||
labels:
|
||||
- "logging=true"
|
||||
restart: always
|
||||
logging: *default-logging
|
||||
frontend:
|
||||
image: lblod/frontend-organization-portal:1.36.2
|
||||
image: lblod/frontend-organization-portal:1.36.5
|
||||
volumes:
|
||||
- ./config/frontend/add-x-frame-options-header.conf:/config/add-x-frame-options.conf
|
||||
environment:
|
||||
@@ -626,6 +636,30 @@ services:
|
||||
restart: always
|
||||
logging: *default-logging
|
||||
|
||||
error-alert:
|
||||
image: lblod/loket-error-alert-service:1.0.1
|
||||
environment:
|
||||
APP_NAME: 'OP'
|
||||
volumes:
|
||||
- ./config/error-alert:/config/
|
||||
links:
|
||||
- db:database
|
||||
labels:
|
||||
- "logging=true"
|
||||
restart: always
|
||||
logging: *default-logging
|
||||
|
||||
deliver-email-service:
|
||||
image: redpencil/deliver-email-service:1.0.0
|
||||
environment:
|
||||
MAILBOX_URI: "http://data.lblod.info/id/mailboxes/1"
|
||||
links:
|
||||
- db:database
|
||||
labels:
|
||||
- "logging=true"
|
||||
restart: always
|
||||
logging: *default-logging
|
||||
|
||||
roles:
|
||||
image: lblod/select-role-service:0.1.0
|
||||
labels:
|
||||
|
||||
Reference in New Issue
Block a user