Add migrations to set the initial scope of operation for worship administrative
units. These migrations work in several steps:
1. Extract the necessary relations between worship administrative units and
locations based on the rules provided by business and insert this data in a
temporary graph.
2. For worship administrative units related to only a single location. Simply
add the triple setting that location as its scope of operation.
3. For worship administrative units related to multiple locations. Create new
location resources that aggregates all locations linked to a single worship
administrative unit and set this new location resource as scope of operation.
4. Clear the temporary graph.
Due to the restriction that an organisation can have only 1
location (nl. werkingsgebied) we need to create ad-hoc locations containing
multiple locations. As such enforcing that a location can only be contained in a
single other location is too restrictive. For example, this would prevent the
same municipality location to be within two (or more) different locations for
different organisations.
This service provides functionality to manage an organisation's scope of
operation. To this end it facilitates that each organisation can be linked with
exactly one location resources as scope of operation, internally creating and
linking the appropriate resources.
This organisation was removed from OP as it is officially not an administrative
unit. But it needs to be recreated to allow them to finalise subsidies via the
subsidie app.
As the resources has to be created with the same URI as before we re-add it
using a migrations instead of creating it manually via the frontend.
Putting the optional clause within the graph clause causes to query causes,
using DEV data, some organisations to be missed by the query. Turning the order
around resolves this without losing any organisations, tested with DEV and PROD data.
All resources with type `besluit:Bestuurseenheid` also have `org:Organization`
as type. Including both types in the queries leads to some organisations,
specifically municipalities in the `shared` graph, being included twice in the
results. Once with all data and once without label etc. This leads to the
results of both queries being incorrectly combined and having entries in the
final result without label.
This includes an organisation's URI in the response from the resource
service. This allows to easily get the URI for an organisation without having to
determine it based to UUID and classification and/or explicitly querying the
triplestore.
This is mostly a convenience for developers, but can be leveraged to add a link
to Centrale Vindplaats in the frontend.
As part of the 2025 municipality mergers, three municipalities kept their URI
but were renamed. This updates the labels for their scope of
operation (nl. werkingsgebied) locations accordingly. This way the label of the
location resources matches the name of the municipality administrative unit.
Add cleanup jobs to automatically insert and delete `org:hasSubOrganization`
relations between provinces and municipalities. These memberships were moved to
the `shared` graph causing the existing cleanup jobs to no longer work for them.
The frontend relies on the memberships relating municipalities and province to
- automatically select the appropriate province given a municipality; and
- limit the municipality options to those in a given province.
This kind of functionality is used in both the worship and non-worship module so
the data should be readable by users with either roles. This moves the
appropriate data the `shared` graph, which can be read by all authenticated
users. Thereby fixing that that functionality was broken for users with the
worship role.