-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
✨ [#14] added information category management command
- Loading branch information
1 parent
a25c025
commit f7e7254
Showing
3 changed files
with
343 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,236 @@ | ||
[ | ||
{ | ||
"model": "metadata.informationcategory", | ||
"pk": 1, | ||
"fields": { | ||
"order": 1010, | ||
"uuid": "be4e21c2-0be5-4616-945e-1f101b0c0e6d", | ||
"identifier": "https://identifier.overheid.nl/tooi/def/thes/kern/c_139c6280", | ||
"naam": "wet of algemeen verbindend voorschrift", | ||
"naam_meervoud": "wetten en algemeen verbindende voorschriften", | ||
"definitie": "wetten en andere algemeen verbindende voorschriften", | ||
"oorsprong": "waardelijst" | ||
} | ||
}, | ||
{ | ||
"model": "metadata.informationcategory", | ||
"pk": 2, | ||
"fields": { | ||
"order": 1090, | ||
"uuid": "380f49a4-8578-4317-b91e-3dfd13bab89b", | ||
"identifier": "https://identifier.overheid.nl/tooi/def/thes/kern/c_3a248e3a", | ||
"naam": "agenda of besluitenlijst bestuurscollege", | ||
"naam_meervoud": "agenda’s en besluitenlijsten bestuurscolleges", | ||
"definitie": "agenda’s en besluitenlijsten van vergaderingen van de ministerraad, gedeputeerde staten, colleges van burgemeester en wethouders en dagelijkse besturen van waterschappen en dagelijkse besturen van openbare lichamen als bedoeld in de Wet gemeenschappelijke regelingen", | ||
"oorsprong": "waardelijst" | ||
} | ||
}, | ||
{ | ||
"model": "metadata.informationcategory", | ||
"pk": 3, | ||
"fields": { | ||
"order": 1140, | ||
"uuid": "b84c3b0d-a471-48f5-915f-7fbd8b94188f", | ||
"identifier": "https://identifier.overheid.nl/tooi/def/thes/kern/c_3baef532", | ||
"naam": "Woo-verzoek of -besluit", | ||
"naam_meervoud": "Woo-verzoeken en -besluiten", | ||
"definitie": "de inhoud van de schriftelijke verzoeken op grond van artikel 4.1, van de schriftelijke beslissingen op die verzoeken en de daarbij verstrekte informatie", | ||
"oorsprong": "waardelijst" | ||
} | ||
}, | ||
{ | ||
"model": "metadata.informationcategory", | ||
"pk": 4, | ||
"fields": { | ||
"order": 1040, | ||
"uuid": "9aeb7501-3f77-4f36-8c8f-d21f47c2d6e8", | ||
"identifier": "https://identifier.overheid.nl/tooi/def/thes/kern/c_40a05794", | ||
"naam": "organisatie en werkwijze", | ||
"naam_meervoud": "organisatie en werkwijze", | ||
"definitie": "inzicht in zijn organisatie en werkwijze, waaronder de taken en bevoegdheden van de organisatieonderdelen", | ||
"oorsprong": "waardelijst" | ||
} | ||
}, | ||
{ | ||
"model": "metadata.informationcategory", | ||
"pk": 5, | ||
"fields": { | ||
"order": 1160, | ||
"uuid": "d3008496-a014-431a-8b6b-0813f09e6085", | ||
"identifier": "https://identifier.overheid.nl/tooi/def/thes/kern/c_46a81018", | ||
"naam": "beschikking", | ||
"naam_meervoud": "beschikkingen", | ||
"definitie": "beschikkingen, met uitzondering van 21 categorieën.", | ||
"oorsprong": "waardelijst" | ||
} | ||
}, | ||
{ | ||
"model": "metadata.informationcategory", | ||
"pk": 6, | ||
"fields": { | ||
"order": 1030, | ||
"uuid": "88fb1c5e-e899-456d-b077-6101a9829c11", | ||
"identifier": "https://identifier.overheid.nl/tooi/def/thes/kern/c_759721e2", | ||
"naam": "ontwerp van wet- en regelgeving met adviesaanvraag", | ||
"naam_meervoud": "ontwerpen van wet- en regelgeving met adviesaanvraag", | ||
"definitie": "ontwerpen van wetten, andere algemeen verbindende voorschriften en overige besluiten van algemene strekking waarover een extern advies is gevraagd, met inbegrip van de adviesaanvraag", | ||
"oorsprong": "waardelijst" | ||
} | ||
}, | ||
{ | ||
"model": "metadata.informationcategory", | ||
"pk": 7, | ||
"fields": { | ||
"order": 2000, | ||
"uuid": "8223209f-a502-4dda-b1b6-c33b61525239", | ||
"identifier": "https://identifier.overheid.nl/tooi/def/thes/kern/c_816e508d", | ||
"naam": "inspanningsverplichting art 3.1 Woo", | ||
"naam_meervoud": "inspanningsverplichting art 3.1 Woo", | ||
"definitie": "Informatie die niet valt onder een van de informatiecategorieën van artikel 3.3 Woo, maar actief openbaar is gemaakt op grond van de algemene inspanningsverplichting van artikel 3.1 Woo ", | ||
"oorsprong": "waardelijst" | ||
} | ||
}, | ||
{ | ||
"model": "metadata.informationcategory", | ||
"pk": 8, | ||
"fields": { | ||
"order": 1050, | ||
"uuid": "7184027d-5634-4bd4-8121-871916384f0e", | ||
"identifier": "https://identifier.overheid.nl/tooi/def/thes/kern/c_89ee6784", | ||
"naam": "bereikbaarheidsgegevens", | ||
"naam_meervoud": "bereikbaarheidsgegevens", | ||
"definitie": "de bereikbaarheid van het bestuursorgaan en zijn organisatieonderdelen en de wijze waarop een verzoek om informatie kan worden ingediend", | ||
"oorsprong": "waardelijst" | ||
} | ||
}, | ||
{ | ||
"model": "metadata.informationcategory", | ||
"pk": 9, | ||
"fields": { | ||
"order": 1060, | ||
"uuid": "ca9a38d6-5774-43fb-acc0-04832e9fd231", | ||
"identifier": "https://identifier.overheid.nl/tooi/def/thes/kern/c_8c840238", | ||
"naam": "bij vertegenwoordigend orgaan ingekomen stuk", | ||
"naam_meervoud": "bij vertegenwoordigende organen ingekomen stukken", | ||
"definitie": "bij de Kamers en de verenigde vergadering der Staten-Generaal, provinciale staten, gemeenteraden en algemene besturen van waterschappen ter behandeling ingekomen stukken, tenzij deze betrekking hebben op door de regering vertrouwelijk aan de Staten-Generaal verstrekte informatie of tenzij deze betrekking hebben op individuele gevallen", | ||
"oorsprong": "waardelijst" | ||
} | ||
}, | ||
{ | ||
"model": "metadata.informationcategory", | ||
"pk": 10, | ||
"fields": { | ||
"order": 1110, | ||
"uuid": "7ee891df-ca3e-4b19-b9e5-494bc3c485ea", | ||
"identifier": "https://identifier.overheid.nl/tooi/def/thes/kern/c_8fc2335c", | ||
"naam": "convenant", | ||
"naam_meervoud": "convenanten", | ||
"definitie": "convenanten", | ||
"oorsprong": "waardelijst" | ||
} | ||
}, | ||
{ | ||
"model": "metadata.informationcategory", | ||
"pk": 11, | ||
"fields": { | ||
"order": 1100, | ||
"uuid": "5bfcb832-e940-493e-8050-699053f4f56a", | ||
"identifier": "https://identifier.overheid.nl/tooi/def/thes/kern/c_99a836c7", | ||
"naam": "advies", | ||
"naam_meervoud": "adviezen", | ||
"definitie": "adviezen:\n1. over de ontwerpen, bedoeld in het eerste lid, onderdeel c, van adviescolleges of -commissies alsmede van andere externe partijen indien die om advies zijn verzocht;\n2. over andere onderwerpen van adviescolleges of -commissies, alsmede de op dat advies betrekking hebbende adviesaanvraag, uitgezonderd adviezen die betrekking hebben op individuele gevallen;", | ||
"oorsprong": "waardelijst" | ||
} | ||
}, | ||
{ | ||
"model": "metadata.informationcategory", | ||
"pk": 12, | ||
"fields": { | ||
"order": 1170, | ||
"uuid": "3e9298ed-c90a-49fb-b89d-0cc060b7b0f7", | ||
"identifier": "https://identifier.overheid.nl/tooi/def/thes/kern/c_a870c43d", | ||
"naam": "klachtoordeel", | ||
"naam_meervoud": "klachtoordelen", | ||
"definitie": "schriftelijke oordelen in klachtprocedures als bedoeld in titel 9.1 van de Algemene wet bestuursrecht", | ||
"oorsprong": "waardelijst" | ||
} | ||
}, | ||
{ | ||
"model": "metadata.informationcategory", | ||
"pk": 13, | ||
"fields": { | ||
"order": 1020, | ||
"uuid": "8f3bdef0-a926-4f67-b1f2-94c583c462ce", | ||
"identifier": "https://identifier.overheid.nl/tooi/def/thes/kern/c_aab6bfc7", | ||
"naam": "overig besluit van algemene strekking", | ||
"naam_meervoud": "overige besluiten van algemene strekking", | ||
"definitie": "overige besluiten van algemene strekking", | ||
"oorsprong": "waardelijst" | ||
} | ||
}, | ||
{ | ||
"model": "metadata.informationcategory", | ||
"pk": 14, | ||
"fields": { | ||
"order": 1120, | ||
"uuid": "f4de3422-ce74-45c7-b881-45bebe90984f", | ||
"identifier": "https://identifier.overheid.nl/tooi/def/thes/kern/c_c6cd1213", | ||
"naam": "jaarplan of jaarverslag", | ||
"naam_meervoud": "jaarplannen en jaarverslagen", | ||
"definitie": "jaarplannen en jaarverslagen van bestuursorganen inzake de voorgenomen uitvoering van de taak of de verantwoording van die uitvoering", | ||
"oorsprong": "waardelijst" | ||
} | ||
}, | ||
{ | ||
"model": "metadata.informationcategory", | ||
"pk": 15, | ||
"fields": { | ||
"order": 1070, | ||
"uuid": "568ebb54-9e43-4c12-924f-77f7d812026d", | ||
"identifier": "https://identifier.overheid.nl/tooi/def/thes/kern/c_c76862ab", | ||
"naam": "vergaderstuk Staten-Generaal", | ||
"naam_meervoud": "vergaderstukken Staten-Generaal", | ||
"definitie": "vergaderstukken en verslagen van de Kamers en de verenigde vergadering der Staten-Generaal en hun commissies, tenzij deze betrekking hebben op door de regering vertrouwelijk aan de Staten-Generaal verstrekte informatie", | ||
"oorsprong": "waardelijst" | ||
} | ||
}, | ||
{ | ||
"model": "metadata.informationcategory", | ||
"pk": 16, | ||
"fields": { | ||
"order": 1130, | ||
"uuid": "68e33566-9f48-4547-8024-2d0d03b54b4d", | ||
"identifier": "https://identifier.overheid.nl/tooi/def/thes/kern/c_cf268088", | ||
"naam": "subsidieverplichting anders dan met beschikking", | ||
"naam_meervoud": "subsidieverplichtingen anders dan met beschikking", | ||
"definitie": "verplichtingen tot verstrekking van subsidies, anders dan met een beschikking (NB - alleen bij Min. BZ)", | ||
"oorsprong": "waardelijst" | ||
} | ||
}, | ||
{ | ||
"model": "metadata.informationcategory", | ||
"pk": 17, | ||
"fields": { | ||
"order": 1080, | ||
"uuid": "57e3c1e2-53aa-4d2c-888d-7232288dd425", | ||
"identifier": "https://identifier.overheid.nl/tooi/def/thes/kern/c_db4862c3", | ||
"naam": "vergaderstuk decentrale overheid", | ||
"naam_meervoud": "vergaderstukken decentrale overheden", | ||
"definitie": "vergaderstukken en verslagen van provinciale staten, gemeenteraden en algemene besturen van waterschappen, algemene besturen van openbare lichamen, besturen van bedrijfsvoeringsorganisaties en gemeenschappelijke organen als bedoeld in de Wet gemeenschappelijke regelingen en hun commissies", | ||
"oorsprong": "waardelijst" | ||
} | ||
}, | ||
{ | ||
"model": "metadata.informationcategory", | ||
"pk": 18, | ||
"fields": { | ||
"order": 1150, | ||
"uuid": "e7f1b136-58f1-4d7e-82b3-0571e2388058", | ||
"identifier": "https://identifier.overheid.nl/tooi/def/thes/kern/c_fdaee95e", | ||
"naam": "onderzoeksrapport", | ||
"naam_meervoud": "onderzoeksrapporten", | ||
"definitie": "op verzoek van een bestuursorgaan ambtelijk of extern opgestelde onderzoeksrapporten die geen onderdeel vormen van de uitvoering van de taak van dat bestuursorgaan, die voornamelijk uit feitelijk materiaal bestaan en die betrekking hebben op:\n1. de wijze van functioneren van de eigen organisatie;\n2. de voorbereiding of de evaluatie van beleid, inclusief de uitvoering, naleving en handhaving.", | ||
"oorsprong": "waardelijst" | ||
} | ||
} | ||
] |
24 changes: 24 additions & 0 deletions
24
src/woo_publications/metadata/management/commands/update_information_category.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
from django.core.management.base import BaseCommand, CommandError | ||
|
||
from woo_publications.metadata.update_informatie_category import ( | ||
InformatieCategoryWaardenlijstError, | ||
update_informatie_category, | ||
) | ||
|
||
|
||
class Command(BaseCommand): | ||
help = "Used to fetch the gov waardenlijsten data and turn them into a fixture to load the data into the db." | ||
|
||
def add_arguments(self, parser): | ||
parser.add_argument( | ||
"--file-path", | ||
action="store", | ||
help="The file path to where the fixture file will be created.", | ||
default=None, | ||
) | ||
|
||
def handle(self, *args, **options): | ||
try: | ||
update_informatie_category(options["file_path"]) | ||
except InformatieCategoryWaardenlijstError as err: | ||
raise CommandError(err) |
83 changes: 83 additions & 0 deletions
83
src/woo_publications/metadata/update_informatie_category.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,83 @@ | ||
from io import StringIO | ||
from pathlib import Path | ||
|
||
from django.conf import settings | ||
from django.core.management import call_command | ||
|
||
import requests | ||
from glom import PathAccessError, T, glom | ||
|
||
from woo_publications.metadata.constants import InformationCategoryOrigins | ||
from woo_publications.metadata.models import InformationCategory | ||
|
||
SPEC = { | ||
"naam": T["http://www.w3.org/2004/02/skos/core#prefLabel"][0]["@value"], | ||
"naam_meervoud": T[ | ||
"https://identifier.overheid.nl/tooi/def/ont/prefLabelVoorGroepen" | ||
][0]["@value"], | ||
"definitie": T["http://www.w3.org/2004/02/skos/core#definition"][0]["@value"], | ||
"order": T["http://www.w3.org/ns/shacl#order"][0]["@value"], | ||
} | ||
|
||
|
||
class InformatieCategoryWaardenlijstError(Exception): | ||
pass | ||
|
||
|
||
def update_informatie_category(file_path: str): | ||
if not file_path: | ||
file_path = str( | ||
Path( | ||
settings.BASE_DIR | ||
/ "src" | ||
/ "woo_publications" | ||
/ "fixtures" | ||
/ "informatie_category.json" | ||
) | ||
) | ||
|
||
response = requests.get( | ||
"https://repository.officiele-overheidspublicaties.nl/waardelijsten/scw_woo_informatiecategorieen/3/json/scw_woo_informatiecategorieen_3.json" | ||
) | ||
|
||
try: | ||
response.raise_for_status() | ||
except requests.exceptions.ConnectionError as err: | ||
raise InformatieCategoryWaardenlijstError( | ||
"Could not connect with url." | ||
) from err | ||
|
||
data = response.json() | ||
if not data: | ||
raise InformatieCategoryWaardenlijstError("Could not retrieve json from url.") | ||
|
||
for waardenlijst in data: | ||
# filter out all ids that aren't waardenlijsten | ||
if ( | ||
not waardenlijst.get("@type")[0] | ||
== "http://www.w3.org/2004/02/skos/core#Concept" | ||
): | ||
continue | ||
|
||
fields = glom(waardenlijst, SPEC, skip_exc=PathAccessError) | ||
fields["oorsprong"] = InformationCategoryOrigins.value_list | ||
|
||
if fields: | ||
InformationCategory.objects.update_or_create( | ||
identifier=waardenlijst.get("@id"), defaults=fields | ||
) | ||
|
||
to_export = InformationCategory.objects.filter( | ||
oorsprong=InformationCategoryOrigins.value_list | ||
).values_list("pk", flat=True) | ||
|
||
call_command( | ||
"dumpdata", | ||
"metadata.informationcategory", | ||
format="json", | ||
indent=4, | ||
natural_primary=True, | ||
pks=",".join([str(pk) for pk in to_export]), | ||
output=file_path, | ||
stdout=StringIO(), | ||
) |