Merge branch 'development' into OP-3817-inhoudelijk-thema
This commit is contained in:
20
CHANGELOG.md
20
CHANGELOG.md
@@ -2,15 +2,31 @@
|
||||
## Unreleased
|
||||
- Added service to link addresses to addressregister uris [OP-3795]
|
||||
- Derive an organization's reference region(s) from its werkingsgebied; bump scope-of-operation to 0.2.0 [OP-3799]
|
||||
- Frontend [v1.38.0]
|
||||
- Site type changes [OP-3818]
|
||||
- Frontend [v1.40.1](https://github.com/lblod/frontend-organization-portal/blob/v1.40.1/CHANGELOG.md), [v1.40.0](https://github.com/lblod/frontend-organization-portal/blob/5d2147662f620d420f54b9624a12c42ca2ac964a/CHANGELOG.md#v1400-2026-07-06), [v1.39.0](https://github.com/lblod/frontend-organization-portal/blob/5d2147662f620d420f54b9624a12c42ca2ac964a/CHANGELOG.md#v1390-2026-06-25) ,[v1.38.0](https://github.com/lblod/frontend-organization-portal/blob/5d2147662f620d420f54b9624a12c42ca2ac964a/CHANGELOG.md#v1380-2026-06-12)
|
||||
- Added Juridische vorm [OP-3816] [OP-3820]
|
||||
- Add new organization types (interlokale vereniging, vervoerregioraad, zorgraad, bosgroep, woonmaatschappij); add werkingsgebied (dct:spatial) to registered organizations [OP-3828]
|
||||
- Rename generic organization types to "Vereniging algemeen" / "Vennootschap algemeen" [OP-3828]
|
||||
- bump construct-organization-relationships [OP-3810]
|
||||
- "In Oprichting" bestuursorgaan lifecycle [OP-3810]
|
||||
|
||||
### Deploy notes
|
||||
```
|
||||
drc up -d link-adressenregister-uri
|
||||
drc up -d link-adressenregister-uri frontend construct-organization-relationships
|
||||
drc restart resource migrations dispatcher
|
||||
```
|
||||
|
||||
```
|
||||
drc restart migrations
|
||||
drc up -d frontend scope-of-operation
|
||||
drc restart cache resource
|
||||
```
|
||||
|
||||
```
|
||||
drc pull construct-organization-relationships && drc up -d construct-organization-relationships
|
||||
drc restart migrations
|
||||
drc restart resource cache
|
||||
scripts/reset-elastic.sh
|
||||
```
|
||||
|
||||
## v1.40.0
|
||||
|
||||
@@ -386,7 +386,7 @@ defmodule Dispatcher do
|
||||
layer: :api_services,
|
||||
accept: %{json: true}
|
||||
} do
|
||||
forward(conn, path, "http://construct-organization-relationships/create-relationships/")
|
||||
forward(conn, path, "http://construct-organization-relationships/")
|
||||
end
|
||||
|
||||
post "/kbo-data-sync/*path", %{layer: :api_services, accept: %{json: true}} do
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
http://mu.semte.ch/graphs/public
|
||||
@@ -0,0 +1,51 @@
|
||||
# New organization classification codes (ticket: new org types).
|
||||
# prefLabel = technically-correct org name; altLabel = colloquial werkingsgebied term.
|
||||
# URIs under data.vlaanderen.be/id/concept/<Family>/<uuid> (to be published upstream) - matches existing codes.
|
||||
# Each code is inScheme its family scheme AND the public-export scheme (10caf4a4) = the export switch.
|
||||
@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/> .
|
||||
@prefix scheme: <http://data.vlaanderen.be/id/conceptscheme/> .
|
||||
|
||||
# --- BestuurseenheidClassificatieCode (besluit:Bestuurseenheid) ---
|
||||
|
||||
<http://data.vlaanderen.be/id/concept/BestuurseenheidClassificatieCode/3a2649ef-7345-4d3a-8709-f89fc9b44f58>
|
||||
rdf:type ext:OrganizationClassificationCode , code:BestuurseenheidClassificatieCode ;
|
||||
mu:uuid "3a2649ef-7345-4d3a-8709-f89fc9b44f58" ;
|
||||
skos:prefLabel "Interlokale vereniging" ;
|
||||
skos:topConceptOf scheme:BestuurseenheidClassificatieCode ;
|
||||
skos:inScheme scheme:BestuurseenheidClassificatieCode , <http://lblod.data.gift/concept-schemes/10caf4a4-1ff5-4c05-917e-56489910d68b> .
|
||||
|
||||
<http://data.vlaanderen.be/id/concept/BestuurseenheidClassificatieCode/b2133b86-24f0-44f0-9d10-5b4c7f944a9d>
|
||||
rdf:type ext:OrganizationClassificationCode , code:BestuurseenheidClassificatieCode ;
|
||||
mu:uuid "b2133b86-24f0-44f0-9d10-5b4c7f944a9d" ;
|
||||
skos:prefLabel "Vervoerregioraad" ;
|
||||
skos:altLabel "Vervoerregio" ; # Modelled as the werkingsgebied of a Vervoerregioraad, but colloquially known as a Vervoerregio.
|
||||
skos:topConceptOf scheme:BestuurseenheidClassificatieCode ;
|
||||
skos:inScheme scheme:BestuurseenheidClassificatieCode , <http://lblod.data.gift/concept-schemes/10caf4a4-1ff5-4c05-917e-56489910d68b> .
|
||||
|
||||
# --- GeregistreerdeOrganisatieClassificatieCode (regorg:RegisteredOrganization) ---
|
||||
|
||||
<http://data.vlaanderen.be/id/concept/GeregistreerdeOrganisatieClassificatieCode/8392b885-a875-4b0d-b6a2-b52e53bda454>
|
||||
rdf:type ext:OrganizationClassificationCode , ext:GeregistreerdeOrganisatieClassificatieCode ;
|
||||
mu:uuid "8392b885-a875-4b0d-b6a2-b52e53bda454" ;
|
||||
skos:prefLabel "Zorgraad" ;
|
||||
skos:altLabel "Eerstelijnszone" ; # Modelled as the werkingsgebied of a Zorgraad, but colloquially known as an Eerstelijnszone.
|
||||
skos:topConceptOf scheme:GeregistreerdeOrganisatieClassificatieCode ;
|
||||
skos:inScheme scheme:GeregistreerdeOrganisatieClassificatieCode , <http://lblod.data.gift/concept-schemes/10caf4a4-1ff5-4c05-917e-56489910d68b> .
|
||||
|
||||
<http://data.vlaanderen.be/id/concept/GeregistreerdeOrganisatieClassificatieCode/b22948f9-e695-4f24-a530-b6bf3af3b37f>
|
||||
rdf:type ext:OrganizationClassificationCode , ext:GeregistreerdeOrganisatieClassificatieCode ;
|
||||
mu:uuid "b22948f9-e695-4f24-a530-b6bf3af3b37f" ;
|
||||
skos:prefLabel "Bosgroep" ;
|
||||
skos:topConceptOf scheme:GeregistreerdeOrganisatieClassificatieCode ;
|
||||
skos:inScheme scheme:GeregistreerdeOrganisatieClassificatieCode , <http://lblod.data.gift/concept-schemes/10caf4a4-1ff5-4c05-917e-56489910d68b> .
|
||||
|
||||
<http://data.vlaanderen.be/id/concept/GeregistreerdeOrganisatieClassificatieCode/f4e5bb57-1007-4397-828b-b34bbf1e760d>
|
||||
rdf:type ext:OrganizationClassificationCode , ext:GeregistreerdeOrganisatieClassificatieCode ;
|
||||
mu:uuid "f4e5bb57-1007-4397-828b-b34bbf1e760d" ;
|
||||
skos:prefLabel "Woonmaatschappij" ;
|
||||
skos:topConceptOf scheme:GeregistreerdeOrganisatieClassificatieCode ;
|
||||
skos:inScheme scheme:GeregistreerdeOrganisatieClassificatieCode , <http://lblod.data.gift/concept-schemes/10caf4a4-1ff5-4c05-917e-56489910d68b> .
|
||||
@@ -0,0 +1 @@
|
||||
http://mu.semte.ch/graphs/public
|
||||
@@ -0,0 +1,35 @@
|
||||
# Governing body (bestuursorgaan) + mandate (bestuursfunctie) codes for the Vervoerregioraad.
|
||||
# The vervoerregioraad is itself the deliberative organ (no AV/RvB substructure); members + a
|
||||
# (dual) voorzitter. URIs under data.vlaanderen.be (to be published), matching existing codes.
|
||||
# NOTE (business to confirm): exact role set + the dual voorzitterschap (gemeente-vertegenwoordiger
|
||||
# + Departement MOW) — modeled here as a single Voorzitter + Lid.
|
||||
@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/> .
|
||||
@prefix scheme: <http://data.vlaanderen.be/id/conceptscheme/> .
|
||||
|
||||
# --- Bestuursorgaan: the Vervoerregioraad itself ---
|
||||
<http://data.vlaanderen.be/id/concept/BestuursorgaanClassificatieCode/a04a5fb1-b79c-4b8d-a664-c5410d466d49>
|
||||
rdf:type code:BestuursorgaanClassificatieCode , skos:Concept , ext:BestuursorgaanClassificatieCode ;
|
||||
mu:uuid "a04a5fb1-b79c-4b8d-a664-c5410d466d49" ;
|
||||
skos:prefLabel "Vervoerregioraad" ;
|
||||
skos:inScheme <http://lblod.data.gift/concept-schemes/10caf4a4-1ff5-4c05-917e-56489910d68b> .
|
||||
|
||||
# --- Bestuursfunctie codes (mandate roles) applying to the Vervoerregioraad ---
|
||||
<http://data.vlaanderen.be/id/concept/BestuursfunctieCode/540f3be6-73ed-4935-9de7-30997bab379c>
|
||||
rdf:type code:BestuursfunctieCode ;
|
||||
mu:uuid "540f3be6-73ed-4935-9de7-30997bab379c" ;
|
||||
skos:prefLabel "Voorzitter van de vervoerregioraad" ;
|
||||
ext:appliesTo <http://data.vlaanderen.be/id/concept/BestuursorgaanClassificatieCode/a04a5fb1-b79c-4b8d-a664-c5410d466d49> ;
|
||||
skos:topConceptOf scheme:BestuursfunctieCode ;
|
||||
skos:inScheme scheme:BestuursfunctieCode , <http://lblod.data.gift/concept-schemes/10caf4a4-1ff5-4c05-917e-56489910d68b> .
|
||||
|
||||
<http://data.vlaanderen.be/id/concept/BestuursfunctieCode/1093c55c-84d5-424b-980e-8b2ca32dc445>
|
||||
rdf:type code:BestuursfunctieCode ;
|
||||
mu:uuid "1093c55c-84d5-424b-980e-8b2ca32dc445" ;
|
||||
skos:prefLabel "Lid van de vervoerregioraad" ;
|
||||
ext:appliesTo <http://data.vlaanderen.be/id/concept/BestuursorgaanClassificatieCode/a04a5fb1-b79c-4b8d-a664-c5410d466d49> ;
|
||||
skos:topConceptOf scheme:BestuursfunctieCode ;
|
||||
skos:inScheme scheme:BestuursfunctieCode , <http://lblod.data.gift/concept-schemes/10caf4a4-1ff5-4c05-917e-56489910d68b> .
|
||||
@@ -0,0 +1,31 @@
|
||||
DELETE {
|
||||
GRAPH <http://mu.semte.ch/graphs/public> {
|
||||
<http://data.vlaanderen.be/id/concept/GeregistreerdeOrganisatieClassificatieCode/3e5c8e30-95a7-47b0-b0a4-210d5bd440a7> <http://www.w3.org/2004/02/skos/core#prefLabel> ?oldLabel.
|
||||
}
|
||||
}
|
||||
INSERT {
|
||||
GRAPH <http://mu.semte.ch/graphs/public> {
|
||||
<http://data.vlaanderen.be/id/concept/GeregistreerdeOrganisatieClassificatieCode/3e5c8e30-95a7-47b0-b0a4-210d5bd440a7> <http://www.w3.org/2004/02/skos/core#prefLabel> "Vereniging algemeen".
|
||||
}
|
||||
}
|
||||
WHERE {
|
||||
GRAPH <http://mu.semte.ch/graphs/public> {
|
||||
<http://data.vlaanderen.be/id/concept/GeregistreerdeOrganisatieClassificatieCode/3e5c8e30-95a7-47b0-b0a4-210d5bd440a7> <http://www.w3.org/2004/02/skos/core#prefLabel> ?oldLabel.
|
||||
}
|
||||
};
|
||||
|
||||
DELETE {
|
||||
GRAPH <http://mu.semte.ch/graphs/public> {
|
||||
<http://data.vlaanderen.be/id/concept/GeregistreerdeOrganisatieClassificatieCode/b9ed22af-3661-4c3e-b07f-b641d80ebf61> <http://www.w3.org/2004/02/skos/core#prefLabel> ?oldLabel.
|
||||
}
|
||||
}
|
||||
INSERT {
|
||||
GRAPH <http://mu.semte.ch/graphs/public> {
|
||||
<http://data.vlaanderen.be/id/concept/GeregistreerdeOrganisatieClassificatieCode/b9ed22af-3661-4c3e-b07f-b641d80ebf61> <http://www.w3.org/2004/02/skos/core#prefLabel> "Vennootschap algemeen".
|
||||
}
|
||||
}
|
||||
WHERE {
|
||||
GRAPH <http://mu.semte.ch/graphs/public> {
|
||||
<http://data.vlaanderen.be/id/concept/GeregistreerdeOrganisatieClassificatieCode/b9ed22af-3661-4c3e-b07f-b641d80ebf61> <http://www.w3.org/2004/02/skos/core#prefLabel> ?oldLabel.
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
INSERT DATA {
|
||||
GRAPH <http://mu.semte.ch/graphs/public> {
|
||||
<http://lblod.data.gift/concepts/019ef8b6-ba27-7388-a5cc-faf74f357963> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://lblod.data.gift/vocabularies/organisatie/TypeVestiging> .
|
||||
<http://lblod.data.gift/concepts/019ef8b6-ba27-7388-a5cc-faf74f357963> <http://www.w3.org/2004/02/skos/core#prefLabel> "Bezoekadres" .
|
||||
<http://lblod.data.gift/concepts/019ef8b6-ba27-7388-a5cc-faf74f357963> <http://mu.semte.ch/vocabularies/core/uuid> "019ef8b6-ba27-7388-a5cc-faf74f357963" .
|
||||
<http://lblod.data.gift/concepts/019ef8b6-ba27-7388-a5cc-faf74f357963> <http://www.w3.org/2004/02/skos/core#topConceptOf> <http://lblod.data.gift/concept-schemes/f8319ccf40fc2a1697edc5cf7e03018f> .
|
||||
<http://lblod.data.gift/concepts/019ef8b6-ba27-7388-a5cc-faf74f357963> <http://www.w3.org/2004/02/skos/core#inScheme> <http://lblod.data.gift/concept-schemes/f8319ccf40fc2a1697edc5cf7e03018f> .
|
||||
<http://lblod.data.gift/concepts/019ef8b6-ba27-7388-a5cc-faf74f357963> <http://www.w3.org/2004/02/skos/core#inScheme> <http://lblod.data.gift/concept-schemes/10caf4a4-1ff5-4c05-917e-56489910d68b> .
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,95 @@
|
||||
PREFIX mandaat: <http://data.vlaanderen.be/ns/mandaat#>
|
||||
PREFIX ere: <http://data.lblod.info/vocabularies/erediensten/>
|
||||
PREFIX besluit: <http://data.vlaanderen.be/ns/besluit#>
|
||||
PREFIX generiek: <https://data.vlaanderen.be/ns/generiek#>
|
||||
PREFIX regorg: <http://www.w3.org/ns/regorg#>
|
||||
PREFIX org: <http://www.w3.org/ns/org#>
|
||||
|
||||
DELETE {
|
||||
GRAPH <http://mu.semte.ch/graphs/worship-service> {
|
||||
?otherOrgaanInTime ?p ?o .
|
||||
?s ?p2 ?otherOrgaanInTime .
|
||||
?mandate ?mp ?mo .
|
||||
?ms ?mp2 ?mandate .
|
||||
}
|
||||
}
|
||||
WHERE {
|
||||
GRAPH <http://mu.semte.ch/graphs/worship-service> {
|
||||
?worshipService a ere:BestuurVanDeEredienst ;
|
||||
regorg:orgStatus <http://lblod.data.gift/concepts/abf4fee82019f88cf122f986830621ab> .
|
||||
|
||||
?bestuursorgaan besluit:bestuurt ?worshipService .
|
||||
|
||||
{
|
||||
SELECT ?bestuursorgaan (MAX(?start) AS ?keptStart) {
|
||||
GRAPH <http://mu.semte.ch/graphs/worship-service> {
|
||||
?orgaanInTime generiek:isTijdspecialisatieVan ?bestuursorgaan ;
|
||||
mandaat:bindingStart ?start .
|
||||
FILTER(?start <= NOW())
|
||||
}
|
||||
}
|
||||
GROUP BY ?bestuursorgaan
|
||||
}
|
||||
|
||||
?keptOrgaanInTime generiek:isTijdspecialisatieVan ?bestuursorgaan ;
|
||||
mandaat:bindingStart ?keptStart .
|
||||
|
||||
?otherOrgaanInTime generiek:isTijdspecialisatieVan ?bestuursorgaan .
|
||||
FILTER(?otherOrgaanInTime != ?keptOrgaanInTime)
|
||||
|
||||
{ ?otherOrgaanInTime ?p ?o . }
|
||||
UNION
|
||||
{ ?s ?p2 ?otherOrgaanInTime . }
|
||||
UNION
|
||||
{ ?otherOrgaanInTime org:hasPost ?mandate . ?mandate ?mp ?mo . }
|
||||
UNION
|
||||
{ ?otherOrgaanInTime org:hasPost ?mandate . ?ms ?mp2 ?mandate . }
|
||||
}
|
||||
};
|
||||
|
||||
DELETE {
|
||||
GRAPH <http://mu.semte.ch/graphs/worship-service> {
|
||||
?mandate ?p ?o .
|
||||
?s ?p2 ?mandate .
|
||||
}
|
||||
}
|
||||
WHERE {
|
||||
GRAPH <http://mu.semte.ch/graphs/worship-service> {
|
||||
?worshipService a ere:BestuurVanDeEredienst ;
|
||||
regorg:orgStatus <http://lblod.data.gift/concepts/abf4fee82019f88cf122f986830621ab> .
|
||||
|
||||
?bestuursorgaan besluit:bestuurt ?worshipService .
|
||||
?orgaanInTime generiek:isTijdspecialisatieVan ?bestuursorgaan .
|
||||
|
||||
?orgaanInTime org:hasPost ?mandate .
|
||||
?mandate a mandaat:Mandaat ;
|
||||
org:role ?role .
|
||||
|
||||
FILTER(?role NOT IN (
|
||||
<http://data.vlaanderen.be/id/concept/BestuursfunctieCode/67e6e585166cd97575b3e17ffc430a43>,
|
||||
<http://data.vlaanderen.be/id/concept/BestuursfunctieCode/5ac134b9800b81da3c450d6b9605cef2>,
|
||||
<http://data.vlaanderen.be/id/concept/BestuursfunctieCode/180d13930d6f1a3938e0aa7fa9990002>
|
||||
))
|
||||
|
||||
{ ?mandate ?p ?o . }
|
||||
UNION
|
||||
{ ?s ?p2 ?mandate . }
|
||||
}
|
||||
};
|
||||
|
||||
DELETE {
|
||||
GRAPH <http://mu.semte.ch/graphs/worship-service> {
|
||||
?orgaanInTime mandaat:bindingEinde ?endDate .
|
||||
}
|
||||
}
|
||||
WHERE {
|
||||
GRAPH <http://mu.semte.ch/graphs/worship-service> {
|
||||
?worshipService a ere:BestuurVanDeEredienst ;
|
||||
regorg:orgStatus <http://lblod.data.gift/concepts/abf4fee82019f88cf122f986830621ab> .
|
||||
|
||||
?bestuursorgaan besluit:bestuurt ?worshipService .
|
||||
?orgaanInTime generiek:isTijdspecialisatieVan ?bestuursorgaan .
|
||||
|
||||
?orgaanInTime mandaat:bindingEinde ?endDate .
|
||||
}
|
||||
};
|
||||
@@ -532,6 +532,13 @@
|
||||
"registered-organizations": {
|
||||
"class": "regorg:RegisteredOrganization",
|
||||
"super": ["organizations"],
|
||||
"relationships": {
|
||||
"scope": {
|
||||
"predicate": "dc_terms:spatial",
|
||||
"target": "locations",
|
||||
"cardinality": "one"
|
||||
}
|
||||
},
|
||||
"new-resource-base": "http://data.lblod.info/id/geregistreerdeOrganisaties/"
|
||||
},
|
||||
"organization-classification-codes": {
|
||||
@@ -540,6 +547,10 @@
|
||||
"label": {
|
||||
"type": "string",
|
||||
"predicate": "skos:prefLabel"
|
||||
},
|
||||
"alt-label": {
|
||||
"type": "string",
|
||||
"predicate": "skos:altLabel"
|
||||
}
|
||||
},
|
||||
"new-resource-base": "http://data.vlaanderen.be/id/concept/OrganizationClassificationCode/"
|
||||
|
||||
@@ -663,6 +663,10 @@
|
||||
"http://www.w3.org/ns/org#classification",
|
||||
"http://www.w3.org/2004/02/skos/core#prefLabel"
|
||||
],
|
||||
"classification_alternative_name": [
|
||||
"http://www.w3.org/ns/org#classification",
|
||||
"http://www.w3.org/2004/02/skos/core#altLabel"
|
||||
],
|
||||
"status": [
|
||||
"http://www.w3.org/ns/regorg#orgStatus",
|
||||
"http://www.w3.org/2004/02/skos/core#prefLabel"
|
||||
@@ -745,6 +749,15 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"classification_alternative_name": {
|
||||
"type": "text",
|
||||
"fields": {
|
||||
"field": {
|
||||
"type": "keyword",
|
||||
"normalizer": "custom_sort_normalizer"
|
||||
}
|
||||
}
|
||||
},
|
||||
"status": {
|
||||
"type": "text",
|
||||
"fields": {
|
||||
|
||||
@@ -215,11 +215,12 @@ services:
|
||||
restart: always
|
||||
logging: *default-logging
|
||||
frontend:
|
||||
image: lblod/frontend-organization-portal:1.38.0
|
||||
image: lblod/frontend-organization-portal:1.40.1
|
||||
volumes:
|
||||
- ./config/frontend/add-x-frame-options-header.conf:/config/add-x-frame-options.conf
|
||||
environment:
|
||||
EMBER_ENABLE_EDIT_CONTACT_DATA_FEATURE: "true"
|
||||
EMBER_ENABLE_LEGAL_FORM_EDITABLE_FEATURE: "true"
|
||||
EMBER_OAUTH_API_REDIRECT_URL: "https://organisaties.abb.lblod.info/authorization/callback"
|
||||
EMBER_OAUTH_API_KEY: "677af572-2e2f-4e61-ad38-036723bb314c"
|
||||
EMBER_OAUTH_API_BASE_URL: "https://authenticatie-ti.vlaanderen.be/op/v1/auth"
|
||||
@@ -307,7 +308,7 @@ services:
|
||||
restart: always
|
||||
logging: *default-logging
|
||||
construct-organization-relationships:
|
||||
image: lblod/construct-organization-relationships-service:1.1.1
|
||||
image: lblod/construct-organization-relationships-service:1.1.3
|
||||
links:
|
||||
- db:database
|
||||
labels:
|
||||
|
||||
Reference in New Issue
Block a user