Merge branch 'development' into OP-3851-migration-to-fix-duplicate-worship-service-mandates

# Conflicts:
#	CHANGELOG.md
This commit is contained in:
Damon
2026-08-21 14:13:01 +02:00
8 changed files with 124 additions and 5 deletions

View File

@@ -25,8 +25,12 @@
- Keep werkingsgebied filter up to date via db-cleanup service [OP-3841]
- Restrict available imam roles based on worship organisation status [DL-7485]
- IMPORTANT NOTE: Make sure first the [DL-7485] loket migration has completed + data has flown from loket to OP
- Frontend [v1.41.1](https://github.com/lblod/frontend-organization-portal/blob/v1.41.1/CHANGELOG.md) [DL-7438]
- Fix broken lmb mandataris mappin query [OP-3867]
- Add the value politiecollege to the existing dropdown list beslissingsorgaan [DL-7473]
- Bump construct-organization-relationships [DL-7473] [OP-3851]
- fix duplicate van rechtswege/grote helft mandates [OP-3851]
- IMPORTANT NOTE: Make sure first the [OP-3851] loket migration has completed + data has flown from loket to OP
- IMPORTANT NOTE: Make sure first the loket migration has completed + data has flown from loket to OP
### Deploy notes
```
@@ -69,6 +73,16 @@ drc restart cache resource
drc restart migrations resource delta-producer-publication-graph-maintainer
```
```
drc restart migrations mandatarissen-consumer
```
```
drc restart migrations
drc exec delta-producer-background-jobs-initiator curl -X POST http://localhost/public/healing-jobs
drc up -d construct-organization-relationships
```
## v1.41.0
- added explicit healtchecks [DL-7466]

View File

@@ -8,10 +8,10 @@ CONSTRUCT {
?p ?o.
?orgaanInTime <http://www.w3.org/ns/org#hasPost> ?mandate ;
<http://data.vlaanderen.be/ns/mandaat#isTijdspecialisatieVan> ?orgaan .
<https://data.vlaanderen.be/ns/generiek#isTijdspecialisatieVan> ?orgaan .
?orgaan <http://data.vlaanderen.be/ns/besluit#bestuurt> ?bestuur .
?bestuur <http://data.vlaanderen.be/ns/besluit#classificatie> ?classification .
?bestuur <http://www.w3.org/ns/org#classification> ?classification .
FILTER(?classification IN (

View File

@@ -0,0 +1,11 @@
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix mu: <http://mu.semte.ch/vocabularies/core/> .
@prefix ext: <http://mu.semte.ch/vocabularies/ext/> .
@prefix code: <http://lblod.data.gift/vocabularies/organisatie/> .
<http://data.vlaanderen.be/id/concept/BestuursorgaanClassificatieCode/4f82dfea-0581-43d4-b672-3bdb261d2d33>
rdf:type code:BestuursorgaanClassificatieCode , skos:Concept , ext:BestuursorgaanClassificatieCode ;
mu:uuid "4f82dfea-0581-43d4-b672-3bdb261d2d33" ;
skos:prefLabel "Politiecollege" ;
skos:inScheme <http://lblod.data.gift/concept-schemes/10caf4a4-1ff5-4c05-917e-56489910d68b> .

View File

@@ -0,0 +1,19 @@
PREFIX mandaat: <http://data.vlaanderen.be/ns/mandaat#>
PREFIX besluit: <http://data.vlaanderen.be/ns/besluit#>
PREFIX org: <http://www.w3.org/ns/org#>
PREFIX generiek: <https://data.vlaanderen.be/ns/generiek#>
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?timedBody mandaat:bindingEinde "2026-07-02T00:00:00"^^xsd:dateTime .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?politiezone a besluit:Bestuurseenheid ;
org:classification <http://data.vlaanderen.be/id/concept/BestuurseenheidClassificatieCode/a3922c6d-425b-474f-9a02-ffb71a436bfc> . # Politiezone
?governingBody besluit:bestuurt ?politiezone ;
org:classification <http://data.vlaanderen.be/id/concept/BestuursorgaanClassificatieCode/1afce932-53c1-46d8-8aab-90dcc331e67d> . # Politieraad
?timedBody generiek:isTijdspecialisatieVan ?governingBody .
FILTER NOT EXISTS { ?timedBody mandaat:bindingEinde ?endDate . }
}
}

View File

@@ -0,0 +1,34 @@
PREFIX mandaat: <http://data.vlaanderen.be/ns/mandaat#>
PREFIX besluit: <http://data.vlaanderen.be/ns/besluit#>
PREFIX org: <http://www.w3.org/ns/org#>
PREFIX generiek: <https://data.vlaanderen.be/ns/generiek#>
PREFIX mu: <http://mu.semte.ch/vocabularies/core/>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?newGoverningBody a besluit:Bestuursorgaan ;
mu:uuid ?newGoverningBodyUuid ;
skos:prefLabel ?newGoverningBodyLabel ;
besluit:bestuurt ?politiezone ;
org:classification <http://data.vlaanderen.be/id/concept/BestuursorgaanClassificatieCode/4f82dfea-0581-43d4-b672-3bdb261d2d33> . # Politiecollege
?newTimedGoverningBody a besluit:Bestuursorgaan ;
mu:uuid ?newTimedGoverningBodyUuid ;
generiek:isTijdspecialisatieVan ?newGoverningBody ;
mandaat:bindingStart "2026-07-02T00:00:00"^^xsd:dateTime .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?politiezone a besluit:Bestuurseenheid ;
org:classification <http://data.vlaanderen.be/id/concept/BestuurseenheidClassificatieCode/a3922c6d-425b-474f-9a02-ffb71a436bfc> ; # Politiezone
mu:uuid ?politiezoneUuid ;
skos:prefLabel ?politiezoneLabel .
?oldGoverningBody besluit:bestuurt ?politiezone ;
org:classification <http://data.vlaanderen.be/id/concept/BestuursorgaanClassificatieCode/1afce932-53c1-46d8-8aab-90dcc331e67d> . # Politieraad
}
BIND(CONCAT("Politiecollege ", ?politiezoneLabel) AS ?newGoverningBodyLabel)
BIND(SHA256(CONCAT("politiecollege-", STR(?politiezoneUuid))) AS ?newGoverningBodyUuid)
BIND(IRI(CONCAT("http://data.lblod.info/id/bestuursorganen/", STR(?newGoverningBodyUuid))) AS ?newGoverningBody)
BIND(SHA256(CONCAT("politiecollege-timed-", STR(?politiezoneUuid))) AS ?newTimedGoverningBodyUuid)
BIND(IRI(CONCAT("http://data.lblod.info/id/bestuursorganen/", STR(?newTimedGoverningBodyUuid))) AS ?newTimedGoverningBody)
}

View File

@@ -0,0 +1,40 @@
PREFIX mandaat: <http://data.vlaanderen.be/ns/mandaat#>
PREFIX generiek: <https://data.vlaanderen.be/ns/generiek#>
PREFIX org: <http://www.w3.org/ns/org#>
PREFIX besluit: <http://data.vlaanderen.be/ns/besluit#>
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s ?p ?o.
}
}
WHERE {
GRAPH <http://mu.semte.ch/graphs/landing-zone/mandatarissen> {
?s a mandaat:Mandataris;
org:holds ?mandate;
?p ?o.
}
?orgaanInTime org:hasPost ?mandate ;
generiek:isTijdspecialisatieVan ?orgaan .
?orgaan besluit:bestuurt ?bestuur .
?bestuur org:classification ?classification .
FILTER(?classification IN (
<http://data.vlaanderen.be/id/concept/BestuurseenheidClassificatieCode/5ab0e9b8a3b2ca7c5e000000>,
<http://data.vlaanderen.be/id/concept/BestuurseenheidClassificatieCode/5ab0e9b8a3b2ca7c5e000001>,
<http://data.vlaanderen.be/id/concept/BestuurseenheidClassificatieCode/5ab0e9b8a3b2ca7c5e000002>,
<http://data.vlaanderen.be/id/concept/BestuurseenheidClassificatieCode/5ab0e9b8a3b2ca7c5e000003>
))
FILTER (?p NOT IN (mandaat:start, mandaat:einde))
FILTER NOT EXISTS {
?s ?p "" .
}
FILTER NOT EXISTS {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> { ?s org:holds ?mandate }
}
}

View File

@@ -215,7 +215,7 @@ services:
restart: always
logging: *default-logging
frontend:
image: lblod/frontend-organization-portal:1.41.0
image: lblod/frontend-organization-portal:1.41.1
volumes:
- ./config/frontend/add-x-frame-options-header.conf:/config/add-x-frame-options.conf
environment:
@@ -308,7 +308,7 @@ services:
restart: always
logging: *default-logging
construct-organization-relationships:
image: lblod/construct-organization-relationships-service:1.1.4
image: lblod/construct-organization-relationships-service:1.2.0
links:
- db:database
labels: