From 08176714783a40151bf039b62fcba404d9dff02d Mon Sep 17 00:00:00 2001 From: Floris272 Date: Thu, 10 Oct 2024 20:24:02 +0200 Subject: [PATCH] [maykinmedia/open-producten#24] Add tests --- src/openapi.yaml | 1 + src/openforms/api/urls.py | 4 - .../conf/locale/nl/LC_MESSAGES/django.po | 1992 +++++++++-------- .../contrib/open_producten/__init__.py | 1 - .../contrib/open_producten/api/serializers.py | 27 - .../contrib/open_producten/api/viewsets.py | 41 - .../management/commands/import_prices.py | 4 - .../open_producten/migrations/0001_initial.py | 17 +- .../contrib/open_producten/models.py | 85 +- .../contrib/open_producten/price_import.py | 37 +- .../open_producten/{api => tests}/__init__.py | 0 .../contrib/open_producten/tests/factories.py | 24 + .../contrib/open_producten/tests/helpers.py | 31 + .../open_producten/tests/test_models.py | 32 + .../open_producten/tests/test_price_import.py | 108 + .../fixtures/admin_index_unlisted.json | 1 + src/openforms/formio/components/custom.py | 21 +- .../formio/tests/search_strategies.py | 11 + .../formio/tests/test_product_price.py | 87 + .../formio/tests/test_search_strategies.py | 8 + .../tests/test_translations_converter.py | 7 + src/openforms/forms/validators.py | 24 +- src/openforms/js/compiled-lang/en.json | 12 - src/openforms/js/compiled-lang/nl.json | 12 - .../form_design/AuthenticationWarning.js | 2 +- .../components/admin/form_design/constants.js | 1 - .../js/components/form/productPrice.js | 10 - .../formio_builder/WebformBuilder.js | 2 - src/openforms/js/formio_module.js | 2 +- src/openforms/products/api/serializers.py | 3 + ...duct_upl_name_product_upl_uri_and_more.py} | 18 +- src/openforms/submissions/pricing.py | 17 +- .../submissions/tests/test_read_submission.py | 102 + 33 files changed, 1625 insertions(+), 1119 deletions(-) delete mode 100644 src/openforms/contrib/open_producten/api/serializers.py delete mode 100644 src/openforms/contrib/open_producten/api/viewsets.py rename src/openforms/contrib/open_producten/{api => tests}/__init__.py (100%) create mode 100644 src/openforms/contrib/open_producten/tests/factories.py create mode 100644 src/openforms/contrib/open_producten/tests/helpers.py create mode 100644 src/openforms/contrib/open_producten/tests/test_models.py create mode 100644 src/openforms/contrib/open_producten/tests/test_price_import.py create mode 100644 src/openforms/formio/tests/test_product_price.py rename src/openforms/products/migrations/{0002_product_is_deleted_product_open_producten_price_and_more.py => 0002_product_is_deleted_product_upl_name_product_upl_uri_and_more.py} (72%) diff --git a/src/openapi.yaml b/src/openapi.yaml index 5f74d0e9a9..80de1d1fe6 100644 --- a/src/openapi.yaml +++ b/src/openapi.yaml @@ -9748,6 +9748,7 @@ components: type: string format: decimal pattern: ^-?\d{0,8}(?:\.\d{0,2})?$ + nullable: true information: type: string description: Information text to be displayed in the confirmation page and diff --git a/src/openforms/api/urls.py b/src/openforms/api/urls.py index c2eae57195..332abb248a 100644 --- a/src/openforms/api/urls.py +++ b/src/openforms/api/urls.py @@ -27,7 +27,6 @@ from openforms.utils.urls import decorator_include from openforms.variables.api.viewsets import ServiceFetchConfigurationViewSet -from ..contrib.open_producten.api.viewsets import PriceViewSet from .views import PingView # from .schema import schema_view @@ -59,9 +58,6 @@ # products router.register("products", ProductViewSet) -# product prices (Open Producten) -router.register("product_prices", PriceViewSet, "prices") - # services router.register("services", ServiceViewSet) diff --git a/src/openforms/conf/locale/nl/LC_MESSAGES/django.po b/src/openforms/conf/locale/nl/LC_MESSAGES/django.po index af8a766c23..7699c66183 100644 --- a/src/openforms/conf/locale/nl/LC_MESSAGES/django.po +++ b/src/openforms/conf/locale/nl/LC_MESSAGES/django.po @@ -4,7 +4,7 @@ msgid "" msgstr "" "Project-Id-Version: Open Forms\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-13 13:58+0200\n" +"POT-Creation-Date: 2024-10-11 16:35+0200\n" "PO-Revision-Date: 2024-09-13 17:01+0200\n" "Last-Translator: Sergei Maertens \n" "Language-Team: Dutch \n" @@ -28,13 +28,12 @@ msgid "" "omit this header without losing functionality. We recommend favouring the " "nonce mechanism though." msgstr "" -"De waarde van de CSP-nonce gegenereerd door de pagina die de SDK " -"insluit/embed. Als deze meegestuurd wordt, dan worden velden met rich tekst " -"(uit \"WYSIWYG\" editors) verwerkt om inline-styles toe te laten met de " -"gegeven nonce. Indien de insluitende pagina een `style-src` policy heeft die" -" `unsafe-inline` bevat, dan kan je deze header weglaten zonder " -"functionaliteit te verliezen. We raden echter aan om het nonce-mechanisme te" -" gebruiken." +"De waarde van de CSP-nonce gegenereerd door de pagina die de SDK insluit/" +"embed. Als deze meegestuurd wordt, dan worden velden met rich tekst (uit " +"\"WYSIWYG\" editors) verwerkt om inline-styles toe te laten met de gegeven " +"nonce. Indien de insluitende pagina een `style-src` policy heeft die `unsafe-" +"inline` bevat, dan kan je deze header weglaten zonder functionaliteit te " +"verliezen. We raden echter aan om het nonce-mechanisme te gebruiken." #: openforms/accounts/admin.py:39 msgid "Groups" @@ -115,7 +114,7 @@ msgstr "" "De voorkeurstaal voor de (beheer) gebruikersinterface. Wanneer geen waarde " "ingesteld is, worden de browserinstellingen gebruikt." -#: openforms/accounts/models.py:81 openforms/forms/models/form.py:674 +#: openforms/accounts/models.py:81 openforms/forms/models/form.py:679 #: openforms/forms/models/form_version.py:62 soap/models.py:50 msgid "user" msgstr "gebruiker" @@ -226,8 +225,8 @@ msgstr "Google Analytics code" msgid "" "Typically looks like 'UA-XXXXX-Y'. Supplying this installs Google Analytics." msgstr "" -"Heeft typisch het formaat 'UA-XXXXX-Y'. Schakelt Google Analytics in als een" -" waarde ingevuld is." +"Heeft typisch het formaat 'UA-XXXXX-Y'. Schakelt Google Analytics in als een " +"waarde ingevuld is." #: openforms/analytics_tools/models.py:123 msgid "enable google analytics" @@ -244,8 +243,7 @@ msgstr "Matomo server-URL" #: openforms/analytics_tools/models.py:134 msgid "The base URL of your Matomo server, e.g. 'https://matomo.example.com'." msgstr "" -"De basis-URL van uw Matomo server, bijvoorbeeld " -"'https://matomo.example.com'." +"De basis-URL van uw Matomo server, bijvoorbeeld 'https://matomo.example.com'." #: openforms/analytics_tools/models.py:138 msgid "Matomo site ID" @@ -294,8 +292,8 @@ msgstr "Piwik PRO server-URL" #: openforms/analytics_tools/models.py:176 msgid "" -"The base URL of your Piwik PRO server, e.g. 'https://your-instance-" -"name.piwik.pro'." +"The base URL of your Piwik PRO server, e.g. 'https://your-instance-name." +"piwik.pro'." msgstr "" "De basis-URL van uw Piwik PRO server, bijvoorbeeld 'https://your-instance-" "name.piwik.pro/'." @@ -306,8 +304,8 @@ msgstr "Piwik PRO site-ID" #: openforms/analytics_tools/models.py:184 msgid "" -"The 'idsite' of the website you're tracking in Piwik PRO. " -"https://help.piwik.pro/support/questions/find-website-id/" +"The 'idsite' of the website you're tracking in Piwik PRO. https://help.piwik." +"pro/support/questions/find-website-id/" msgstr "" "De 'idsite'-waarde van de website die je analyseert met Piwik PRO. Zie ook " "https://help.piwik.pro/support/questions/find-website-id/" @@ -335,12 +333,12 @@ msgstr "SiteImprove ID" #: openforms/analytics_tools/models.py:204 msgid "" "Your SiteImprove ID - you can find this from the embed snippet example, " -"which should contain a URL like " -"'//siteimproveanalytics.com/js/siteanalyze_XXXXX.js'. The XXXXX is your ID." +"which should contain a URL like '//siteimproveanalytics.com/js/" +"siteanalyze_XXXXX.js'. The XXXXX is your ID." msgstr "" "Uw SiteImprove ID - deze waarde kan je terugvinden in het embed-voorbeeld. " -"Deze bevat normaal een URL zoals " -"'//siteimproveanalytics.com/js/siteanalyze_XXXXX.js'. De XXXXX is uw ID." +"Deze bevat normaal een URL zoals '//siteimproveanalytics.com/js/" +"siteanalyze_XXXXX.js'. De XXXXX is uw ID." #: openforms/analytics_tools/models.py:210 msgid "enable siteImprove analytics" @@ -398,8 +396,8 @@ msgstr "GovMetric secure GUID (inzending voltooid)" #: openforms/analytics_tools/models.py:247 msgid "" -"Your GovMetric secure GUID for when a form is finished - This is an optional" -" value. It is created by KLANTINFOCUS when a list of questions is created. " +"Your GovMetric secure GUID for when a form is finished - This is an optional " +"value. It is created by KLANTINFOCUS when a list of questions is created. " "It is a string that is unique per set of questions." msgstr "" "Het GovMetric secure GUID voor voltooide inzendingen. Deze waarde is niet " @@ -428,8 +426,8 @@ msgid "" "The name of your organization as registered in Expoints. This is used to " "construct the URL to communicate with Expoints." msgstr "" -"De naam/het label van de organisatie zoals deze bij Expoints bekend is. Deze" -" waarde wordt gebruikt om de URL op te bouwen om met Expoints te verbinden." +"De naam/het label van de organisatie zoals deze bij Expoints bekend is. Deze " +"waarde wordt gebruikt om de URL op te bouwen om met Expoints te verbinden." #: openforms/analytics_tools/models.py:271 msgid "Expoints configuration identifier" @@ -440,8 +438,8 @@ msgid "" "The UUID used to retrieve the configuration from Expoints to initialize the " "client satisfaction survey." msgstr "" -"Het UUID van de configuratie in Expoints om het tevredenheidsonderzoek op te" -" halen." +"Het UUID van de configuratie in Expoints om het tevredenheidsonderzoek op te " +"halen." #: openforms/analytics_tools/models.py:279 msgid "use Expoints test mode" @@ -449,8 +447,8 @@ msgstr "gebruik Expoints testmode" #: openforms/analytics_tools/models.py:282 msgid "" -"Indicates whether or not the test mode should be enabled. If enabled, filled" -" out surveys won't actually be sent, to avoid cluttering Expoints while " +"Indicates whether or not the test mode should be enabled. If enabled, filled " +"out surveys won't actually be sent, to avoid cluttering Expoints while " "testing." msgstr "" "Indien aangevinkt, dan wordt de testmode van Expoints ingeschakeld. " @@ -501,8 +499,8 @@ msgstr "" #: openforms/analytics_tools/models.py:448 msgid "" -"If you enable GovMetric, you need to provide the source ID for all languages" -" (the same one can be reused)." +"If you enable GovMetric, you need to provide the source ID for all languages " +"(the same one can be reused)." msgstr "" "Wanneer je GovMetric inschakelt, dan moet je een source ID ingegeven voor " "elke taaloptie. Je kan hetzelfde ID hergebruiken voor meerdere talen." @@ -537,8 +535,8 @@ msgid "" "has passed, the session is expired and the user is 'logged out'. Note that " "every subsequent API call resets the expiry." msgstr "" -"Aantal seconden waarna een sessie verloopt. Na het verlopen van de sessie is" -" de gebruiker uitgelogd en kan zijn huidige inzending niet meer afmaken. " +"Aantal seconden waarna een sessie verloopt. Na het verlopen van de sessie is " +"de gebruiker uitgelogd en kan zijn huidige inzending niet meer afmaken. " "Opmerking: Bij elke interactie met de API wordt de sessie verlengd." #: openforms/api/drf_spectacular/hooks.py:29 @@ -550,8 +548,8 @@ msgid "" "If true, the user is allowed to navigate between submission steps even if " "previous submission steps have not been completed yet." msgstr "" -"Indien waar, dan mag de gebruiker vrij binnen de formulierstappen navigeren," -" ook als de vorige stappen nog niet voltooid zijn." +"Indien waar, dan mag de gebruiker vrij binnen de formulierstappen navigeren, " +"ook als de vorige stappen nog niet voltooid zijn." #: openforms/api/drf_spectacular/hooks.py:45 msgid "Language code of the currently activated language." @@ -650,12 +648,12 @@ msgstr "Ping de API" #: openforms/api/views/views.py:64 msgid "" -"Pinging the API extends the user session. Note that you must be a staff user" -" or have active submission(s) in your session." +"Pinging the API extends the user session. Note that you must be a staff user " +"or have active submission(s) in your session." msgstr "" -"Door de API te pingen wordt de sessie van de gebruiker verlengd. Merk op dat" -" je een actieve inzending in je sessie dient te hebben of ingelogd moet zijn" -" in de beheerinterface." +"Door de API te pingen wordt de sessie van de gebruiker verlengd. Merk op dat " +"je een actieve inzending in je sessie dient te hebben of ingelogd moet zijn " +"in de beheerinterface." #: openforms/appointments/admin.py:44 msgid "Please configure the plugin first" @@ -733,7 +731,7 @@ msgstr "Unieke sleutel van het product" #: openforms/forms/models/form_definition.py:40 #: openforms/forms/models/form_registration_backend.py:23 #: openforms/forms/models/form_variable.py:117 -#: openforms/multidomain/models.py:7 openforms/products/models/product.py:24 +#: openforms/multidomain/models.py:7 openforms/products/models/product.py:27 #: openforms/registrations/contrib/zgw_apis/models.py:53 msgid "name" msgstr "naam" @@ -844,7 +842,7 @@ msgstr "" #: openforms/appointments/templates/appointments/appointment__pdf.html:8 #: openforms/emails/templates/emails/templatetags/appointment_information.html:7 #: openforms/emails/templates/emails/templatetags/appointment_information.txt:3 -#: openforms/products/models/product.py:44 +#: openforms/products/models/product.py:48 msgid "Products" msgstr "Producten" @@ -906,8 +904,7 @@ msgstr "Het geselecteerde tijdstip is niet (langer) beschikbaar." msgid "ID of the product, repeat for multiple products." msgstr "Product-ID, herhaal deze parameter voor meerdere producten." -#: openforms/appointments/api/views.py:88 -#: openforms/products/api/viewsets.py:12 +#: openforms/appointments/api/views.py:88 openforms/products/api/viewsets.py:12 msgid "List available products" msgstr "Producten weergeven" @@ -985,8 +982,7 @@ msgid "Submission does not contain all the info needed to make an appointment" msgstr "" "Er ontbreken gegevens in de inzending om een afspraak te kunnen registreren." -#: openforms/appointments/constants.py:10 -#: openforms/submissions/constants.py:13 +#: openforms/appointments/constants.py:10 openforms/submissions/constants.py:13 msgid "Failed" msgstr "Mislukt" @@ -1070,7 +1066,7 @@ msgstr "Postcode" #: openforms/appointments/contrib/jcc/constants.py:76 #: openforms/dmn/api/serializers.py:50 openforms/dmn/api/serializers.py:70 #: openforms/plugins/api/serializers.py:9 -#: openforms/prefill/api/serializers.py:60 +#: openforms/prefill/api/serializers.py:67 #: openforms/registrations/api/serializers.py:30 #: openforms/validations/api/serializers.py:63 msgid "ID" @@ -1118,7 +1114,7 @@ msgstr "Ongeldig antwoord: {exception}" #: openforms/contrib/kvk/checks.py:46 #: openforms/forms/api/serializers/logic/action_serializers.py:104 #: openforms/payments/contrib/ogone/plugin.py:169 -#: openforms/prefill/contrib/haalcentraal_brp/plugin.py:203 +#: openforms/prefill/contrib/haalcentraal_brp/plugin.py:196 #: openforms/prefill/contrib/kvk/plugin.py:133 #: openforms/prefill/contrib/stufbg/plugin.py:244 #: openforms/prefill/contrib/suwinet/plugin.py:98 @@ -1412,8 +1408,8 @@ msgstr "ondersteunt betrouwbaarheidsniveau-overschrijven" #: openforms/authentication/api/serializers.py:29 msgid "" -"Does the Identity Provider support overriding the minimum Level of Assurance" -" (LoA) through the authentication request?" +"Does the Identity Provider support overriding the minimum Level of Assurance " +"(LoA) through the authentication request?" msgstr "" "Biedt de identity provider een mechanisme om het minimale " "betrouwbaarheidsniveau te specifiëren binnen een individueel " @@ -1464,8 +1460,7 @@ msgid "..." msgstr "..." #: openforms/authentication/api/serializers.py:67 -#: openforms/dmn/api/serializers.py:17 -#: openforms/payments/api/serializers.py:25 +#: openforms/dmn/api/serializers.py:17 openforms/payments/api/serializers.py:25 msgid "Identifier" msgstr "Unieke identificatie" @@ -1605,8 +1600,8 @@ msgid "" "forms, please remove this backend from these forms before disabling this " "authentication backend." msgstr "" -"{plugin_identifier} wordt gebruikt in één of meerdere formulieren. Haal deze" -" plugin eerst uit de inlogopties voor je deze backend uitschakelt." +"{plugin_identifier} wordt gebruikt in één of meerdere formulieren. Haal deze " +"plugin eerst uit de inlogopties voor je deze backend uitschakelt." #: openforms/authentication/contrib/digid_eherkenning_oidc/apps.py:8 msgid "DigiD/eHerkenning via OpenID Connect" @@ -1670,8 +1665,8 @@ msgstr "eIDAS" #: openforms/authentication/contrib/eherkenning/views.py:44 msgid "" -"Login failed due to no KvK number/Pseudo ID being returned by " -"eHerkenning/eIDAS." +"Login failed due to no KvK number/Pseudo ID being returned by eHerkenning/" +"eIDAS." msgstr "" "Inloggen mislukt omdat er geen geldig KvK-nummer/Pseudo-ID terugkwam uit " "eHerkenning." @@ -1786,8 +1781,7 @@ msgstr "Betrouwbaarheidsniveau" #: openforms/authentication/models.py:149 msgid "" -"How certain is the identity provider that this identity belongs to this " -"user." +"How certain is the identity provider that this identity belongs to this user." msgstr "" "Indicatie van de mate van zekerheid over de identiteit van de gebruiker, " "afgegeven door de identity provider." @@ -1874,8 +1868,8 @@ msgstr "Mag inzendingen opvoeren voor klanten" msgid "You must be logged in to start this form." msgstr "Je moet ingelogd zijn om dit formulier te starten." -#: openforms/authentication/signals.py:87 -#: openforms/authentication/views.py:184 openforms/authentication/views.py:319 +#: openforms/authentication/signals.py:87 openforms/authentication/views.py:184 +#: openforms/authentication/views.py:319 msgid "Demo plugins require an active admin session." msgstr "Om demo-plugins te gebruiken moet je als beheerder ingelogd zijn." @@ -1945,8 +1939,7 @@ msgid "Authentication context data: branch number" msgstr "Authenticatiecontext: vestigingsnummer" #: openforms/authentication/static_variables/static_variables.py:212 -msgid "" -"Authentication context data: authorizee, acting subject identifier type" +msgid "Authentication context data: authorizee, acting subject identifier type" msgstr "" "Authenticatiecontext: gemachtigde, identificatiesoort van de handelende " "persoon" @@ -1970,8 +1963,8 @@ msgid "" "When filling out a form for a client or company please enter additional " "information." msgstr "" -"Wanneer je een formulier invult voor een klant (burger of bedrijf), geef dan" -" extra informatie op." +"Wanneer je een formulier invult voor een klant (burger of bedrijf), geef dan " +"extra informatie op." #: openforms/authentication/templates/of_authentication/registrator_subject_info.html:43 #: openforms/authentication/templates/of_authentication/registrator_subject_info.html:53 @@ -1986,7 +1979,8 @@ msgstr "Start het authenticatie proces" msgid "" "This endpoint is the internal redirect target to start external login flow.\n" "\n" -"Note that this is NOT a JSON 'endpoint', but rather the browser should be redirected to this URL and will in turn receive another redirect.\n" +"Note that this is NOT a JSON 'endpoint', but rather the browser should be " +"redirected to this URL and will in turn receive another redirect.\n" "\n" "Various validations are performed:\n" "* the form must be live\n" @@ -1995,9 +1989,11 @@ msgid "" "* the `next` parameter must be present\n" "* the `next` parameter must match the CORS policy" msgstr "" -"Dit endpoint is het doel van de interne redirect om het externe login proces te starten.\n" +"Dit endpoint is het doel van de interne redirect om het externe login proces " +"te starten.\n" "\n" -"Merk op dat dit GEEN typische JSON-endpoint betreft maar een endpoint waarnaar toe geredirect wordt en zelf ook een redirect teruggeeft.\n" +"Merk op dat dit GEEN typische JSON-endpoint betreft maar een endpoint " +"waarnaar toe geredirect wordt en zelf ook een redirect teruggeeft.\n" "\n" "Diverse validaties worden uitgevoerd:\n" "* het formulier is actief\n" @@ -2012,8 +2008,8 @@ msgstr "URL-deel dat het formulier identificeert." #: openforms/authentication/views.py:109 msgid "" -"Identifier of the authentication plugin. Note that this is validated against" -" the configured available plugins for this particular form." +"Identifier of the authentication plugin. Note that this is validated against " +"the configured available plugins for this particular form." msgstr "" "Unieke identificatie van de authenticatieplugin. Merk op dat deze waarde " "gevalideerd wordt met de beschikbare plugins voor dit formulier." @@ -2039,8 +2035,8 @@ msgid "" "URL of the external authentication service where the end-user will be " "redirected to. The value is specific to the selected authentication plugin." msgstr "" -"URL van de externe authenticatie service waar de gebruiker naar toe verwezen" -" wordt. Deze waarde is specifiek voor de geselecteerde authenticatieplugin" +"URL van de externe authenticatie service waar de gebruiker naar toe verwezen " +"wordt. Deze waarde is specifiek voor de geselecteerde authenticatieplugin" #: openforms/authentication/views.py:150 msgid "OK. A login page is rendered." @@ -2061,8 +2057,8 @@ msgid "" "Method not allowed. The authentication plugin requires `POST` or `GET`, and " "the wrong method was used." msgstr "" -"Methode niet toegestaan. De authenticatieplugin moet worden benaderd middels" -" een `POST` of `GET`." +"Methode niet toegestaan. De authenticatieplugin moet worden benaderd middels " +"een `POST` of `GET`." #: openforms/authentication/views.py:235 msgid "Return from external login flow" @@ -2070,9 +2066,12 @@ msgstr "Aanroeppunt van het externe login proces" #: openforms/authentication/views.py:237 msgid "" -"Authentication plugins call this endpoint in the return step of the authentication flow. Depending on the plugin, either `GET` or `POST` is allowed as HTTP method.\n" +"Authentication plugins call this endpoint in the return step of the " +"authentication flow. Depending on the plugin, either `GET` or `POST` is " +"allowed as HTTP method.\n" "\n" -"Typically authentication plugins will redirect again to the URL where the SDK is embedded.\n" +"Typically authentication plugins will redirect again to the URL where the " +"SDK is embedded.\n" "\n" "Various validations are performed:\n" "* the form must be live\n" @@ -2080,7 +2079,9 @@ msgid "" "* logging in is required on the form\n" "* the redirect target must match the CORS policy" msgstr "" -"Authenticatieplugins roepen dit endpoint aan zodra het externe login proces is afgerond. Afhankelijk van de plugin, een `POST` of `GET` is toegestaan als HTTP-methode.\n" +"Authenticatieplugins roepen dit endpoint aan zodra het externe login proces " +"is afgerond. Afhankelijk van de plugin, een `POST` of `GET` is toegestaan " +"als HTTP-methode.\n" "\n" "Authenticatieplugins zullen typisch een redirect uitvoeren naar de SDK.\n" "\n" @@ -2232,8 +2233,7 @@ msgid "" "to accept before submitting a form." msgstr "" "Eén enkel Form.io selectievakjecomponent voor de verklaring die een " -"gebruiker mogelijks moet accepteren voor het formulier ingestuurd kan " -"worden." +"gebruiker mogelijks moet accepteren voor het formulier ingestuurd kan worden." #: openforms/config/api/constants.py:19 msgid "Component type (checkbox)" @@ -2263,8 +2263,8 @@ msgid "" "The formatted label to use next to the checkbox when asking the user to " "agree to the privacy policy." msgstr "" -"Het opgemaakte label dat naast het selectievakje moet worden getoond wanneer" -" de gebruiker wordt gevraagd akkoord te gaan met het privacybeleid." +"Het opgemaakte label dat naast het selectievakje moet worden getoond wanneer " +"de gebruiker wordt gevraagd akkoord te gaan met het privacybeleid." #: openforms/config/api/views.py:16 msgid "Privacy policy info" @@ -2352,23 +2352,23 @@ msgstr ".docx" msgid "Open Office" msgstr "Open Office" -#: openforms/config/constants.py:88 +#: openforms/config/constants.py:90 msgid ".zip" msgstr ".zip" -#: openforms/config/constants.py:89 +#: openforms/config/constants.py:92 msgid ".rar" msgstr ".rar" -#: openforms/config/constants.py:90 +#: openforms/config/constants.py:93 msgid ".tar" msgstr ".tar" -#: openforms/config/constants.py:91 +#: openforms/config/constants.py:94 msgid ".msg" msgstr ".msg" -#: openforms/config/constants.py:95 +#: openforms/config/constants.py:98 msgid ".dwg" msgstr ".dwg" @@ -2388,8 +2388,7 @@ msgstr "kleur" msgid "Color in RGB hex format (#RRGGBB)" msgstr "Kleur in RGB hex-formaat (#RRGGBB)" -#: openforms/config/models/color.py:15 -#: openforms/contrib/microsoft/models.py:11 +#: openforms/config/models/color.py:15 openforms/contrib/microsoft/models.py:11 #: openforms/contrib/zgw/api/serializers.py:23 #: openforms/dmn/api/serializers.py:53 openforms/dmn/api/serializers.py:73 #: soap/models.py:18 @@ -2434,8 +2433,8 @@ msgid "" "The content of the submission confirmation page. It can contain variables " "that will be templated from the submitted form data." msgstr "" -"De inhoud van bevestigingspagina kan variabelen bevatten die op basis van de" -" ingediende formuliergegevens worden weergegeven. " +"De inhoud van bevestigingspagina kan variabelen bevatten die op basis van de " +"ingediende formuliergegevens worden weergegeven. " #: openforms/config/models/config.py:66 msgid "Thank you for submitting this form." @@ -2447,8 +2446,7 @@ msgstr "titel downloadlink inzendings-PDF" #: openforms/config/models/config.py:72 msgid "The title of the link to download the report of a submission." -msgstr "" -"Titel/tekst van de downloadlink om de inzending als PDF te downloaden." +msgstr "Titel/tekst van de downloadlink om de inzending als PDF te downloaden." #: openforms/config/models/config.py:73 msgid "Download PDF" @@ -2522,8 +2520,8 @@ msgid "" "without any initiator. Otherwise, a fake initiator is added with BSN " "111222333." msgstr "" -"Indien aangevinkt en de inzender is niet geauthenticeerd, dan wordt een zaak" -" aangemaakt zonder initiator. Indien uitgevinkt, dan zal een nep-initiator " +"Indien aangevinkt en de inzender is niet geauthenticeerd, dan wordt een zaak " +"aangemaakt zonder initiator. Indien uitgevinkt, dan zal een nep-initiator " "worden toegevoegd met BSN 111222333." #: openforms/config/models/config.py:161 @@ -2547,8 +2545,7 @@ msgstr "Stap wijzigen-label" #: openforms/config/models/config.py:174 msgid "" -"The text that will be displayed in the overview page to change a certain " -"step" +"The text that will be displayed in the overview page to change a certain step" msgstr "" "Het label de link op de overzichtspagina om een bepaalde stap te wijzigen" @@ -2591,8 +2588,7 @@ msgid "" msgstr "" "Het label van de knop om naar de vorige stap binnen het formulier te gaan" -#: openforms/config/models/config.py:206 -#: openforms/forms/models/form_step.py:48 +#: openforms/config/models/config.py:206 openforms/forms/models/form_step.py:48 msgid "step save text" msgstr "Opslaan-label" @@ -2606,8 +2602,7 @@ msgid "" "information" msgstr "Het label van de knop om het formulier tussentijds op te slaan" -#: openforms/config/models/config.py:214 -#: openforms/forms/models/form_step.py:57 +#: openforms/config/models/config.py:214 openforms/forms/models/form_step.py:57 msgid "step next text" msgstr "Volgende stap-label" @@ -2616,8 +2611,7 @@ msgid "Next" msgstr "Volgende" #: openforms/config/models/config.py:218 -msgid "" -"The text that will be displayed in the form step to go to the next step" +msgid "The text that will be displayed in the form step to go to the next step" msgstr "" "Het label van de knop om naar de volgende stap binnen het formulier te gaan" @@ -2639,11 +2633,11 @@ msgstr "Markeer verplichte velden met een asterisk" #: openforms/config/models/config.py:232 msgid "" "If checked, required fields are marked with an asterisk and optional fields " -"are unmarked. If unchecked, optional fields will be marked with '(optional)'" -" and required fields are unmarked." +"are unmarked. If unchecked, optional fields will be marked with '(optional)' " +"and required fields are unmarked." msgstr "" -"Indien aangevinkt, dan zijn verplichte velden gemarkeerd met een asterisk en" -" optionele velden niet gemarkeerd. Indien uitgevinkt, dan zijn optionele " +"Indien aangevinkt, dan zijn verplichte velden gemarkeerd met een asterisk en " +"optionele velden niet gemarkeerd. Indien uitgevinkt, dan zijn optionele " "velden gemarkeerd met '(niet verplicht)' en verplichte velden ongemarkeerd." #: openforms/config/models/config.py:239 @@ -2669,8 +2663,8 @@ msgid "" "displayed but marked as non-applicable.)" msgstr "" "Indien aangevinkt, dan worden stappen die (via logicaregels) niet van " -"toepassing zijn verborgen. Standaard zijn deze zichtbaar maar gemarkeerd als" -" n.v.t." +"toepassing zijn verborgen. Standaard zijn deze zichtbaar maar gemarkeerd als " +"n.v.t." #: openforms/config/models/config.py:256 msgid "The default zoom level for the leaflet map." @@ -2685,8 +2679,8 @@ msgstr "" #: openforms/config/models/config.py:269 msgid "The default longitude for the leaflet map." msgstr "" -"Standaard longitude voor kaartmateriaal (in coördinatenstelsel EPSG:4326/WGS" -" 84)." +"Standaard longitude voor kaartmateriaal (in coördinatenstelsel EPSG:4326/WGS " +"84)." #: openforms/config/models/config.py:282 msgid "default theme" @@ -2719,8 +2713,8 @@ msgstr "hoofdsite link" msgid "" "URL to the main website. Used for the 'back to municipality website' link." msgstr "" -"URL naar de hoofdsite van de organisatie. Wordt gebruikt voor 'terug naar de" -" gemeente website' link." +"URL naar de hoofdsite van de organisatie. Wordt gebruikt voor 'terug naar de " +"gemeente website' link." #: openforms/config/models/config.py:305 msgid "organization name" @@ -2762,8 +2756,7 @@ msgid "" "Due to DigiD requirements this value has to be less than or equal to " "%(limit_value)s minutes." msgstr "" -"Om veiligheidsredenen mag de waarde niet groter zijn %(limit_value)s " -"minuten." +"Om veiligheidsredenen mag de waarde niet groter zijn %(limit_value)s minuten." #: openforms/config/models/config.py:345 msgid "" @@ -2779,8 +2772,8 @@ msgstr "Betaling: bestellingsnummersjabloon" #, python-brace-format msgid "" "Template to use when generating payment order IDs. It should be alpha-" -"numerical and can contain the '/._-' characters. You can use the placeholder" -" tokens: {year}, {public_reference}, {uid}." +"numerical and can contain the '/._-' characters. You can use the placeholder " +"tokens: {year}, {public_reference}, {uid}." msgstr "" "Sjabloon voor de generatie van unieke betalingsreferenties. Het sjabloon " "moet alfanumeriek zijn en mag de karakters '/._-' bevatten. De placeholder " @@ -2824,8 +2817,8 @@ msgid "" "Yes, I have read the {% privacy_policy %} and explicitly agree to the " "processing of my submitted information." msgstr "" -"Ja, ik heb kennis genomen van het {% privacy_policy %} en geef uitdrukkelijk" -" toestemming voor het verwerken van de door mij opgegeven gegevens." +"Ja, ik heb kennis genomen van het {% privacy_policy %} en geef uitdrukkelijk " +"toestemming voor het verwerken van de door mij opgegeven gegevens." #: openforms/config/models/config.py:397 openforms/forms/models/form.py:186 msgid "ask statement of truth" @@ -3066,14 +3059,13 @@ msgid "An easily recognizable name for the theme, used to identify it." msgstr "Een herkenbare naam om deze stijl te identificeren." #: openforms/config/models/theme.py:26 openforms/forms/models/category.py:10 -#: openforms/forms/models/form.py:57 openforms/forms/models/form.py:661 +#: openforms/forms/models/form.py:57 openforms/forms/models/form.py:666 #: openforms/forms/models/form_definition.py:39 #: openforms/forms/models/form_step.py:24 -#: openforms/forms/models/form_version.py:42 -#: openforms/forms/models/logic.py:11 -#: openforms/forms/models/pricing_logic.py:30 openforms/payments/models.py:87 -#: openforms/products/models/product.py:19 -#: openforms/submissions/models/submission.py:110 +#: openforms/forms/models/form_version.py:42 openforms/forms/models/logic.py:11 +#: openforms/forms/models/pricing_logic.py:30 openforms/payments/models.py:95 +#: openforms/products/models/product.py:22 +#: openforms/submissions/models/submission.py:111 #: openforms/submissions/models/submission_files.py:51 #: openforms/submissions/models/submission_files.py:147 #: openforms/submissions/models/submission_step.py:94 @@ -3101,8 +3093,8 @@ msgid "" "Upload the email logo, visible to users who receive an email. We advise " "dimensions around 150px by 75px. SVG's are not permitted." msgstr "" -"Upload het logo van de gemeente dat zichtbaar is in e-mails. We adviseren de" -" dimensies van 150 x 75 pixels. SVG-bestanden zijn niet toegestaan." +"Upload het logo van de gemeente dat zichtbaar is in e-mails. We adviseren de " +"dimensies van 150 x 75 pixels. SVG-bestanden zijn niet toegestaan." #: openforms/config/models/theme.py:64 msgid "theme CSS class name" @@ -3111,8 +3103,7 @@ msgstr "Thema CSS class name" #: openforms/config/models/theme.py:66 msgid "If provided, this class name will be set on the element." msgstr "" -"Indien ingevuld, dan wordt deze class name aan het element " -"toegevoegd." +"Indien ingevuld, dan wordt deze class name aan het element toegevoegd." #: openforms/config/models/theme.py:69 msgid "theme stylesheet URL" @@ -3127,14 +3118,14 @@ msgid "" "The URL stylesheet with theme-specific rules for your organization. This " "will be included as final stylesheet, overriding previously defined styles. " "Note that you also have to include the host to the `style-src` CSP " -"directive. Example value: https://unpkg.com/@utrecht/design-" -"tokens@1.0.0-alpha.20/dist/index.css." +"directive. Example value: https://unpkg.com/@utrecht/design-tokens@1.0.0-" +"alpha.20/dist/index.css." msgstr "" -"URL naar de stylesheet met thema-specifieke regels voor uw organisatie. Deze" -" stylesheet wordt als laatste ingeladen, waarbij eerdere stijlregels dus " +"URL naar de stylesheet met thema-specifieke regels voor uw organisatie. Deze " +"stylesheet wordt als laatste ingeladen, waarbij eerdere stijlregels dus " "overschreven worden. Vergeet niet dat u ook de host van deze URL aan de " -"`style-src` CSP configuratie moet toevoegen. Voorbeeldwaarde: " -"https://unpkg.com/@utrecht/design-tokens@1.0.0-alpha.20/dist/index.css." +"`style-src` CSP configuratie moet toevoegen. Voorbeeldwaarde: https://unpkg." +"com/@utrecht/design-tokens@1.0.0-alpha.20/dist/index.css." #: openforms/config/models/theme.py:86 msgid "theme stylesheet" @@ -3160,15 +3151,15 @@ msgstr "design token waarden" msgid "" "Values of various style parameters, such as border radii, background " "colors... Note that this is advanced usage. Any available but un-specified " -"values will use fallback default values. See https://open-" -"forms.readthedocs.io/en/latest/installation/form_hosting.html#run-time-" -"configuration for documentation." +"values will use fallback default values. See https://open-forms.readthedocs." +"io/en/latest/installation/form_hosting.html#run-time-configuration for " +"documentation." msgstr "" -"Waarden met diverse stijl parameters, zoals randen, achtergrondkleuren, etc." -" Dit is voor geavanceerde gebruikers. Attributen die niet zijn opgegeven " -"vallen terug op standaardwaarden. Zie https://open-" -"forms.readthedocs.io/en/latest/installation/form_hosting.html#run-time-" -"configuration voor documentatie." +"Waarden met diverse stijl parameters, zoals randen, achtergrondkleuren, etc. " +"Dit is voor geavanceerde gebruikers. Attributen die niet zijn opgegeven " +"vallen terug op standaardwaarden. Zie https://open-forms.readthedocs.io/en/" +"latest/installation/form_hosting.html#run-time-configuration voor " +"documentatie." #: openforms/config/models/theme.py:127 #: openforms/forms/api/serializers/form.py:168 @@ -3191,6 +3182,7 @@ msgid "Overview" msgstr "Overzicht" #: openforms/config/templates/admin/config/overview.html:23 +#: openforms/contrib/open_producten/models.py:36 msgid "Name" msgstr "Naam" @@ -3317,8 +3309,8 @@ msgstr "standaardwaarde BRP Personen doelbinding-header" #: openforms/contrib/haal_centraal/models.py:50 msgid "" "The default purpose limitation (\"doelbinding\") for queries to the BRP " -"Persoon API. If a more specific value is configured on a form, that value is" -" used instead." +"Persoon API. If a more specific value is configured on a form, that value is " +"used instead." msgstr "" "De standaard \"doelbinding\" voor BRP Personen bevragingen. Mogelijke " "waarden hiervoor zijn afhankelijk van je gateway-leverancier en/of eigen " @@ -3332,13 +3324,12 @@ msgstr "standaardwaarde BRP Personen verwerking-header" #: openforms/contrib/haal_centraal/models.py:60 msgid "" "The default processing (\"verwerking\") for queries to the BRP Persoon API. " -"If a more specific value is configured on a form, that value is used " -"instead." +"If a more specific value is configured on a form, that value is used instead." msgstr "" -"De standaard \"verwerking\" voor BRP Personen bevragingen. Mogelijke waarden" -" hiervoor zijn afhankelijk van je gateway-leverancier. Je kan deze ook op " -"formulierniveau opgeven en dan overschrijft de formulierspecifieke waarde de" -" standaardwaarde." +"De standaard \"verwerking\" voor BRP Personen bevragingen. Mogelijke waarden " +"hiervoor zijn afhankelijk van je gateway-leverancier. Je kan deze ook op " +"formulierniveau opgeven en dan overschrijft de formulierspecifieke waarde de " +"standaardwaarde." #: openforms/contrib/haal_centraal/models.py:80 msgid "Form" @@ -3352,8 +3343,8 @@ msgstr "BRP Personen doelbinding-header" msgid "" "The purpose limitation (\"doelbinding\") for queries to the BRP Persoon API." msgstr "" -"De \"doelbinding\" voor BRP Personen bevragingen. Mogelijke waarden hiervoor" -" zijn afhankelijk van je gateway-leverancier en/of eigen organisatie-" +"De \"doelbinding\" voor BRP Personen bevragingen. Mogelijke waarden hiervoor " +"zijn afhankelijk van je gateway-leverancier en/of eigen organisatie-" "instellingen." #: openforms/contrib/haal_centraal/models.py:93 @@ -3398,7 +3389,7 @@ msgid "House number to use in search" msgstr "Huisnummer om naar te zoeken" #: openforms/contrib/kadaster/api/serializers.py:18 -#: openforms/formio/components/custom.py:396 +#: openforms/formio/components/custom.py:429 msgid "street name" msgstr "straatnaam" @@ -3407,7 +3398,7 @@ msgid "Found street name" msgstr "Gevonden straatnaam" #: openforms/contrib/kadaster/api/serializers.py:20 -#: openforms/formio/components/custom.py:402 +#: openforms/formio/components/custom.py:435 msgid "city" msgstr "stad" @@ -3416,12 +3407,12 @@ msgid "Found city" msgstr "Gevonden stad" #: openforms/contrib/kadaster/api/serializers.py:22 -#: openforms/formio/components/custom.py:408 +#: openforms/formio/components/custom.py:441 msgid "city and street name secret" msgstr "gedeeld geheim straatnaam en stad" #: openforms/contrib/kadaster/api/serializers.py:23 -#: openforms/formio/components/custom.py:409 +#: openforms/formio/components/custom.py:442 msgid "Secret for the combination of city and street name" msgstr "Gedeeld geheim voor de combinatie van stad en straatnaam" @@ -3457,13 +3448,11 @@ msgstr "Rijksdriehoekcoördinaten" #: openforms/contrib/kadaster/api/serializers.py:47 msgid "" -"X and Y coordinates in the " -"[Rijkdsdriehoek](https://nl.wikipedia.org/wiki/Rijksdriehoeksco%C3%B6rdinaten)" -" coordinate system." +"X and Y coordinates in the [Rijkdsdriehoek](https://nl.wikipedia.org/wiki/" +"Rijksdriehoeksco%C3%B6rdinaten) coordinate system." msgstr "" -"X- en Y-coördinaten in de " -"[Rijkdsdriehoek](https://nl.wikipedia.org/wiki/Rijksdriehoeksco%C3%B6rdinaten)" -" coordinate system." +"X- en Y-coördinaten in de [Rijkdsdriehoek](https://nl.wikipedia.org/wiki/" +"Rijksdriehoeksco%C3%B6rdinaten) coordinate system." #: openforms/contrib/kadaster/api/serializers.py:58 msgid "Latitude, in decimal degrees." @@ -3485,11 +3474,14 @@ msgstr "Haal de straatnaam en stad op" msgid "" "Get the street name and city for a given postal code and house number.\n" "\n" -"**NOTE** the `/api/v2/location/get-street-name-and-city/` endpoint will be removed in v3. Use `/api/v2/geo/address-autocomplete/` instead." +"**NOTE** the `/api/v2/location/get-street-name-and-city/` endpoint will be " +"removed in v3. Use `/api/v2/geo/address-autocomplete/` instead." msgstr "" "Haal de straatnaam en stad op voor een opgegeven postcode en huisnummer.\n" "\n" -"**OPMERKING** de `/api/v2/location/get-street-name-and-city` endpoint zal in v3 verwijderd worden. Gebruik in de plaats `/api/v2/geo/address-autocomplete`." +"**OPMERKING** de `/api/v2/location/get-street-name-and-city` endpoint zal in " +"v3 verwijderd worden. Gebruik in de plaats `/api/v2/geo/address-" +"autocomplete`." #: openforms/contrib/kadaster/api/views.py:62 msgid "Postal code of the address" @@ -3504,8 +3496,7 @@ msgid "Get an adress based on coordinates" msgstr "Zoek adres op basis van coördinaten" #: openforms/contrib/kadaster/api/views.py:95 -msgid "" -"Get the closest address name based on the given longitude and latitude." +msgid "Get the closest address name based on the given longitude and latitude." msgstr "" "Haal de omschrijving op van het dichtsbijzijndste adres voor de opgegeven " "longitude en latitude." @@ -3524,13 +3515,18 @@ msgstr "Geef lijst van adressuggesties met coördinaten." #: openforms/contrib/kadaster/api/views.py:148 msgid "" -"Get a list of addresses, ordered by relevance/match score of the input query. Note that only results having latitude/longitude data are returned.\n" +"Get a list of addresses, ordered by relevance/match score of the input " +"query. Note that only results having latitude/longitude data are returned.\n" "\n" -"The results are retrieved from the configured geo search service, defaulting to the Kadaster location server." +"The results are retrieved from the configured geo search service, defaulting " +"to the Kadaster location server." msgstr "" -"Haal een lijst op van adressen, gesorteerd op relevantie/match score van de zoekopdracht. Merk op dat enkel resultaten voorzien van latitude/longitude teruggegeven worden.\n" +"Haal een lijst op van adressen, gesorteerd op relevantie/match score van de " +"zoekopdracht. Merk op dat enkel resultaten voorzien van latitude/longitude " +"teruggegeven worden.\n" "\n" -"Deze resultaten worden opgehaald uit de ingestelde geo-zoekservice. Standaard is dit de Locatieserver van het Kadaster." +"Deze resultaten worden opgehaald uit de ingestelde geo-zoekservice. " +"Standaard is dit de Locatieserver van het Kadaster." #: openforms/contrib/kadaster/api/views.py:159 msgid "" @@ -3686,17 +3682,18 @@ msgstr "Timeout (in seconden) voor netwerkverzoeken." msgid "Microsoft Graph service" msgstr "Microsoft Graph service" -#: openforms/contrib/objects_api/admin.py:35 +#: openforms/contrib/objects_api/admin.py:38 +#: openforms/contrib/open_producten/admin.py:14 #: openforms/registrations/contrib/zgw_apis/admin.py:18 msgid "Services" msgstr "Services" -#: openforms/contrib/objects_api/admin.py:46 +#: openforms/contrib/objects_api/admin.py:49 #: openforms/registrations/contrib/zgw_apis/admin.py:28 msgid "Catalogue" msgstr "Catalogus" -#: openforms/contrib/objects_api/admin.py:49 +#: openforms/contrib/objects_api/admin.py:52 msgid "" "Specify the catalogue in the selected catalogi API service where the " "document types are defined. If provided, document types will also be " @@ -3706,16 +3703,16 @@ msgstr "" "documenttypen gedefinieerd zijn. Wanneer documenttypen ingesteld zijn, dan " "worden deze tegen de catalogus gevalideerd." -#: openforms/contrib/objects_api/admin.py:57 +#: openforms/contrib/objects_api/admin.py:60 #: openforms/registrations/contrib/zgw_apis/admin.py:38 msgid "Default values" msgstr "Standaardwaarden" -#: openforms/contrib/objects_api/admin.py:68 +#: openforms/contrib/objects_api/admin.py:71 msgid "Default values (deprecated)" msgstr "Standaardwaarden (verouderd)" -#: openforms/contrib/objects_api/admin.py:71 +#: openforms/contrib/objects_api/admin.py:74 msgid "" "These configuration fields are deprecated - do not use them for new " "configurations." @@ -3723,11 +3720,108 @@ msgstr "" "Deze instellingen zijn verouderd - gebruik deze niet meer voor nieuwe " "configuratie." +#: openforms/contrib/objects_api/api/filters.py:20 +#: openforms/registrations/contrib/objects_api/api/filters.py:20 +msgid "" +"The primary key of the Objects API group to use. The informatieobjecttypen " +"from the Catalogi API in this group will be returned." +msgstr "" +"De primaire sleutel van de gewenste Objecten API-groep. De " +"informatieobjecttypen worden uit de Catalogi API van deze groep opgehaald." + +#: openforms/contrib/objects_api/api/filters.py:23 +#: openforms/contrib/objects_api/models.py:172 +#: openforms/registrations/contrib/objects_api/api/filters.py:23 +msgid "Objects API group" +msgstr "Objecten API-groep" + +#: openforms/contrib/objects_api/api/serializers.py:14 +#: openforms/contrib/objects_api/api/views.py:31 +#: openforms/prefill/contrib/objects_api/api/views.py:23 +#: openforms/registrations/contrib/objects_api/config.py:71 +msgid "Which Objects API group to use." +msgstr "De gewenste Objecten API-groep." + +#: openforms/contrib/objects_api/api/serializers.py:22 +msgid "" +"URL reference to this object. This is the unique identification and location " +"of this object." +msgstr "" +"URL-referentie naar dit object. Dit is de unieke identificatie en vindplaats " +"van het object." + +#: openforms/contrib/objects_api/api/serializers.py:25 +msgid "Unique identifier (UUID4)." +msgstr "Unieke identificatie (UUID4)." + +#: openforms/contrib/objects_api/api/serializers.py:26 +msgid "Name of the object type." +msgstr "Naam van het objecttype." + +#: openforms/contrib/objects_api/api/serializers.py:27 +msgid "Plural name of the object type." +msgstr "Naam (meervoud) van het objecttype." + +#: openforms/contrib/objects_api/api/serializers.py:29 +msgid "Confidential level of the object type." +msgstr "Vertrouwelijkheidsniveau van het objecttype." + +#: openforms/contrib/objects_api/api/serializers.py:35 +msgid "Integer version of the Objecttype." +msgstr "Versie (getal) van het objecttype." + +#: openforms/contrib/objects_api/api/serializers.py:37 +msgid "Status of the object type version" +msgstr "Publicatiestatus van de objecttypeversie." + +#: openforms/contrib/objects_api/api/views.py:91 +msgid "List available Catalogi from the provided Objects API group" +msgstr "Lijst van beschikbare catalogi (Objecten API)" + +#: openforms/contrib/objects_api/api/views.py:103 +msgid "" +"List the available InformatieObjectTypen from the provided Objects API group" +msgstr "Lijst van beschikbare documenttypen (Objecten API)" + #: openforms/contrib/objects_api/apps.py:8 #: openforms/contrib/objects_api/models.py:23 +#: openforms/prefill/contrib/objects_api/plugin.py:21 msgid "Objects API" msgstr "Objecten API" +#: openforms/contrib/objects_api/checks.py:24 +#, python-brace-format +msgid "" +"Missing Objects API credentials for Objects API group {objects_api_group}" +msgstr "" +"Ontbrekende Objecten API authenticatiegegevens voor de Objecten API-groep " +"{objects_api_group}" + +#: openforms/contrib/objects_api/checks.py:36 +#, python-brace-format +msgid "" +"Missing Objecttypes API credentials for Objects API group {objects_api_group}" +msgstr "" +"Ontbrekende Objecttypen API authenticatiegegevens voor de Objecten API-groep " +"{objects_api_group}" + +#: openforms/contrib/objects_api/checks.py:70 +#, python-brace-format +msgid "" +"{api_name} endpoint is not configured for Objects API group " +"{objects_api_group}." +msgstr "" +"{api_name} endpoint is niet geconfigureerd voor de Objecten API-groep " +"{objects_api_group}." + +#: openforms/contrib/objects_api/checks.py:75 +#: openforms/prefill/contrib/haalcentraal_brp/plugin.py:190 +#: openforms/prefill/contrib/kvk/plugin.py:119 +#: openforms/prefill/contrib/stufbg/plugin.py:222 +#, python-brace-format +msgid "Client error: {exception}" +msgstr "Client fout: {exception}" + #: openforms/contrib/objects_api/models.py:19 msgid "A recognisable name for this set of Objects APIs." msgstr "Een herkenbare naam voor deze Objecten API-groep." @@ -3769,7 +3863,7 @@ msgid "The 'rsin' attribute for the Catalogus resource in the Catalogi API." msgstr "Het 'rsin'-attribuut van de catalogus-entiteit in de Catalogi API." #: openforms/contrib/objects_api/models.py:87 -#: openforms/registrations/contrib/objects_api/config.py:119 +#: openforms/registrations/contrib/objects_api/config.py:120 #: openforms/registrations/contrib/zgw_apis/models.py:109 msgid "organisation RSIN" msgstr "organisatie RSIN" @@ -3779,7 +3873,7 @@ msgid "Default RSIN of organization, which creates the INFORMATIEOBJECT" msgstr "Standaard RSIN van de organisatie, die het INFORMATIEOBJECT aanmaakt" #: openforms/contrib/objects_api/models.py:96 -#: openforms/registrations/contrib/objects_api/config.py:126 +#: openforms/registrations/contrib/objects_api/config.py:127 msgid "submission report document type description" msgstr "omschrijving van het documenttype voor het PDF-document" @@ -3792,11 +3886,11 @@ msgid "" msgstr "" "Omschrijving van het documenttype in de Catalogi API (het " "INFORMATIEOBJECTTYPE.omschrijving attribuut) voor het PDF-document met " -"inzendingsgegevens. De juiste versie wordt automatisch geselecteerd op basis" -" van de inzendingsdatum en geldigheidsdatums van de documenttypeversies." +"inzendingsgegevens. De juiste versie wordt automatisch geselecteerd op basis " +"van de inzendingsdatum en geldigheidsdatums van de documenttypeversies." #: openforms/contrib/objects_api/models.py:110 -#: openforms/registrations/contrib/objects_api/config.py:139 +#: openforms/registrations/contrib/objects_api/config.py:140 msgid "submission report CSV document type description" msgstr "omschrijving van het documenttype voor het CSV-document" @@ -3809,11 +3903,11 @@ msgid "" msgstr "" "Omschrijving van het documenttype in de Catalogi API (het " "INFORMATIEOBJECTTYPE.omschrijving attribuut) voor het CSV-document met " -"inzendingsgegevens. De juiste versie wordt automatisch geselecteerd op basis" -" van de inzendingsdatum en geldigheidsdatums van de documenttypeversies." +"inzendingsgegevens. De juiste versie wordt automatisch geselecteerd op basis " +"van de inzendingsdatum en geldigheidsdatums van de documenttypeversies." #: openforms/contrib/objects_api/models.py:124 -#: openforms/registrations/contrib/objects_api/config.py:152 +#: openforms/registrations/contrib/objects_api/config.py:153 msgid "attachment document type description" msgstr "omschrijving bijlage-documenttype" @@ -3826,8 +3920,8 @@ msgid "" msgstr "" "Omschrijving van het documenttype in de Catalogi API (het " "INFORMATIEOBJECTTYPE.omschrijving attribuut) voor inzendingsbijlagen. De " -"juiste versie wordt automatisch geselecteerd op basis van de inzendingsdatum" -" en geldigheidsdatums van de documenttypeversies." +"juiste versie wordt automatisch geselecteerd op basis van de inzendingsdatum " +"en geldigheidsdatums van de documenttypeversies." #: openforms/contrib/objects_api/models.py:140 msgid "submission report informatieobjecttype" @@ -3842,7 +3936,7 @@ msgstr "" "gebruikt voor het PDF document." #: openforms/contrib/objects_api/models.py:149 -#: openforms/registrations/contrib/objects_api/config.py:175 +#: openforms/registrations/contrib/objects_api/config.py:176 msgid "submission report CSV informatieobjecttype" msgstr "inzendings CSV document informatieobjecttype" @@ -3855,7 +3949,7 @@ msgstr "" "gebruikt voor het CSV document." #: openforms/contrib/objects_api/models.py:158 -#: openforms/registrations/contrib/objects_api/config.py:183 +#: openforms/registrations/contrib/objects_api/config.py:184 msgid "attachment informatieobjecttype" msgstr "bijlage informatieobjecttype" @@ -3867,19 +3961,13 @@ msgstr "" "URL naar het standaard INFORMATIEOBJECTTYPE in een Catalogi API dat wordt " "gebruikt voor de bijlagen." -#: openforms/contrib/objects_api/models.py:172 -#: openforms/registrations/contrib/objects_api/api/filters.py:23 -msgid "Objects API group" -msgstr "Objecten API-groep" - #: openforms/contrib/objects_api/models.py:173 msgid "Objects API groups" msgstr "Objecten API-groepen" #: openforms/contrib/objects_api/models.py:179 #: openforms/registrations/contrib/zgw_apis/models.py:165 -msgid "" -"You must specify both domain and RSIN to uniquely identify a catalogue." +msgid "You must specify both domain and RSIN to uniquely identify a catalogue." msgstr "" "Je moet het domein én RSIN beide opgeven om een catalogus uniek te " "identificeren." @@ -3910,14 +3998,125 @@ msgstr "" #: openforms/contrib/objects_api/validators.py:60 msgid "The document type URL is not in the specified catalogue." -msgstr "" -"De opgegeven documenttype-URL bestaat niet in de ingestelde catalogus." +msgstr "De opgegeven documenttype-URL bestaat niet in de ingestelde catalogus." #: openforms/contrib/objects_api/validators.py:73 #, python-brace-format msgid "No document type with description {description} found." msgstr "Kon geen documenttype met omschrijving '{description}' vinden." +#: openforms/contrib/open_producten/apps.py:8 +#: openforms/contrib/open_producten/models.py:24 +#, fuzzy +#| msgid "Appointment configuration" +msgid "Open Producten configuration" +msgstr "Afspraakconfiguratie" + +#: openforms/contrib/open_producten/models.py:16 +#, fuzzy +#| msgid "Product ID" +msgid "Producten API" +msgstr "Product-ID" + +#: openforms/contrib/open_producten/models.py:38 +#, fuzzy +#| msgid "Product name" +msgid "Uniform product name" +msgstr "Productnaam" + +#: openforms/contrib/open_producten/models.py:45 +#, fuzzy +#| msgid "url" +msgid "Url" +msgstr "URL" + +#: openforms/contrib/open_producten/models.py:49 +#, fuzzy +#| msgid "List form step definitions" +msgid "Url to the upn definition." +msgstr "Formulierstap definities weergeven" + +#: openforms/contrib/open_producten/models.py:53 +#, fuzzy +#| msgid "is deleted" +msgid "Is deleted" +msgstr "is verwijderd" + +#: openforms/contrib/open_producten/models.py:56 +msgid "" +"set when the product is deleted in open producten but is linked to existing " +"submission." +msgstr "" + +#: openforms/contrib/open_producten/models.py:72 +#, fuzzy +#| msgid "Productaanvraag type" +msgid "Product type" +msgstr "Productaanvraag type" + +#: openforms/contrib/open_producten/models.py:75 +msgid "The product type that this price belongs to" +msgstr "" + +#: openforms/contrib/open_producten/models.py:78 +#, fuzzy +#| msgid "start time" +msgid "Start date" +msgstr "starttijd" + +#: openforms/contrib/open_producten/models.py:81 +#, fuzzy +#| msgid "The form variable to which this value is related" +msgid "The date at which this price is valid" +msgstr "Formuliervariabele waar deze waarde bij hoort" + +#: openforms/contrib/open_producten/models.py:85 +#: openforms/contrib/open_producten/models.py:96 +#: openforms/contrib/open_producten/models.py:102 +#: openforms/submissions/admin.py:378 +msgid "Price" +msgstr "Prijs" + +#: openforms/contrib/open_producten/models.py:86 +#, fuzzy +#| msgid "Price" +msgid "Prices" +msgstr "Prijs" + +#: openforms/contrib/open_producten/models.py:99 +msgid "The price this option belongs to" +msgstr "" + +#: openforms/contrib/open_producten/models.py:106 +#, fuzzy +#| msgid "The OIN of the organization." +msgid "The amount of the price option" +msgstr "Het (door Logius toegekende) organisatie-identificatienummer (OIN)." + +#: openforms/contrib/open_producten/models.py:109 +#, fuzzy +#| msgid "description" +msgid "Description" +msgstr "omschrijving" + +#: openforms/contrib/open_producten/models.py:111 +#, fuzzy +#| msgid "Short description of the output." +msgid "Short description of the option" +msgstr "Korte omschrijving van de output." + +#: openforms/contrib/open_producten/models.py:115 +#, fuzzy +#| msgid "Payment options" +msgid "Price option" +msgstr "Betaalopties" + +#: openforms/contrib/open_producten/models.py:116 +#, fuzzy +#| msgid "Payment options" +msgid "Price options" +msgstr "Betaalopties" + #: openforms/contrib/zgw/api/filters.py:16 #: openforms/registrations/contrib/zgw_apis/api/filters.py:45 msgid "catalogus URL" @@ -3955,7 +4154,6 @@ msgstr "" "endpoints om gegevens te filteren." #: openforms/contrib/zgw/api/serializers.py:36 -#| msgid "Identification number" msgid "identification" msgstr "identificatie" @@ -4007,13 +4205,10 @@ msgstr "" "bestaan - deze hebben niet-overlappende geldigheidsdatums." #: openforms/contrib/zgw/api/serializers.py:71 -#| msgid "catalogus label" msgid "catalogue label" msgstr "cataloguslabel" #: openforms/contrib/zgw/api/serializers.py:72 -#| msgid "" -#| "Representation of the JSON target location as a list of string segments." msgid "A representation of the catalogue containing the document type." msgstr "Weergave van de catalogus die het documenttype bevat." @@ -4030,7 +4225,7 @@ msgid "You must select or set up a catalogi service to use." msgstr "Je moet een Catalogi API service selecteren of instellen." #: openforms/contrib/zgw/validators.py:37 -#: openforms/registrations/contrib/objects_api/config.py:405 +#: openforms/registrations/contrib/objects_api/config.py:406 #: openforms/registrations/contrib/zgw_apis/options.py:310 msgid "" "The specified catalogue does not exist. Maybe you made a typo in the domain " @@ -4074,7 +4269,7 @@ msgstr "De (unieke) identifier voor een beslisdefinitie" #: openforms/dmn/api/serializers.py:23 openforms/dmn/api/serializers.py:36 #: openforms/payments/contrib/ogone/models.py:10 #: openforms/plugins/api/serializers.py:14 -#: openforms/prefill/api/serializers.py:64 +#: openforms/prefill/api/serializers.py:71 #: openforms/registrations/api/serializers.py:34 #: openforms/validations/api/serializers.py:68 msgid "Label" @@ -4090,8 +4285,7 @@ msgstr "Versie-identificatie" #: openforms/dmn/api/serializers.py:32 msgid "" -"The (unique) identifier pointing to a particular decision definition " -"version." +"The (unique) identifier pointing to a particular decision definition version." msgstr "De (unieke) identifier voor een beslisdefinitieversie." #: openforms/dmn/api/serializers.py:37 @@ -4256,8 +4450,7 @@ msgstr "" "Testbericht is succesvol verzonden naar %(recipients)s. Controleer uw inbox." #: openforms/emails/connection_check.py:92 -msgid "" -"If the message doesn't arrive check the Django-yubin queue and cronjob." +msgid "If the message doesn't arrive check the Django-yubin queue and cronjob." msgstr "" "Indien het bericht niet aankomt, controleer de Django-yubin wachtrij en " "periodieke acties." @@ -4344,8 +4537,8 @@ msgid "" "Use this form to send a test email to the supplied recipient and test the " "email backend configuration." msgstr "" -"Gebruik dit formulier om een testbericht te versturen naar een opgegeven " -"e-mailadres." +"Gebruik dit formulier om een testbericht te versturen naar een opgegeven e-" +"mailadres." #: openforms/emails/templates/admin/emails/connection_check.html:20 msgid "Send test email" @@ -4379,8 +4572,8 @@ msgstr "Registraties" #: openforms/emails/templates/emails/admin_digest.html:26 #, python-format msgid "" -"Form '%(form_name)s' failed %(counter)s time(s) between %(first_failure_at)s" -" and %(last_failure_at)s.
" +"Form '%(form_name)s' failed %(counter)s time(s) between %(first_failure_at)s " +"and %(last_failure_at)s.
" msgstr "" "Formulier '%(form_name)s' faalde %(counter)s keer tussen " "%(first_failure_at)s en %(last_failure_at)s.
" @@ -4489,8 +4682,8 @@ msgid "" "We couldn't process logic rule %(index)s for '%(form_name)s' because it " "appears to be invalid.
" msgstr "" -"Logicaregel %(index)s in formulier '%(form_name)s' lijkt ongeldig te zijn en" -" kon daarom niet gecontroleerd worden.
" +"Logicaregel %(index)s in formulier '%(form_name)s' lijkt ongeldig te zijn en " +"kon daarom niet gecontroleerd worden.
" #: openforms/emails/templates/emails/admin_digest.html:147 #, python-format @@ -4512,21 +4705,28 @@ msgstr "" msgid "" "\n" "Please visit the form page by navigating to the following link:\n" -"%(tt_openvariable)s form_url %(tt_closevariable)s.\n" +"%(tt_openvariable)s form_url %(tt_closevariable)s.\n" msgstr "" "\n" -"Gelieve naar de formulierpagina te navigeren met de volgende link: %(tt_openvariable)s form_url %(tt_closevariable)s.\n" +"Gelieve naar de formulierpagina te navigeren met de volgende link: %(tt_openvariable)s form_url %(tt_closevariable)s.\n" #: openforms/emails/templates/emails/co_sign/request.html:13 #, python-format msgid "" "\n" -"

This is a request to co-sign form \"%(tt_openvariable)s form_name %(tt_closevariable)s\".

\n" +"

This is a request to co-sign form \"%(tt_openvariable)s form_name " +"%(tt_closevariable)s\".

\n" "\n" "

%(instruction)s

\n" "\n" "

\n" -" You will then be redirected to authenticate yourself. After authentication, fill in\n" +" You will then be redirected to authenticate yourself. After " +"authentication, fill in\n" " the following code to retrieve the form submission:\n" "
\n" "
\n" @@ -4534,12 +4734,14 @@ msgid "" "

\n" msgstr "" "\n" -"

Dit is een verzoek om het formulier \\\"%(tt_openvariable)s form_name %(tt_closevariable)s\\\" mede te ondertekenen.

\n" +"

Dit is een verzoek om het formulier \\\"%(tt_openvariable)s form_name " +"%(tt_closevariable)s\\\" mede te ondertekenen.

\n" "\n" "

%(instruction)s

\n" "\n" "

\n" -" Daarna word je doorgestuurd naar een pagina waar je moet inloggen. Nadat je bent ingelogd, haal je het formulier op met de volgende code:\n" +" Daarna word je doorgestuurd naar een pagina waar je moet inloggen. Nadat " +"je bent ingelogd, haal je het formulier op met de volgende code:\n" "
\n" "
\n" " %(tt_openvariable)s code %(tt_closevariable)s\n" @@ -4551,9 +4753,12 @@ msgid "" "\n" "Dear Sir, Madam,
\n" "
\n" -"You have submitted the form \"%(tt_openvariable)s form_name %(tt_closevariable)s\" on %(tt_openvariable)s submission_date %(tt_closevariable)s.
\n" +"You have submitted the form \"%(tt_openvariable)s form_name " +"%(tt_closevariable)s\" on %(tt_openvariable)s submission_date " +"%(tt_closevariable)s.
\n" "
\n" -"Your reference is: %(tt_openvariable)s public_reference %(tt_closevariable)s
\n" +"Your reference is: %(tt_openvariable)s public_reference " +"%(tt_closevariable)s
\n" "
\n" "\n" "\n" @@ -4570,9 +4775,12 @@ msgstr "" "\n" "Geachte heer/mevrouw,
\n" "
\n" -"U heeft via de website het formulier \"%(tt_openvariable)s form_name %(tt_closevariable)s\" verzonden op %(tt_openvariable)s submission_date %(tt_closevariable)s.
\n" +"U heeft via de website het formulier \"%(tt_openvariable)s form_name " +"%(tt_closevariable)s\" verzonden op %(tt_openvariable)s submission_date " +"%(tt_closevariable)s.
\n" "
\n" -"Uw referentienummer is: %(tt_openvariable)s public_reference %(tt_closevariable)s
\n" +"Uw referentienummer is: %(tt_openvariable)s public_reference " +"%(tt_closevariable)s
\n" "
\n" "\n" "%(tt_openblock)s cosign_information %(tt_closeblock)s
\n" @@ -4598,22 +4806,26 @@ msgstr "" #, python-format msgid "" "\n" -"

This email address requires verification for the \"%(tt_openvariable)s form_name %(tt_closevariable)s\" form.

\n" +"

This email address requires verification for the \"%(tt_openvariable)s " +"form_name %(tt_closevariable)s\" form.

\n" "\n" "

Enter the code below to confirm your email address:

\n" "\n" "

%(tt_openvariable)s code %(tt_closevariable)s

\n" "\n" -"

If you did not request this verification, you can safely ignore this email.

\n" +"

If you did not request this verification, you can safely ignore this " +"email.

\n" msgstr "" "\n" -"

Dit e-mailadres moet gecontroleerd worden voor het \"%(tt_openvariable)s form_name %(tt_closevariable)s\"-formulier.

\n" +"

Dit e-mailadres moet gecontroleerd worden voor het \"%(tt_openvariable)s " +"form_name %(tt_closevariable)s\"-formulier.

\n" "\n" "

Voer de code die hieronder staat in om je e-mailadres te bevestigen:

\n" "\n" "

%(tt_openvariable)s code %(tt_closevariable)s

\n" "\n" -"

Als je niet zelf deze controle gestart bent, dan kan je deze e-mail negeren.

\n" +"

Als je niet zelf deze controle gestart bent, dan kan je deze e-mail " +"negeren.

\n" #: openforms/emails/templates/emails/email_verification/subject.txt:1 #, python-format @@ -4631,11 +4843,15 @@ msgid "" "\n" "Dear Sir or Madam,
\n" "
\n" -"You have stored the form \"%(tt_openvariable)s form_name %(tt_closevariable)s\" via the website on %(tt_openvariable)s save_date %(tt_closevariable)s.\n" +"You have stored the form \"%(tt_openvariable)s form_name " +"%(tt_closevariable)s\" via the website on %(tt_openvariable)s save_date " +"%(tt_closevariable)s.\n" "You can resume this form at a later time by clicking the link below.
\n" -"The link is valid up to and including %(tt_openvariable)s expiration_date %(tt_closevariable)s.
\n" +"The link is valid up to and including %(tt_openvariable)s expiration_date " +"%(tt_closevariable)s.
\n" "
\n" -"
Resume form \"%(tt_openvariable)s form_name %(tt_closevariable)s\".
\n" +"Resume " +"form \"%(tt_openvariable)s form_name %(tt_closevariable)s\".
\n" "
\n" "Kind regards,
\n" "
\n" @@ -4643,14 +4859,24 @@ msgid "" "\n" msgstr "" "\n" -"Geachte heer/mevrouw,

U heeft via de website het formulier \"%(tt_openvariable)s form_name %(tt_closevariable)s\" tussentijds opgeslagen op %(tt_openvariable)s save_date %(tt_closevariable)s. U kunt dit formulier op een later moment hervatten door op onderstaande link te klikken.
Onderstaande link is geldig tot en met %(tt_openvariable)s expiration_date %(tt_closevariable)s.

Verder gaan met formulier \"%(tt_openvariable)s form_name %(tt_closevariable)s\".

Met vriendelijke groet,

Open Formulieren\n" +"Geachte heer/mevrouw,

U heeft via de website het formulier " +"\"%(tt_openvariable)s form_name %(tt_closevariable)s\" tussentijds " +"opgeslagen op %(tt_openvariable)s save_date %(tt_closevariable)s. U kunt dit " +"formulier op een later moment hervatten door op onderstaande link te klikken." +"
Onderstaande link is geldig tot en met %(tt_openvariable)s " +"expiration_date %(tt_closevariable)s.

Verder gaan met formulier " +"\"%(tt_openvariable)s form_name %(tt_closevariable)s\".

Met " +"vriendelijke groet,

Open Formulieren\n" #: openforms/emails/templates/emails/save_form/save_form.txt:1 #, python-format msgid "" "Dear Sir or Madam,\n" "\n" -"You have stored the form \"%(form_name)s\" via the website on %(formatted_save_date)s. You can resume this form at a later time by clicking the link below.\n" +"You have stored the form \"%(form_name)s\" via the website on " +"%(formatted_save_date)s. You can resume this form at a later time by " +"clicking the link below.\n" "The link is valid up to and including %(formatted_expiration_date)s.\n" "\n" "Resume form: %(continue_url)s\n" @@ -4661,7 +4887,10 @@ msgid "" msgstr "" "Geachte heer/mevrouw,\n" "\n" -"U heeft via de website het formulier \"%(form_name)s\" tussentijds opgeslagen op %(formatted_save_date)s. U kunt dit formulier op een later moment hervatten door op onderstaande link te klikken.Onderstaande link is geldig tot en met %(formatted_expiration_date)s.\n" +"U heeft via de website het formulier \"%(form_name)s\" tussentijds " +"opgeslagen op %(formatted_save_date)s. U kunt dit formulier op een later " +"moment hervatten door op onderstaande link te klikken.Onderstaande link is " +"geldig tot en met %(formatted_expiration_date)s.\n" "\n" "Verder gaan met formulier: %(continue_url)s\n" "\n" @@ -4769,8 +4998,8 @@ msgid "" "Payment of € %(payment_price)s is required. You can pay using the link " "below." msgstr "" -"Betaling van €%(payment_price)s vereist. U kunt het bedrag betalen door" -" op onderstaande link te klikken." +"Betaling van €%(payment_price)s vereist. U kunt het bedrag betalen door " +"op onderstaande link te klikken." #: openforms/emails/templates/emails/templatetags/payment_information.html:15 #: openforms/emails/templates/emails/templatetags/payment_information.txt:8 @@ -4841,30 +5070,28 @@ msgstr "Bestandsgrootte" msgid "The provided file is not a valid file type." msgstr "Het bestand is geen toegestaan bestandstype." -#: openforms/formio/api/validators.py:97 -#: openforms/formio/api/validators.py:106 +#: openforms/formio/api/validators.py:97 openforms/formio/api/validators.py:116 #, python-brace-format msgid "The provided file is not a {file_type}." msgstr "Het bestand is geen {file_type}." -#: openforms/formio/api/validators.py:132 -msgid "" -"The virus scan could not be performed at this time. Please retry later." +#: openforms/formio/api/validators.py:142 +msgid "The virus scan could not be performed at this time. Please retry later." msgstr "" "Het is momenteel niet mogelijk om bestanden te scannen op virussen. Probeer " "het later opnieuw." -#: openforms/formio/api/validators.py:141 +#: openforms/formio/api/validators.py:151 #, python-brace-format msgid "" "File did not pass the virus scan. It was found to contain '{virus_name}'." msgstr "Er is een virus gedetecteerd in het bestand: '{virus_name}'." -#: openforms/formio/api/validators.py:147 +#: openforms/formio/api/validators.py:157 msgid "The virus scan on this file returned an error." msgstr "Er deed zich een onbekende fout voor bij het scannen op virussen." -#: openforms/formio/api/validators.py:159 +#: openforms/formio/api/validators.py:169 msgid "The virus scan returned an unexpected status." msgstr "De virusscan resulteerde in een onverwachte status." @@ -4877,26 +5104,36 @@ msgstr "Maak tijdelijk bestand aan" msgid "" "File upload handler for the Form.io file upload \"url\" storage type.\n" "\n" -"The uploads are stored temporarily and have to be claimed by the form submission using the returned JSON data. \n" +"The uploads are stored temporarily and have to be claimed by the form " +"submission using the returned JSON data. \n" "\n" -"Access to this view requires an active form submission. Unclaimed temporary files automatically expire after {expire_days} day(s). \n" +"Access to this view requires an active form submission. Unclaimed temporary " +"files automatically expire after {expire_days} day(s). \n" "\n" -"The maximum upload size for this instance is `{max_upload_size}`. Note that this includes the multipart metadata and boundaries, so the actual maximum file upload size is slightly smaller." +"The maximum upload size for this instance is `{max_upload_size}`. Note that " +"this includes the multipart metadata and boundaries, so the actual maximum " +"file upload size is slightly smaller." msgstr "" "Bestandsuploadhandler voor het Form.io bestandsupload opslagtype 'url'.\n" "\n" -"Bestandsuploads worden tijdelijke opgeslagen en moeten gekoppeld worden aan een inzending.\n" +"Bestandsuploads worden tijdelijke opgeslagen en moeten gekoppeld worden aan " +"een inzending.\n" "\n" -"Toegang tot dit endpoint vereist een actieve formulier inzending. Niet gekoppelde bestanden worden automatisch verwijderd na {expire_days} dag(en).\n" +"Toegang tot dit endpoint vereist een actieve formulier inzending. Niet " +"gekoppelde bestanden worden automatisch verwijderd na {expire_days} " +"dag(en).\n" "\n" -"De maximale toegestane upload-bestandsgrootte is `{max_upload_size}` voor deze instantie. Merk op dat dit inclusief multipart-metadata en boundaries is. De daadwerkelijke maximale bestandsgrootte is dus iets lager dan deze waarde." +"De maximale toegestane upload-bestandsgrootte is `{max_upload_size}` voor " +"deze instantie. Merk op dat dit inclusief multipart-metadata en boundaries " +"is. De daadwerkelijke maximale bestandsgrootte is dus iets lager dan deze " +"waarde." #: openforms/formio/apps.py:7 msgid "Formio integration" msgstr "Form.io-integratie" #: openforms/formio/components/custom.py:247 -#: openforms/formio/components/custom.py:550 +#: openforms/formio/components/custom.py:583 #: openforms/formio/components/vanilla.py:113 #: openforms/formio/components/vanilla.py:300 msgid "This value does not match the required pattern." @@ -4906,25 +5143,23 @@ msgstr "De waarde komt niet overeen met het verwachte patroon." msgid "Selecting family members is currently not available." msgstr "Het selecteren van gezinsleden is momenteel niet beschikbaar." -#: openforms/formio/components/custom.py:397 +#: openforms/formio/components/custom.py:430 msgid "Derived street name" msgstr "Afgeleide straatnaam" -#: openforms/formio/components/custom.py:403 +#: openforms/formio/components/custom.py:436 msgid "Derived city" msgstr "Afgeleide stad" -#: openforms/formio/components/custom.py:425 -#| msgid "This value does not match the required pattern." +#: openforms/formio/components/custom.py:458 msgid "City does not match the specified pattern." msgstr "De stad komt niet overeen met het verwachtte patroon." -#: openforms/formio/components/custom.py:437 -#| msgid "This value does not match the required pattern." +#: openforms/formio/components/custom.py:470 msgid "Postcode does not match the specified pattern." msgstr "De postcode komt niet overeen met het verwachtte patroon." -#: openforms/formio/components/custom.py:464 +#: openforms/formio/components/custom.py:497 msgid "Invalid secret city - street name combination" msgstr "Ongeldige waarde voor sleutel voor de stad/straat-combinatie." @@ -4975,11 +5210,10 @@ msgstr "" #: openforms/formio/components/vanilla.py:360 #, python-brace-format -msgid "" -"The value of {root_key} must match the value of {nested_key} in 'data'." +msgid "The value of {root_key} must match the value of {nested_key} in 'data'." msgstr "" -"De waarde van {root_key} moet overeenkomen met de waarde van {nested_key} in" -" 'data'." +"De waarde van {root_key} moet overeenkomen met de waarde van {nested_key} in " +"'data'." #: openforms/formio/components/vanilla.py:369 #: openforms/formio/components/vanilla.py:385 @@ -5178,8 +5412,8 @@ msgid "" "Please configure your email address in your admin profile before requesting " "a bulk export" msgstr "" -"Gelieve eerst uw e-mailadres in te stellen in uw gebruikersaccount voordat u" -" een bulk-export doet." +"Gelieve eerst uw e-mailadres in te stellen in uw gebruikersaccount voordat u " +"een bulk-export doet." #: openforms/forms/admin/form_definition.py:24 #, python-brace-format @@ -5305,8 +5539,8 @@ msgid "" "submit a form. Returns a list of formio component definitions, all of type " "'checkbox'." msgstr "" -"Een lijst van verklaringen die de gebruiker moet accepteren om het formulier" -" te kunnen inzenden. Deze worden teruggegeven als lijst van Form.io-" +"Een lijst van verklaringen die de gebruiker moet accepteren om het formulier " +"te kunnen inzenden. Deze worden teruggegeven als lijst van Form.io-" "componentdefinities, allemaal van het type 'checkbox'." #: openforms/forms/api/serializers/form.py:364 @@ -5323,8 +5557,8 @@ msgstr "" #: openforms/forms/api/serializers/form.py:540 msgid "" -"The `auto_login_authentication_backend` must be one of the selected backends" -" from `authentication_backends`" +"The `auto_login_authentication_backend` must be one of the selected backends " +"from `authentication_backends`" msgstr "" "De `auto_login_authentication_backend` moet één van de backends uit " "`authentication_backends` zijn." @@ -5426,8 +5660,7 @@ msgstr "" #: openforms/forms/api/serializers/form_variable.py:189 msgid "Prefill plugin and attribute must both be specified." -msgstr "" -"De plugin en het attribuut voor prefill moeten beide opgegeven worden." +msgstr "De plugin en het attribuut voor prefill moeten beide opgegeven worden." #: openforms/forms/api/serializers/logic/action_serializers.py:29 msgid "property key" @@ -5454,8 +5687,8 @@ msgstr "waarde van het attribuut" #: openforms/forms/api/serializers/logic/action_serializers.py:46 msgid "" -"Valid JSON determining the new value of the specified property. For example:" -" `true` or `false`." +"Valid JSON determining the new value of the specified property. For example: " +"`true` or `false`." msgstr "" "De JSON die de nieuwe waarde van het gespecificeerde attribuut bepaald. " "Bijvoorbeeld: `true` of `false`." @@ -5467,8 +5700,8 @@ msgstr "Waarde" #: openforms/forms/api/serializers/logic/action_serializers.py:63 msgid "" -"A valid JsonLogic expression describing the value. This may refer to (other)" -" Form.io components." +"A valid JsonLogic expression describing the value. This may refer to (other) " +"Form.io components." msgstr "" "Een JSON-logic expressie die de waarde beschrijft. Deze mag naar (andere) " "Form.io componenten verwijzen." @@ -5524,8 +5757,8 @@ msgid "" "Key of the Form.io component that the action applies to. This field is " "required for the action types {action_types} - otherwise it's optional." msgstr "" -"Sleutel van de Form.io-component waarop de actie van toepassing is. Dit veld" -" is verplicht voor de actietypes {action_types} - anders is het optioneel. " +"Sleutel van de Form.io-component waarop de actie van toepassing is. Dit veld " +"is verplicht voor de actietypes {action_types} - anders is het optioneel. " #: openforms/forms/api/serializers/logic/action_serializers.py:158 msgid "Key of the target variable" @@ -5549,8 +5782,8 @@ msgstr "formulierstap" #: openforms/forms/api/serializers/logic/action_serializers.py:178 #, python-format msgid "" -"The form step that will be affected by the action. This field is required if" -" the action type is `%(action_type)s`, otherwise optional." +"The form step that will be affected by the action. This field is required if " +"the action type is `%(action_type)s`, otherwise optional." msgstr "" "De formulierstap die wordt beïnvloed door de actie. Dit veld is verplicht " "als het actietype `%(action_type)s` is, anders optioneel." @@ -5558,8 +5791,8 @@ msgstr "" #: openforms/forms/api/serializers/logic/action_serializers.py:188 #, python-format msgid "" -"The UUID of the form step that will be affected by the action. This field is" -" required if the action type is `%(action_type)s`, otherwise optional." +"The UUID of the form step that will be affected by the action. This field is " +"required if the action type is `%(action_type)s`, otherwise optional." msgstr "" "De formulierstap die wordt beïnvloed door de actie. Dit veld is verplicht " "als het actietype `%(action_type)s` is, anders optioneel." @@ -5611,8 +5844,8 @@ msgstr "" #: openforms/forms/api/serializers/logic/form_logic.py:86 msgid "Actions triggered when the trigger expression evaluates to 'truthy'." msgstr "" -"Acties die worden geactiveerd wanneer de trigger-expressie wordt geëvalueerd" -" als 'truthy'." +"Acties die worden geactiveerd wanneer de trigger-expressie wordt geëvalueerd " +"als 'truthy'." #: openforms/forms/api/serializers/logic/form_logic.py:110 msgid "" @@ -5626,7 +5859,8 @@ msgstr "" #: openforms/forms/api/validators.py:29 msgid "The first operand must be a `{\"var\": \"\"}` expression." -msgstr "De eerste operand moet een `{\"var\": \"\"}` expressie zijn." +msgstr "" +"De eerste operand moet een `{\"var\": \"\"}` expressie zijn." #: openforms/forms/api/validators.py:120 msgid "The variable cannot be empty." @@ -5687,27 +5921,40 @@ msgstr "Formulierstap definities weergeven" #: openforms/forms/api/viewsets.py:123 #, python-brace-format msgid "" -"Get a list of existing form definitions, where a single item may be a re-usable or single-use definition. This includes form definitions not currently used in any form(s) at all.\n" +"Get a list of existing form definitions, where a single item may be a re-" +"usable or single-use definition. This includes form definitions not " +"currently used in any form(s) at all.\n" "\n" -"You can filter this list down to only re-usable definitions or definitions used in a particular form.\n" +"You can filter this list down to only re-usable definitions or definitions " +"used in a particular form.\n" "\n" -"**Note**: filtering on both `is_reusable` and `used_in` at the same time is implemented as an OR-filter.\n" +"**Note**: filtering on both `is_reusable` and `used_in` at the same time is " +"implemented as an OR-filter.\n" "\n" "**Warning: the response data depends on user permissions**\n" "\n" -"Non-staff users receive a subset of all the documented fields. The fields reserved for staff users are used for internal form configuration. These are: \n" +"Non-staff users receive a subset of all the documented fields. The fields " +"reserved for staff users are used for internal form configuration. These " +"are: \n" "\n" "{admin_fields}" msgstr "" -"Geef een lijst van bestaande formulierdefinities waarin één enkele definitie herbruikbaar of voor éénmalig gebruik kan zijn. Dit is inclusief definities die in geen enkel formulier gebruikt zijn.\n" +"Geef een lijst van bestaande formulierdefinities waarin één enkele definitie " +"herbruikbaar of voor éénmalig gebruik kan zijn. Dit is inclusief definities " +"die in geen enkel formulier gebruikt zijn.\n" "\n" -"Je kan deze lijst filteren op enkel herbruikbare definities of definities die in een specifiek formulier gebruikt worden.\n" +"Je kan deze lijst filteren op enkel herbruikbare definities of definities " +"die in een specifiek formulier gebruikt worden.\n" "\n" -"**Merk op**: tegelijk filteren op `is_reusable` en `used_in` is geïmplementeerd als een OF-filter - je krijgt dus beide resultaten terug.\n" +"**Merk op**: tegelijk filteren op `is_reusable` en `used_in` is " +"geïmplementeerd als een OF-filter - je krijgt dus beide resultaten terug.\n" "\n" -"**Waarschuwing: de gegevens in het antwoord zijn afhankelijk van je gebruikersrechten**\n" +"**Waarschuwing: de gegevens in het antwoord zijn afhankelijk van je " +"gebruikersrechten**\n" "\n" -"Gebruikers die geen beheerder zijn, ontvangen maar een deel van de gedocumenteerde velden. De velden die enkel voor beheerders beschikbaar zijn, zijn voor interne formulierconfiguratie. Het gaat om de velden:\n" +"Gebruikers die geen beheerder zijn, ontvangen maar een deel van de " +"gedocumenteerde velden. De velden die enkel voor beheerders beschikbaar " +"zijn, zijn voor interne formulierconfiguratie. Het gaat om de velden:\n" "\n" "{admin_fields}" @@ -5738,19 +5985,27 @@ msgstr "Formulier definitie JSON schema weergeven" #: openforms/forms/api/viewsets.py:220 #, python-brace-format msgid "" -"List the active forms, including the pointers to the form steps. Form steps are included in order as they should appear.\n" +"List the active forms, including the pointers to the form steps. Form steps " +"are included in order as they should appear.\n" "\n" "**Warning: the response data depends on user permissions**\n" "\n" -"Non-staff users receive a subset of all the documented fields. The fields reserved for staff users are used for internal form configuration. These are: \n" +"Non-staff users receive a subset of all the documented fields. The fields " +"reserved for staff users are used for internal form configuration. These " +"are: \n" "\n" "{admin_fields}" msgstr "" -"Geef een lijst van actieve formulieren, inclusief verwijzingen naar de formulierstappen. De formulierstappen komen voor in de volgorde waarin ze zichtbaar moeten zijn.\n" +"Geef een lijst van actieve formulieren, inclusief verwijzingen naar de " +"formulierstappen. De formulierstappen komen voor in de volgorde waarin ze " +"zichtbaar moeten zijn.\n" "\n" -"**Waarschuwing: de gegevens in het antwoord zijn afhankelijk van je gebruikersrechten**\n" +"**Waarschuwing: de gegevens in het antwoord zijn afhankelijk van je " +"gebruikersrechten**\n" "\n" -"Gebruikers die geen beheerder zijn, ontvangen maar een deel van de gedocumenteerde velden. De velden die enkel voor beheerders beschikbaar zijn, zijn voor interne formulierconfiguratie. Het gaat om de velden:\n" +"Gebruikers die geen beheerder zijn, ontvangen maar een deel van de " +"gedocumenteerde velden. De velden die enkel voor beheerders beschikbaar " +"zijn, zijn voor interne formulierconfiguratie. Het gaat om de velden:\n" "\n" "{admin_fields}" @@ -5763,27 +6018,45 @@ msgstr "Formulier details weergeven" msgid "" "Retrieve the details/configuration of a particular form. \n" "\n" -"A form is a collection of form steps, where each form step points to a formio.js form definition. Multiple definitions are combined in logical steps to build a multi-step/page form for end-users to fill out. Form definitions can be (and are) re-used among different forms.\n" +"A form is a collection of form steps, where each form step points to a " +"formio.js form definition. Multiple definitions are combined in logical " +"steps to build a multi-step/page form for end-users to fill out. Form " +"definitions can be (and are) re-used among different forms.\n" "\n" "**Warning: the response data depends on user permissions**\n" "\n" -"Non-staff users receive a subset of all the documented fields. The fields reserved for staff users are used for internal form configuration. These are: \n" +"Non-staff users receive a subset of all the documented fields. The fields " +"reserved for staff users are used for internal form configuration. These " +"are: \n" "\n" "{admin_fields}\n" "\n" -"If the form doesn't have translations enabled, its default language is forced by setting a language cookie and reflected in the Content-Language response header. Normal HTTP Content Negotiation rules apply." +"If the form doesn't have translations enabled, its default language is " +"forced by setting a language cookie and reflected in the Content-Language " +"response header. Normal HTTP Content Negotiation rules apply." msgstr "" "Haal de details/configuratie op van een specifiek formulier.\n" "\n" -"Een formulier is een verzameling van één of meerdere formulierstappen waarbij elke stap een verwijzing heeft naar een formio.js formulierdefinitie. Meerdere definities samen vormen een logisch geheel van formulierstappen die de klant doorloopt tijdens het invullen van het formulier. Formulierdefinities kunnen herbruikbaar zijn tussen verschillende formulieren.\n" +"Een formulier is een verzameling van één of meerdere formulierstappen " +"waarbij elke stap een verwijzing heeft naar een formio.js " +"formulierdefinitie. Meerdere definities samen vormen een logisch geheel van " +"formulierstappen die de klant doorloopt tijdens het invullen van het " +"formulier. Formulierdefinities kunnen herbruikbaar zijn tussen verschillende " +"formulieren.\n" "\n" "**Waarschuwing: de response-data is afhankelijk van de gebruikersrechten**\n" "\n" -"Gebruikers die geen beheerder zijn, ontvangen maar een deel van de gedocumenteerde velden. De velden die enkel voor beheerders beschikbaar zijn, zijn voor interne formulierconfiguratie. Het gaat om de velden:\n" +"Gebruikers die geen beheerder zijn, ontvangen maar een deel van de " +"gedocumenteerde velden. De velden die enkel voor beheerders beschikbaar " +"zijn, zijn voor interne formulierconfiguratie. Het gaat om de velden:\n" "\n" "{admin_fields}\n" "\n" -"Wanneer meertaligheid niet ingeschakeld is voor het formulier, dan wordt de standaardtaal (`settings.LANGUAGE_CODE`) geforceerd gezet in een language cookie. De actieve taal wordt gecommuniceerd in de Content-Language response header. De gebruikelijke HTTP Content Negotiation principes zijn van toepassing." +"Wanneer meertaligheid niet ingeschakeld is voor het formulier, dan wordt de " +"standaardtaal (`settings.LANGUAGE_CODE`) geforceerd gezet in een language " +"cookie. De actieve taal wordt gecommuniceerd in de Content-Language response " +"header. De gebruikelijke HTTP Content Negotiation principes zijn van " +"toepassing." #: openforms/forms/api/viewsets.py:246 msgid "Create form" @@ -5828,8 +6101,8 @@ msgstr "Configureer logicaregels in bulk" #: openforms/forms/api/viewsets.py:283 msgid "" -"By sending a list of LogicRules to this endpoint, all the LogicRules related" -" to the form will be replaced with the data sent to the endpoint." +"By sending a list of LogicRules to this endpoint, all the LogicRules related " +"to the form will be replaced with the data sent to the endpoint." msgstr "" "Alle logicaregels van het formulier worden vervangen met de toegestuurde " "regels." @@ -5840,8 +6113,8 @@ msgstr "Configureer prijslogicaregels in bulk" #: openforms/forms/api/viewsets.py:300 msgid "" -"By sending a list of FormPriceLogic to this endpoint, all the FormPriceLogic" -" related to the form will be replaced with the data sent to the endpoint." +"By sending a list of FormPriceLogic to this endpoint, all the FormPriceLogic " +"related to the form will be replaced with the data sent to the endpoint." msgstr "" "Alle prijslogicaregels van het formulier worden vervangen met de " "toegestuurde regels." @@ -6045,8 +6318,8 @@ msgid "" "The {name} \"{obj}\" was changed successfully. You may add another {name} " "below." msgstr "" -"De {name} \"{obj}\" is met succes gewijzigd. U kunt hieronder nog een {name}" -" bewerken." +"De {name} \"{obj}\" is met succes gewijzigd. U kunt hieronder nog een {name} " +"bewerken." #: openforms/forms/messages.py:70 msgid "You may edit it again below." @@ -6085,8 +6358,8 @@ msgid "" "Apply a specific appearance configuration to the form. If left blank, then " "the globally configured default is applied." msgstr "" -"Pas een specifieke stijl toe op het formulier. Indien geen optie gekozen is," -" dan wordt de globale instelling toegepast." +"Pas een specifieke stijl toe op het formulier. Indien geen optie gekozen is, " +"dan wordt de globale instelling toegepast." #: openforms/forms/models/form.py:86 msgid "translation enabled" @@ -6164,7 +6437,6 @@ msgstr "" "getoond." #: openforms/forms/models/form.py:150 -#| msgid "House number of the address" msgid "show summary of the progress" msgstr "toon voortgangsoverzicht" @@ -6173,8 +6445,8 @@ msgid "" "Whether to display the short progress summary, indicating the current step " "number and total amount of steps." msgstr "" -"Vink aan om het korte voortgangsoverzicht weer te geven. Dit overzicht toont" -" de huidige stap en het totaal aantal stappen, typisch onder de " +"Vink aan om het korte voortgangsoverzicht weer te geven. Dit overzicht toont " +"de huidige stap en het totaal aantal stappen, typisch onder de " "formuliertitel." #: openforms/forms/models/form.py:158 @@ -6193,8 +6465,8 @@ msgstr "voeg de \"bevestigingspaginatekst\" toe in de bevestigings-PDF" #: openforms/forms/models/form.py:167 msgid "Display the instruction from the confirmation page in the PDF." msgstr "" -"Vink aan om de inhoud van het \"bevestigingspaginatekst\"-veld toe te voegen" -" aan de PDF met gegevens ter bevestiging." +"Vink aan om de inhoud van het \"bevestigingspaginatekst\"-veld toe te voegen " +"aan de PDF met gegevens ter bevestiging." #: openforms/forms/models/form.py:170 msgid "send confirmation email" @@ -6226,8 +6498,8 @@ msgid "" "The text that will be displayed in the overview page to go to the previous " "step. Leave blank to get value from global configuration." msgstr "" -"Het label van de knop op de overzichtspagina om naar de vorige stap te gaan." -" Laat leeg om de waarde van de algemene configuratie te gebruiken." +"Het label van de knop op de overzichtspagina om naar de vorige stap te gaan. " +"Laat leeg om de waarde van de algemene configuratie te gebruiken." #: openforms/forms/models/form.py:222 msgid "" @@ -6246,14 +6518,10 @@ msgstr "" "Laat leeg om de waarde van de algemene configuratie te gebruiken." #: openforms/forms/models/form.py:240 -#| msgid "Print this page" msgid "introduction page" msgstr "introductiepagina" #: openforms/forms/models/form.py:242 -#| msgid "" -#| "Content that will be shown on the start page of the form, below the title " -#| "and above the log in text." msgid "" "Content for the introduction page that leads to the start page of the form. " "Leave blank to disable the introduction page." @@ -6270,8 +6538,8 @@ msgid "" "Content that will be shown on the start page of the form, below the title " "and above the log in text." msgstr "" -"Inhoud die op de formulierstartpagina wordt getoond, onder de titel en boven" -" de startknop(pen)." +"Inhoud die op de formulierstartpagina wordt getoond, onder de titel en boven " +"de startknop(pen)." #: openforms/forms/models/form.py:260 msgid "maintenance mode" @@ -6375,53 +6643,53 @@ msgstr "{backend} (ongeldig)" msgid "registration backend(s)" msgstr "registratiebackend(s)" -#: openforms/forms/models/form.py:489 openforms/forms/models/form.py:503 +#: openforms/forms/models/form.py:493 openforms/forms/models/form.py:507 #: openforms/forms/models/form_definition.py:106 #: openforms/forms/models/form_definition.py:124 #, python-brace-format msgid "{name} (copy)" msgstr "{name} (kopie)" -#: openforms/forms/models/form.py:493 +#: openforms/forms/models/form.py:497 #: openforms/forms/models/form_definition.py:110 #, python-brace-format msgid "{slug}-copy" msgstr "{slug}-kopie" -#: openforms/forms/models/form.py:613 +#: openforms/forms/models/form.py:618 #, python-brace-format msgid "Restored form version {version} (from {created})." msgstr "Formulierversie {version} hersteld (van {created})." -#: openforms/forms/models/form.py:663 +#: openforms/forms/models/form.py:668 msgid "export content" msgstr "Exportinhoud" -#: openforms/forms/models/form.py:665 +#: openforms/forms/models/form.py:670 msgid "Zip file containing all the exported forms." msgstr "Het ZIP-bestand met daarin alle geëxporteerde formulieren." -#: openforms/forms/models/form.py:668 +#: openforms/forms/models/form.py:673 msgid "date time requested" msgstr "Moment van aanvraag" -#: openforms/forms/models/form.py:669 +#: openforms/forms/models/form.py:674 msgid "The date and time on which the bulk export was requested." msgstr "De datum en tijdstip waarop de bulk export aangevraagd is." -#: openforms/forms/models/form.py:675 +#: openforms/forms/models/form.py:680 msgid "The user that requested the download." msgstr "De gebruiker die de download heeft aangevraagd." -#: openforms/forms/models/form.py:682 +#: openforms/forms/models/form.py:687 msgid "forms export" msgstr "formulierenexport" -#: openforms/forms/models/form.py:683 +#: openforms/forms/models/form.py:688 msgid "forms exports" msgstr "Formulierexports" -#: openforms/forms/models/form.py:686 +#: openforms/forms/models/form.py:691 #, python-format msgid "Bulk export requested by %(username)s on %(datetime)s" msgstr "Bulk-export aangevraagd door %(username)s op %(datetime)s" @@ -6496,8 +6764,8 @@ msgid "" "The name of the submitted form. This is saved separately in case of form " "deletion." msgstr "" -"De naam van het ingestuurde formulier, apart opgeslagen in het geval dat het" -" formulier zelf verwijderd wordt." +"De naam van het ingestuurde formulier, apart opgeslagen in het geval dat het " +"formulier zelf verwijderd wordt." #: openforms/forms/models/form_statistics.py:22 msgid "Submission count" @@ -6539,8 +6807,8 @@ msgstr "Vorige stap-label" #: openforms/forms/models/form_step.py:43 msgid "" -"The text that will be displayed in the form step to go to the previous step." -" Leave blank to get value from global configuration." +"The text that will be displayed in the form step to go to the previous step. " +"Leave blank to get value from global configuration." msgstr "" "Het label van de knop om naar de vorige stap binnen het formulier te gaan. " "Laat leeg om de waarde van de algemene configuratie te gebruiken." @@ -6550,16 +6818,16 @@ msgid "" "The text that will be displayed in the form step to save the current " "information. Leave blank to get value from global configuration." msgstr "" -"Het label van de knop om het formulier tussentijds op te slaan. Laat leeg om" -" de waarde van de algemene configuratie te gebruiken." +"Het label van de knop om het formulier tussentijds op te slaan. Laat leeg om " +"de waarde van de algemene configuratie te gebruiken." #: openforms/forms/models/form_step.py:61 msgid "" "The text that will be displayed in the form step to go to the next step. " "Leave blank to get value from global configuration." msgstr "" -"Het label van de knop om naar de volgende stap binnen het formulier te gaan." -" Laat leeg om de waarde van de algemene configuratie te gebruiken." +"Het label van de knop om naar de volgende stap binnen het formulier te gaan. " +"Laat leeg om de waarde van de algemene configuratie te gebruiken." #: openforms/forms/models/form_step.py:66 msgid "is applicable" @@ -6609,8 +6877,7 @@ msgid "" "Where will the data that will be associated with this variable come from" msgstr "Oorsprong van de gegevens die in deze variabele opgeslagen worden" -#: openforms/forms/models/form_variable.py:134 -#: openforms/variables/models.py:91 +#: openforms/forms/models/form_variable.py:134 openforms/variables/models.py:91 msgid "service fetch configuration" msgstr "Servicebevragingconfiguratie" @@ -6643,8 +6910,8 @@ msgid "" "main identifier be used, or that related to the authorised person?" msgstr "" "Indien meerdere unieke identificaties beschikbaar zijn (bijvoorbeeld bij " -"eHerkenning Bewindvoering en DigiD Machtigen), welke prefill-gegevens moeten" -" dan opgehaald worden? Deze voor de machtiger of de gemachtigde?" +"eHerkenning Bewindvoering en DigiD Machtigen), welke prefill-gegevens moeten " +"dan opgehaald worden? Deze voor de machtiger of de gemachtigde?" #: openforms/forms/models/form_variable.py:165 msgid "data type" @@ -6778,8 +7045,7 @@ msgstr "Is geavanceerd" #: openforms/forms/models/logic.py:46 msgid "" -"Is this an advanced rule (the admin user manually wrote the trigger as " -"JSON)?" +"Is this an advanced rule (the admin user manually wrote the trigger as JSON)?" msgstr "" "Is dit een geavanceerde regel (de beheerder heeft de trigger handmatig als " "JSON geschreven)?" @@ -6803,8 +7069,8 @@ msgstr "" "JSON-logic expressie die evalueert als \"waar\" om deze prijs toe te passen." #: openforms/forms/models/pricing_logic.py:43 -#: openforms/products/models/product.py:26 -#: openforms/submissions/models/submission.py:136 +#: openforms/products/models/product.py:29 +#: openforms/submissions/models/submission.py:137 msgid "price" msgstr "prijs" @@ -6845,12 +7111,15 @@ msgstr "Formulieren" #: openforms/forms/templates/admin/forms/form/export.html:24 msgid "" "\n" -" Once your request has been processed, you will be sent an email (at the address configured in your admin\n" -" profile) containing a link where you can download a zip file with all the exported forms.\n" +" Once your request has been processed, you will be sent an email " +"(at the address configured in your admin\n" +" profile) containing a link where you can download a zip file " +"with all the exported forms.\n" " " msgstr "" "\n" -"Zodra uw verzoek verwerkt is, ontvangt u een e-mail met een link naar het ZIP-bestand dat alle geëxporteerde formulieren bevat." +"Zodra uw verzoek verwerkt is, ontvangt u een e-mail met een link naar het " +"ZIP-bestand dat alle geëxporteerde formulieren bevat." #: openforms/forms/templates/admin/forms/form/export.html:41 msgid "Export" @@ -6872,11 +7141,13 @@ msgstr "Hallo," #, python-format msgid "" "\n" -" Your zip file containing the exported forms is ready and can be downloaded at the following URL:\n" +" Your zip file containing the exported forms is ready and can be " +"downloaded at the following URL:\n" " %(download_url)s\n" msgstr "" "\n" -"Uw ZIP-bestand met formulier-exports is klaar. U kunt deze downloaden op de volgende URL: %(download_url)s.\n" +"Uw ZIP-bestand met formulier-exports is klaar. U kunt deze downloaden op de " +"volgende URL: %(download_url)s.\n" #: openforms/forms/templates/admin/forms/formsexport/email_content.html:13 msgid "Best wishes," @@ -6946,6 +7217,30 @@ msgstr "\"{duplicate_key}\" (in {paths})" msgid "Detected duplicate keys in configuration: {errors}" msgstr "Er zijn dubbele sleutels gedetecteerd in de configuratie: {errors}." +#: openforms/forms/validators.py:191 +msgid "" +"Currently only a single product price component is allowed be added to a " +"form." +msgstr "" + +#: openforms/forms/validators.py:198 +msgid "No product has been selected for productPrice component" +msgstr "" + +#: openforms/forms/validators.py:204 +msgid "" +"Product selected for productPrice component does not have a price from Open " +"Producten" +msgstr "" + +#: openforms/forms/validators.py:210 +msgid "productPrice component is not currently not required" +msgstr "" + +#: openforms/forms/validators.py:215 +msgid "Form has product with price options but not a productPrice component" +msgstr "" + #: openforms/logging/apps.py:7 msgid "Logging" msgstr "Logboek" @@ -7128,8 +7423,8 @@ msgstr "%(lead)s: bulk-export bestand gedownload." #: openforms/logging/templates/logging/events/email_status_change.txt:2 #, python-format msgid "" -"%(lead)s: The status of the email being sent for the event \"%(event)s\" has" -" changed. It is now: \"%(status)s\"" +"%(lead)s: The status of the email being sent for the event \"%(event)s\" has " +"changed. It is now: \"%(status)s\"" msgstr "" "%(lead)s: De e-mailverzendstatus voor het event \"%(event)s\" is gewijzigd " "naar \"%(status)s\"." @@ -7178,8 +7473,8 @@ msgid "" "%(lead)s: User %(user)s viewed outgoing request log %(method)s %(url)s in " "the admin" msgstr "" -"%(lead)s: Gebruiker %(user)s bekeek de log voor uitgaande verzoek %(method)s" -" %(url)s in de admin." +"%(lead)s: Gebruiker %(user)s bekeek de log voor uitgaande verzoek %(method)s " +"%(url)s in de admin." #: openforms/logging/templates/logging/events/payment_flow_failure.txt:2 #, python-format @@ -7266,8 +7561,7 @@ msgstr "%(lead)s: Prefillplugin %(plugin)s gaf lege waarden terug." #: openforms/logging/templates/logging/events/prefill_retrieve_failure.txt:2 #, python-format msgid "" -"%(lead)s: Prefill plugin %(plugin)s reported: Failed to retrieve " -"information." +"%(lead)s: Prefill plugin %(plugin)s reported: Failed to retrieve information." msgstr "" "%(lead)s: Prefillplugin %(plugin)s meldt: Informatie kon niet worden " "opgehaald." @@ -7278,8 +7572,8 @@ msgid "" "%(lead)s: Prefill plugin %(plugin)s reported: Successfully retrieved " "information to prefill fields: %(fields)s" msgstr "" -"%(lead)s: Prefillplugin %(plugin)s meldt: Informatie met succes opgehaald om" -" velden te prefillen: %(fields)s." +"%(lead)s: Prefillplugin %(plugin)s meldt: Informatie met succes opgehaald om " +"velden te prefillen: %(fields)s." #: openforms/logging/templates/logging/events/registration_attempts_limited.txt:2 #, python-format @@ -7295,8 +7589,7 @@ msgstr "%(lead)s: Registratie debuggegevens: %(data)s" #: openforms/logging/templates/logging/events/registration_failure.txt:2 #, python-format -msgid "" -"%(lead)s: Registration plugin %(plugin)s reported: Registration failed." +msgid "%(lead)s: Registration plugin %(plugin)s reported: Registration failed." msgstr "%(lead)s: Registratieplugin %(plugin)s meldt: Registratie mislukt." #: openforms/logging/templates/logging/events/registration_payment_update_failure.txt:2 @@ -7456,14 +7749,12 @@ msgstr "De naam om weer te geven in de domeinwisselaar" #: openforms/multidomain/models.py:14 msgid "" "The absolute URL to redirect to. Typically this starts the login process on " -"the other domain. For example: https://open-" -"forms.example.com/oidc/authenticate/ or https://open-" -"forms.example.com/admin/login/" +"the other domain. For example: https://open-forms.example.com/oidc/" +"authenticate/ or https://open-forms.example.com/admin/login/" msgstr "" "De volledige URL om naar om te leiden. Deze URL start typisch het login " -"proces op het doeldomein. Bijvoorbeeld: https://open-" -"forms.example.com/oidc/authenticate/ of https://open-" -"forms.example.com/admin/login/" +"proces op het doeldomein. Bijvoorbeeld: https://open-forms.example.com/oidc/" +"authenticate/ of https://open-forms.example.com/admin/login/" #: openforms/multidomain/models.py:20 msgid "current" @@ -7471,11 +7762,11 @@ msgstr "huidige" #: openforms/multidomain/models.py:22 msgid "" -"Select this to show this domain as the current domain. The current domain is" -" selected by default and will not trigger a redirect." +"Select this to show this domain as the current domain. The current domain is " +"selected by default and will not trigger a redirect." msgstr "" -"Selecteer deze optie om dit domein weer te geven als het huidige domein. Het" -" huidige domein is standaard geselecteerd in de domeinwisselaar." +"Selecteer deze optie om dit domein weer te geven als het huidige domein. Het " +"huidige domein is standaard geselecteerd in de domeinwisselaar." #: openforms/multidomain/models.py:29 msgid "domains" @@ -7612,62 +7903,60 @@ msgstr "Ogone legacy" #, python-brace-format msgid "" "[Open Forms] {form_name} - submission payment received {public_reference}" -msgstr "" -"[Open Formulieren] {form_name} - betaling ontvangen {public_reference}" +msgstr "[Open Formulieren] {form_name} - betaling ontvangen {public_reference}" -#: openforms/payments/models.py:93 +#: openforms/payments/models.py:101 msgid "Payment backend" msgstr "Betaalprovider backend" -#: openforms/payments/models.py:95 +#: openforms/payments/models.py:103 msgid "Payment options" msgstr "Betaalopties" -#: openforms/payments/models.py:98 +#: openforms/payments/models.py:106 msgid "Copy of payment options at time of initializing payment." msgstr "" "Kopie van betalingsopties op het moment van initialisatie van de betaling." -#: openforms/payments/models.py:102 +#: openforms/payments/models.py:110 msgid "Order ID" msgstr "Bestelling ID" -#: openforms/payments/models.py:106 +#: openforms/payments/models.py:114 msgid "" "The order ID to be sent to the payment provider. This ID is built by " -"concatenating an optional global prefix, the submission public reference and" -" a unique incrementing ID." +"concatenating an optional global prefix, the submission public reference and " +"a unique incrementing ID." msgstr "" "Het ordernummer wat naar de betaalprovider gestuurd wordt. Dit nummer wordt " "opgebouwd met een (optionele) globale prefix, publieke " "inzendingsreferentienummer en een uniek nummer." -#: openforms/payments/models.py:112 -#: openforms/submissions/api/serializers.py:99 +#: openforms/payments/models.py:120 openforms/submissions/api/serializers.py:99 msgid "payment amount" msgstr "bedrag" -#: openforms/payments/models.py:116 +#: openforms/payments/models.py:124 msgid "Total payment amount." msgstr "Totaal bedrag." -#: openforms/payments/models.py:119 +#: openforms/payments/models.py:127 msgid "payment status" msgstr "betaalstatus" -#: openforms/payments/models.py:123 +#: openforms/payments/models.py:131 msgid "Status of the payment process in the configured backend." msgstr "Status van het betalingsproces in de geconfigureerde back-end." -#: openforms/payments/models.py:126 +#: openforms/payments/models.py:134 msgid "provider payment ID" msgstr "betaal-ID bij de provider" -#: openforms/payments/models.py:131 +#: openforms/payments/models.py:139 msgid "The ID assigned to the payment by the payment provider." msgstr "Het unieke ID van de betaling bij de betaalprovider." -#: openforms/payments/models.py:137 openforms/payments/models.py:138 +#: openforms/payments/models.py:145 openforms/payments/models.py:146 msgid "submission payment details" msgstr "betalingsdetails" @@ -7706,9 +7995,11 @@ msgstr "Start het betaalproces" #: openforms/payments/views.py:45 msgid "" -"This endpoint provides information to start the payment flow for a submission.\n" +"This endpoint provides information to start the payment flow for a " +"submission.\n" "\n" -"Due to support for legacy platforms this view doesn't redirect but provides information for the frontend to be used client side.\n" +"Due to support for legacy platforms this view doesn't redirect but provides " +"information for the frontend to be used client side.\n" "\n" "Various validations are performed:\n" "* the form and submission must require payment\n" @@ -7717,11 +8008,16 @@ msgid "" "* the `next` parameter must be present\n" "* the `next` parameter must match the CORS policy\n" "\n" -"The HTTP 200 response contains the information to start the flow with the payment provider. Depending on the 'type', send a `GET` or `POST` request with the `data` as 'Form Data' to the given 'url'." +"The HTTP 200 response contains the information to start the flow with the " +"payment provider. Depending on the 'type', send a `GET` or `POST` request " +"with the `data` as 'Form Data' to the given 'url'." msgstr "" -"Dit endpoint geeft informatie om het betaalproces te starten voor een inzending.\n" +"Dit endpoint geeft informatie om het betaalproces te starten voor een " +"inzending.\n" "\n" -"Om legacy platformen te ondersteunen kan dit endpoint niet doorverwijzen maar geeft doorverwijs informatie terug aan de frontend die het verder moet afhandelen.\n" +"Om legacy platformen te ondersteunen kan dit endpoint niet doorverwijzen " +"maar geeft doorverwijs informatie terug aan de frontend die het verder moet " +"afhandelen.\n" "\n" "Diverse validaties worden uitgevoerd:\n" "* het formulier vereist betaling\n" @@ -7729,7 +8025,9 @@ msgstr "" "* de `next` parameter moet aanwezig zijn\n" "* de `next` parameter moet overeenkomen met het CORS-beleid\n" "\n" -"Het HTTP 200 antwoord bevat informatie om het betaalproces te starten bij de betaalprovider. Afhankelijk van het `type`, een `POST` of `GET` is wordt verstuurd met de `data` als 'Form Data' naar de opgegeven 'url'." +"Het HTTP 200 antwoord bevat informatie om het betaalproces te starten bij de " +"betaalprovider. Afhankelijk van het `type`, een `POST` of `GET` is wordt " +"verstuurd met de `data` als 'Form Data' naar de opgegeven 'url'." #: openforms/payments/views.py:63 msgid "UUID identifying the submission." @@ -7757,9 +8055,11 @@ msgstr "Aanroeppunt van het externe betaalprovider proces" #: openforms/payments/views.py:140 msgid "" -"Payment plugins call this endpoint in the return step of the payment flow. Depending on the plugin, either `GET` or `POST` is allowed as HTTP method.\n" +"Payment plugins call this endpoint in the return step of the payment flow. " +"Depending on the plugin, either `GET` or `POST` is allowed as HTTP method.\n" "\n" -"Typically payment plugins will redirect again to the URL where the SDK is embedded.\n" +"Typically payment plugins will redirect again to the URL where the SDK is " +"embedded.\n" "\n" "Various validations are performed:\n" "* the form and submission must require payment\n" @@ -7767,7 +8067,9 @@ msgid "" "* payment is required and configured on the form\n" "* the redirect target must match the CORS policy" msgstr "" -"Betaalproviderplugins roepen dit endpoint aan zodra het externe betaalproces is afgerond. Afhankelijk van de plugin, een `POST` of `GET` is toegestaan als HTTP-methode.\n" +"Betaalproviderplugins roepen dit endpoint aan zodra het externe betaalproces " +"is afgerond. Afhankelijk van de plugin, een `POST` of `GET` is toegestaan " +"als HTTP-methode.\n" "\n" "Betaalproviderplugins zullen typisch een redirect uitvoeren naar de SDK.\n" "\n" @@ -7802,16 +8104,21 @@ msgstr "Webhook-handler voor externe betalingsproces" #: openforms/payments/views.py:274 msgid "" -"This endpoint is used for server-to-server calls. Depending on the plugin, either `GET` or `POST` is allowed as HTTP method.\n" +"This endpoint is used for server-to-server calls. Depending on the plugin, " +"either `GET` or `POST` is allowed as HTTP method.\n" "\n" "Various validations are performed:\n" "* the `plugin_id` is configured on the form\n" "* payment is required and configured on the form" msgstr "" -"Authenticatieplugins roepen dit endpoint aan zodra het externe login proces is afgerond. Afhankelijk van de plugin, een `POST` of `GET` is toegestaan als HTTP-methode.\n" +"Authenticatieplugins roepen dit endpoint aan zodra het externe login proces " +"is afgerond. Afhankelijk van de plugin, een `POST` of `GET` is toegestaan " +"als HTTP-methode.\n" "\n" "\n" -"Dit endpoint wordt gebruikt voor server-naar-server communicatie. Afhankelijk van de plugin, een `POST` of `GET` is toegestaan als HTTP-methode.\n" +"Dit endpoint wordt gebruikt voor server-naar-server communicatie. " +"Afhankelijk van de plugin, een `POST` of `GET` is toegestaan als HTTP-" +"methode.\n" "\n" "Diverse validaties worden uitgevoerd:\n" "* de `plugin_id` moet geconfigureerd zijn op het formulier\n" @@ -7850,22 +8157,33 @@ msgid "" msgstr "" "Het authenticatie attribuut dat verplicht is voor deze plugin om te zoeken." -#: openforms/prefill/api/serializers.py:27 +#: openforms/prefill/api/serializers.py:23 +#, fuzzy +#| msgid "Expoints configuration identifier" +msgid "Extra configuration context" +msgstr "Expoints configuratie-ID" + +#: openforms/prefill/api/serializers.py:25 +msgid "" +"Extra information for option configuration that is specific to the plugin " +"type" +msgstr "" + +#: openforms/prefill/api/serializers.py:34 #: openforms/validations/api/serializers.py:23 msgid "Form.io component type" msgstr "Form.io componenttype" -#: openforms/prefill/api/serializers.py:28 +#: openforms/prefill/api/serializers.py:35 msgid "Only return plugins applicable for the specified component type." -msgstr "" -"Geef enkel plugins die relevant zijn voor het opgegeven componenttype." +msgstr "Geef enkel plugins die relevant zijn voor het opgegeven componenttype." -#: openforms/prefill/api/serializers.py:61 +#: openforms/prefill/api/serializers.py:68 #: openforms/registrations/api/serializers.py:31 msgid "The unique attribute identifier" msgstr "De unieke attribuut identificatie" -#: openforms/prefill/api/serializers.py:65 +#: openforms/prefill/api/serializers.py:72 #: openforms/registrations/api/serializers.py:35 msgid "The human-readable name for an attribute." msgstr "De eenvoudige naam van het attribuut." @@ -8659,23 +8977,15 @@ msgstr "Overlijden > Datum > Type" msgid "Overlijden > Datum > Onbekend" msgstr "Overlijden > Datum > Onbekend" -#: openforms/prefill/contrib/haalcentraal_brp/plugin.py:48 +#: openforms/prefill/contrib/haalcentraal_brp/plugin.py:47 msgid "Haal Centraal: BRP Personen Bevragen" msgstr "Haal Centraal: BRP Personen Bevragen" -#: openforms/prefill/contrib/haalcentraal_brp/plugin.py:191 +#: openforms/prefill/contrib/haalcentraal_brp/plugin.py:184 #: openforms/prefill/contrib/stufbg/plugin.py:219 msgid "Service not selected" msgstr "Service is niet geselecteerd." -#: openforms/prefill/contrib/haalcentraal_brp/plugin.py:197 -#: openforms/prefill/contrib/kvk/plugin.py:119 -#: openforms/prefill/contrib/stufbg/plugin.py:222 -#: openforms/registrations/contrib/objects_api/checks.py:74 -#, python-brace-format -msgid "Client error: {exception}" -msgstr "Client fout: {exception}" - #: openforms/prefill/contrib/kvk/apps.py:8 msgid "KvK prefill plugin" msgstr "KvK prefillplugin" @@ -8694,6 +9004,60 @@ msgstr "Configuratiefout: {exception}" msgid "Response not a dictionary" msgstr "Antwoord is geen object" +#: openforms/prefill/contrib/objects_api/api/serializers.py:8 +#: openforms/registrations/contrib/objects_api/api/serializers.py:10 +#: openforms/registrations/contrib/objects_api/config.py:54 +msgid "Segment of a JSON path" +msgstr "Segment van een JSON-pad" + +#: openforms/prefill/contrib/objects_api/api/serializers.py:9 +#: openforms/registrations/contrib/objects_api/api/serializers.py:11 +#: openforms/registrations/contrib/objects_api/config.py:55 +msgid "target path" +msgstr "bestemmingspad" + +#: openforms/prefill/contrib/objects_api/api/serializers.py:11 +#: openforms/registrations/contrib/objects_api/api/serializers.py:13 +#: openforms/registrations/contrib/objects_api/config.py:57 +msgid "" +"Representation of the JSON target location as a list of string segments." +msgstr "" +"Weergave van de JSON-schema bestemmingspaden als lijst van individuele " +"segmenten." + +#: openforms/prefill/contrib/objects_api/api/serializers.py:15 +#: openforms/registrations/contrib/objects_api/api/serializers.py:21 +msgid "json schema" +msgstr "JSON-schema" + +#: openforms/prefill/contrib/objects_api/api/serializers.py:16 +#: openforms/registrations/contrib/objects_api/api/serializers.py:22 +msgid "Corresponding (sub) JSON Schema of the target path." +msgstr "Stukje JSON-schema voor dit specifieke bestemmingspad." + +#: openforms/prefill/contrib/objects_api/api/views.py:28 +#, fuzzy +#| msgid "List available attributes" +msgid "List available attributes for Objects API" +msgstr "Lijst van beschikbare attributen" + +#: openforms/prefill/contrib/objects_api/apps.py:8 +#, fuzzy +#| msgid "Objects API plugin" +msgid "Objects API prefill plugin" +msgstr "Objecten API plugin" + +#: openforms/prefill/contrib/objects_api/plugin.py:29 +#: openforms/registrations/contrib/objects_api/plugin.py:119 +#: openforms/registrations/contrib/zgw_apis/plugin.py:539 +msgid "Manage API groups" +msgstr "API-groepen beheren" + +#: openforms/prefill/contrib/objects_api/plugin.py:35 +#: openforms/registrations/contrib/objects_api/plugin.py:123 +msgid "Defaults configuration" +msgstr "Standaardinstellingen" + #: openforms/prefill/contrib/stufbg/apps.py:8 msgid "StUF-BG prefill plugin" msgstr "StUF-BG prefillplugin" @@ -8754,22 +9118,22 @@ msgid "" "The co-sign component requires the '{field_label}' ({config_verbose_name}) " "to be configured." msgstr "" -"Het mede-ondertekencomponent vereist de configuratie van '{field_label}' " -"({config_verbose_name})." +"Het mede-ondertekencomponent vereist de configuratie van " +"'{field_label}' ({config_verbose_name})." #: openforms/products/api/viewsets.py:15 msgid "Retrieve details of a single product" msgstr "Product details weergeven" -#: openforms/products/models/product.py:21 +#: openforms/products/models/product.py:24 msgid "Globally unique identifier" msgstr "Unieke identificatie" -#: openforms/products/models/product.py:34 +#: openforms/products/models/product.py:38 msgid "information" msgstr "informatie" -#: openforms/products/models/product.py:37 +#: openforms/products/models/product.py:41 msgid "" "Information text to be displayed in the confirmation page and confirmation " "email." @@ -8777,7 +9141,7 @@ msgstr "" "Informatietekst die moet worden weergegeven op de bevestigingspagina en " "bevestigingsmail. " -#: openforms/products/models/product.py:43 +#: openforms/products/models/product.py:47 msgid "Product" msgstr "Product" @@ -8791,8 +9155,7 @@ msgstr "Lijst van beschikbare registratie attributen" #: openforms/registrations/contrib/camunda/api.py:20 msgid "The process definition identifier, used to group different versions." -msgstr "" -"De procesdefinitie-ID, gebruikt om verschillende versies te groeperen." +msgstr "De procesdefinitie-ID, gebruikt om verschillende versies te groeperen." #: openforms/registrations/contrib/camunda/api.py:24 msgid "The human-readable name of the process definition." @@ -8953,8 +9316,8 @@ msgstr "De lijst met geneste variabeledefinities" #: openforms/registrations/contrib/camunda/serializers.py:168 msgid "" -"Name of the variable in the Camunda process instance. For complex variables," -" the name must be supplied." +"Name of the variable in the Camunda process instance. For complex variables, " +"the name must be supplied." msgstr "" "Naam van de variabele in het Camunda proces. Voor complexe variabelen moet " "een naam opgegeven zin." @@ -8970,8 +9333,8 @@ msgstr "De procesdefinitie waarvoor een procesinstantie moet worden gestart." #: openforms/registrations/contrib/camunda/serializers.py:193 msgid "" -"Which version of the process definition to start. The latest version is used" -" if not specified." +"Which version of the process definition to start. The latest version is used " +"if not specified." msgstr "" "Welke versie van de procesdefinitie moet worden gestart. Indien niet " "opgegeven, wordt de nieuwste versie gebruikt." @@ -8987,8 +9350,8 @@ msgstr "Complexe procesvariabelen" #: openforms/registrations/contrib/camunda/serializers.py:240 #, python-brace-format msgid "" -"The variable name(s) '{var_names}' occur(s) multiple times. Hint: check that" -" they are not specified in both the process variables and complex process " +"The variable name(s) '{var_names}' occur(s) multiple times. Hint: check that " +"they are not specified in both the process variables and complex process " "variables." msgstr "" "De variabele naam(en) '{var_names}' komen meerdere keren voor. Tip: " @@ -9055,8 +9418,8 @@ msgid "" msgstr "" "Vink aan om gebruikersbestanden als bijlage aan de registratiemail toe te " "voegen. Als een waarde gezet is, dan heeft deze hogere prioriteit dan de " -"globale configuratie. Formulierbeheerders moeten ervoor zorgen dat de totale" -" maximale bestandsgrootte onder de maximale e-mailbestandsgrootte blijft." +"globale configuratie. Formulierbeheerders moeten ervoor zorgen dat de totale " +"maximale bestandsgrootte onder de maximale e-mailbestandsgrootte blijft." #: openforms/registrations/contrib/email/config.py:46 msgid "email subject" @@ -9241,13 +9604,13 @@ msgstr "maplocatie" #: openforms/registrations/contrib/microsoft_graph/config.py:27 msgid "" -"The path of the folder where folders containing Open-Forms related documents" -" will be created. You can use the expressions {{ year }}, {{ month }} and {{" -" day }}. It should be an absolute path - i.e. it should start with /" +"The path of the folder where folders containing Open-Forms related documents " +"will be created. You can use the expressions {{ year }}, {{ month }} and " +"{{ day }}. It should be an absolute path - i.e. it should start with /" msgstr "" "Het pad naar de map waar mappen voor documenten van Open Formulieren " -"aangemaakt worden. Je kan de expressies {{ year }}, {{ month }} en {{ day }}" -" gebruiken. Dit moet een absoluut pad zijn (dus beginnen met een /)." +"aangemaakt worden. Je kan de expressies {{ year }}, {{ month }} en {{ day }} " +"gebruiken. Dit moet een absoluut pad zijn (dus beginnen met een /)." #: openforms/registrations/contrib/microsoft_graph/config.py:35 msgid "drive ID" @@ -9282,159 +9645,53 @@ msgstr "Kan geen verbinding maken: {exception}" msgid "Could not access root folder: {exception}" msgstr "Kan geen toegang verkrijgen tot de hoofdmap: {exception}" -#: openforms/registrations/contrib/objects_api/api/filters.py:20 -msgid "" -"The primary key of the Objects API group to use. The informatieobjecttypen " -"from the Catalogi API in this group will be returned." -msgstr "" -"De primaire sleutel van de gewenste Objecten API-groep. De " -"informatieobjecttypen worden uit de Catalogi API van deze groep opgehaald." - -#: openforms/registrations/contrib/objects_api/api/serializers.py:14 -#: openforms/registrations/contrib/objects_api/api/views.py:36 -#: openforms/registrations/contrib/objects_api/config.py:70 -msgid "Which Objects API group to use." -msgstr "De gewenste Objecten API-groep." - -#: openforms/registrations/contrib/objects_api/api/serializers.py:22 -msgid "" -"URL reference to this object. This is the unique identification and location" -" of this object." -msgstr "" -"URL-referentie naar dit object. Dit is de unieke identificatie en vindplaats" -" van het object." - -#: openforms/registrations/contrib/objects_api/api/serializers.py:25 -msgid "Unique identifier (UUID4)." -msgstr "Unieke identificatie (UUID4)." - -#: openforms/registrations/contrib/objects_api/api/serializers.py:26 -msgid "Name of the object type." -msgstr "Naam van het objecttype." - -#: openforms/registrations/contrib/objects_api/api/serializers.py:27 -msgid "Plural name of the object type." -msgstr "Naam (meervoud) van het objecttype." - -#: openforms/registrations/contrib/objects_api/api/serializers.py:29 -msgid "Confidential level of the object type." -msgstr "Vertrouwelijkheidsniveau van het objecttype." - -#: openforms/registrations/contrib/objects_api/api/serializers.py:35 -msgid "Integer version of the Objecttype." -msgstr "Versie (getal) van het objecttype." - -#: openforms/registrations/contrib/objects_api/api/serializers.py:37 -msgid "Status of the object type version" -msgstr "Publicatiestatus van de objecttypeversie." - -#: openforms/registrations/contrib/objects_api/api/serializers.py:42 -#: openforms/registrations/contrib/objects_api/config.py:53 -msgid "Segment of a JSON path" -msgstr "Segment van een JSON-pad" - -#: openforms/registrations/contrib/objects_api/api/serializers.py:43 -#: openforms/registrations/contrib/objects_api/config.py:54 -msgid "target path" -msgstr "bestemmingspad" - -#: openforms/registrations/contrib/objects_api/api/serializers.py:45 -#: openforms/registrations/contrib/objects_api/config.py:56 -msgid "" -"Representation of the JSON target location as a list of string segments." -msgstr "" -"Weergave van de JSON-schema bestemmingspaden als lijst van individuele " -"segmenten." - -#: openforms/registrations/contrib/objects_api/api/serializers.py:49 +#: openforms/registrations/contrib/objects_api/api/serializers.py:17 msgid "required" msgstr "verplicht" -#: openforms/registrations/contrib/objects_api/api/serializers.py:50 +#: openforms/registrations/contrib/objects_api/api/serializers.py:18 msgid "Wether the path is marked as required in the JSON Schema." -msgstr "Geeft aan of het pad als \"verplicht\" gemarkeerd is in het JSON-schema." - -#: openforms/registrations/contrib/objects_api/api/serializers.py:53 -msgid "json schema" -msgstr "JSON-schema" - -#: openforms/registrations/contrib/objects_api/api/serializers.py:54 -msgid "Corresponding (sub) JSON Schema of the target path." -msgstr "Stukje JSON-schema voor dit specifieke bestemmingspad." +msgstr "" +"Geeft aan of het pad als \"verplicht\" gemarkeerd is in het JSON-schema." -#: openforms/registrations/contrib/objects_api/api/serializers.py:60 +#: openforms/registrations/contrib/objects_api/api/serializers.py:28 msgid "objecttype uuid" msgstr "UUID objecttype" -#: openforms/registrations/contrib/objects_api/api/serializers.py:63 -#: openforms/registrations/contrib/objects_api/config.py:100 +#: openforms/registrations/contrib/objects_api/api/serializers.py:31 +#: openforms/registrations/contrib/objects_api/config.py:101 msgid "objecttype version" msgstr "objecttype versie" -#: openforms/registrations/contrib/objects_api/api/serializers.py:63 +#: openforms/registrations/contrib/objects_api/api/serializers.py:31 msgid "The version of the objecttype." msgstr "De versie van het objecttype." -#: openforms/registrations/contrib/objects_api/api/serializers.py:66 +#: openforms/registrations/contrib/objects_api/api/serializers.py:34 msgid "variable json schema" msgstr "JSON-schema van variabele" -#: openforms/registrations/contrib/objects_api/api/serializers.py:67 +#: openforms/registrations/contrib/objects_api/api/serializers.py:35 msgid "The JSON Schema of the form variable." msgstr "De JSON-schemadefinitie van de formuliervariabele." -#: openforms/registrations/contrib/objects_api/api/views.py:135 -msgid "List available Catalogi from the provided Objects API group" -msgstr "Lijst van beschikbare catalogi (Objecten API)" - -#: openforms/registrations/contrib/objects_api/api/views.py:146 -msgid "" -"List the available InformatieObjectTypen from the provided Objects API group" -msgstr "Lijst van beschikbare documenttypen (Objecten API)" - #: openforms/registrations/contrib/objects_api/apps.py:8 msgid "Objects API plugin" msgstr "Objecten API plugin" -#: openforms/registrations/contrib/objects_api/checks.py:24 -#, python-brace-format -msgid "" -"Missing Objects API credentials for Objects API group {objects_api_group}" -msgstr "" -"Ontbrekende Objecten API authenticatiegegevens voor de Objecten API-groep " -"{objects_api_group}" - -#: openforms/registrations/contrib/objects_api/checks.py:36 -#, python-brace-format -msgid "" -"Missing Objecttypes API credentials for Objects API group " -"{objects_api_group}" -msgstr "" -"Ontbrekende Objecttypen API authenticatiegegevens voor de Objecten API-groep" -" {objects_api_group}" - -#: openforms/registrations/contrib/objects_api/checks.py:69 -#, python-brace-format -msgid "" -"{api_name} endpoint is not configured for Objects API group " -"{objects_api_group}." -msgstr "" -"{api_name} endpoint is niet geconfigureerd voor de Objecten API-groep " -"{objects_api_group}." - -#: openforms/registrations/contrib/objects_api/config.py:28 +#: openforms/registrations/contrib/objects_api/config.py:29 msgid "v1, template based" msgstr "v1, op basis van sjabloon" -#: openforms/registrations/contrib/objects_api/config.py:29 +#: openforms/registrations/contrib/objects_api/config.py:30 msgid "v2, variables mapping" msgstr "v2, variabelekoppelingen" -#: openforms/registrations/contrib/objects_api/config.py:47 +#: openforms/registrations/contrib/objects_api/config.py:48 msgid "variable key" msgstr "sleutel variabele" -#: openforms/registrations/contrib/objects_api/config.py:49 +#: openforms/registrations/contrib/objects_api/config.py:50 msgid "" "The 'dotted' path to a form variable key. The format should comply to how " "Formio handles nested component keys." @@ -9442,12 +9699,12 @@ msgstr "" "De sleutel van de formuliervariabele. Het formaat moet overeenkomen met hoe " "Formio omgaat met geneste paden." -#: openforms/registrations/contrib/objects_api/config.py:73 +#: openforms/registrations/contrib/objects_api/config.py:74 #: openforms/registrations/contrib/zgw_apis/options.py:57 msgid "catalogue" msgstr "catalogus" -#: openforms/registrations/contrib/objects_api/config.py:76 +#: openforms/registrations/contrib/objects_api/config.py:77 msgid "" "The catalogue in the catalogi API from the selected API group. This " "overrides the catalogue specified in the API group, if it's set. When " @@ -9458,41 +9715,41 @@ msgstr "" "catalogus hier instelt, dan worden eventuele ingestelde documenttypen in de " "API-groep genegeerd." -#: openforms/registrations/contrib/objects_api/config.py:82 +#: openforms/registrations/contrib/objects_api/config.py:83 msgid "options version" msgstr "configuratieversie" -#: openforms/registrations/contrib/objects_api/config.py:84 +#: openforms/registrations/contrib/objects_api/config.py:85 msgid "" "The schema version of the objects API Options. Not to be confused with the " "objecttype version." msgstr "" -"De versie van de optiesconfiguratie. Niet te verwarren met de versie van het" -" objecttype." +"De versie van de optiesconfiguratie. Niet te verwarren met de versie van het " +"objecttype." -#: openforms/registrations/contrib/objects_api/config.py:90 +#: openforms/registrations/contrib/objects_api/config.py:91 msgid "objecttype" msgstr "objecttype" -#: openforms/registrations/contrib/objects_api/config.py:92 +#: openforms/registrations/contrib/objects_api/config.py:93 msgid "" "UUID of the ProductAanvraag objecttype in the Objecttypes API. The " "objecttype should have the following three attributes: 1) submission_id; 2) " "type (the type of productaanvraag); 3) data (the submitted form data)" msgstr "" -"UUID van het OBJECTTYPE voor de 'ProductAanvraag' in de Objecttypen API. Het" -" objecttype moet de volgende attributen bevatten: 1) submission_id; 2) type " +"UUID van het OBJECTTYPE voor de 'ProductAanvraag' in de Objecttypen API. Het " +"objecttype moet de volgende attributen bevatten: 1) submission_id; 2) type " "(het type van de 'ProductAanvraag'); 3) data (ingezonden formuliergegevens)" -#: openforms/registrations/contrib/objects_api/config.py:101 +#: openforms/registrations/contrib/objects_api/config.py:102 msgid "Version of the objecttype in the Objecttypes API." msgstr "Versie van het objecttype in de Objecttypen API." -#: openforms/registrations/contrib/objects_api/config.py:104 +#: openforms/registrations/contrib/objects_api/config.py:105 msgid "Update existing object" msgstr "Bestaand object bijwerken" -#: openforms/registrations/contrib/objects_api/config.py:106 +#: openforms/registrations/contrib/objects_api/config.py:107 msgid "" "Indicates whether the existing object should be updated (if it exists), " "instead of creating a new one." @@ -9500,23 +9757,23 @@ msgstr "" "Bepaalt of een bestaand object (wanneer dit al bestaat) moet bijgewerkt " "worden in plaats van een nieuw object aan te maken." -#: openforms/registrations/contrib/objects_api/config.py:111 +#: openforms/registrations/contrib/objects_api/config.py:112 msgid "Upload submission CSV" msgstr "CSV bestand inzending uploaden" -#: openforms/registrations/contrib/objects_api/config.py:113 +#: openforms/registrations/contrib/objects_api/config.py:114 msgid "" -"Indicates whether or not the submission CSV should be uploaded as a Document" -" in Documenten API and attached to the ProductAanvraag." +"Indicates whether or not the submission CSV should be uploaded as a Document " +"in Documenten API and attached to the ProductAanvraag." msgstr "" "Geeft aan of de inzendingsgegevens als CSV in de Documenten API moet " "geüpload worden en toegevoegd aan de ProductAanvraag." -#: openforms/registrations/contrib/objects_api/config.py:121 +#: openforms/registrations/contrib/objects_api/config.py:122 msgid "RSIN of organization, which creates the INFORMATIEOBJECT." msgstr "RSIN van de organisatie die het INFORMATIEOBJECT aanmaakt." -#: openforms/registrations/contrib/objects_api/config.py:132 +#: openforms/registrations/contrib/objects_api/config.py:133 msgid "" "Description of the document type in the Catalogi API to be used for the " "submission report PDF. The appropriate version will automatically be " @@ -9525,10 +9782,9 @@ msgid "" msgstr "" "Omschrijving van het documenttype in de Catalogi API voor het PDF-document " "met inzendingsgegevens. De juiste versie wordt automatisch geselecteerd op " -"basis van de inzendingsdatum en geldigheidsdatums van de " -"documenttypeversies." +"basis van de inzendingsdatum en geldigheidsdatums van de documenttypeversies." -#: openforms/registrations/contrib/objects_api/config.py:145 +#: openforms/registrations/contrib/objects_api/config.py:146 msgid "" "Description of the document type in the Catalogi API to be used for the " "submission report CSV. The appropriate version will automatically be " @@ -9537,10 +9793,9 @@ msgid "" msgstr "" "Omschrijving van het documenttype in de Catalogi API voor het CSV-document " "met inzendingsgegevens. De juiste versie wordt automatisch geselecteerd op " -"basis van de inzendingsdatum en geldigheidsdatums van de " -"documenttypeversies." +"basis van de inzendingsdatum en geldigheidsdatums van de documenttypeversies." -#: openforms/registrations/contrib/objects_api/config.py:158 +#: openforms/registrations/contrib/objects_api/config.py:159 msgid "" "Description of the document type in the Catalogi API to be used for the " "submission attachments. The appropriate version will automatically be " @@ -9548,14 +9803,14 @@ msgid "" "document type versions." msgstr "" "Omschrijving van het documenttype in de Catalogi API voor " -"inzendingsbijlagen. De juiste versie wordt automatisch geselecteerd op basis" -" van de inzendingsdatum en geldigheidsdatums van de documenttypeversies." +"inzendingsbijlagen. De juiste versie wordt automatisch geselecteerd op basis " +"van de inzendingsdatum en geldigheidsdatums van de documenttypeversies." -#: openforms/registrations/contrib/objects_api/config.py:167 +#: openforms/registrations/contrib/objects_api/config.py:168 msgid "submission report PDF informatieobjecttype" msgstr "inzendings PDF document informatieobjecttype" -#: openforms/registrations/contrib/objects_api/config.py:169 +#: openforms/registrations/contrib/objects_api/config.py:170 msgid "" "URL that points to the INFORMATIEOBJECTTYPE in the Catalogi API to be used " "for the submission report PDF." @@ -9563,7 +9818,7 @@ msgstr "" "URL naar het INFORMATIEOBJECTTYPE in een Catalogi API dat wordt gebruikt " "voor het PDF-document." -#: openforms/registrations/contrib/objects_api/config.py:177 +#: openforms/registrations/contrib/objects_api/config.py:178 msgid "" "URL that points to the INFORMATIEOBJECTTYPE in the Catalogi API to be used " "for the submission report CSV." @@ -9571,7 +9826,7 @@ msgstr "" "URL naar het INFORMATIEOBJECTTYPE in een Catalogi API dat wordt gebruikt " "voor het CSV-document." -#: openforms/registrations/contrib/objects_api/config.py:185 +#: openforms/registrations/contrib/objects_api/config.py:186 msgid "" "URL that points to the INFORMATIEOBJECTTYPE in the Catalogi API to be used " "for the submission attachments." @@ -9579,31 +9834,31 @@ msgstr "" "URL naar het INFORMATIEOBJECTTYPE in een Catalogi API dat wordt gebruikt " "voor de bijlagen." -#: openforms/registrations/contrib/objects_api/config.py:193 +#: openforms/registrations/contrib/objects_api/config.py:194 msgid "productaanvraag type" msgstr "productaanvraag type" -#: openforms/registrations/contrib/objects_api/config.py:194 +#: openforms/registrations/contrib/objects_api/config.py:195 msgid "The type of ProductAanvraag." msgstr "Het type van de ProductAanvraag." -#: openforms/registrations/contrib/objects_api/config.py:198 +#: openforms/registrations/contrib/objects_api/config.py:199 msgid "JSON content field" msgstr "JSON-inhoud sjabloon" -#: openforms/registrations/contrib/objects_api/config.py:200 +#: openforms/registrations/contrib/objects_api/config.py:201 #: openforms/registrations/contrib/zgw_apis/options.py:126 msgid "JSON template for the body of the request sent to the Objects API." msgstr "" "JSON-sjabloon voor de inhoud van het verzoek wat naar de Objecten API " "gestuurd wordt." -#: openforms/registrations/contrib/objects_api/config.py:210 +#: openforms/registrations/contrib/objects_api/config.py:211 #: openforms/registrations/contrib/objects_api/models.py:50 msgid "payment status update JSON template" msgstr "JSON-sjabloon voor de betaalstatus-update" -#: openforms/registrations/contrib/objects_api/config.py:212 +#: openforms/registrations/contrib/objects_api/config.py:213 #: openforms/registrations/contrib/objects_api/models.py:59 msgid "" "This template is evaluated with the submission data and the resulting JSON " @@ -9613,23 +9868,23 @@ msgstr "" "resulterende JSON wordt vervolgens naar de Objecten API gestuurd met een " "PATCH call om de betalingsvelden bij te werken." -#: openforms/registrations/contrib/objects_api/config.py:225 +#: openforms/registrations/contrib/objects_api/config.py:226 msgid "variables mapping" msgstr "variabelekoppelingen" -#: openforms/registrations/contrib/objects_api/config.py:232 +#: openforms/registrations/contrib/objects_api/config.py:233 msgid "geometry variable" msgstr "Geometrievariabele" -#: openforms/registrations/contrib/objects_api/config.py:234 +#: openforms/registrations/contrib/objects_api/config.py:235 msgid "" "The 'dotted' path to a form variable key that should be mapped to the " "`record.geometry` attribute." msgstr "" -"De sleutel van de formuliervariabele die aan het geometrieveld " -"'record.geometry' gekoppeld wordt." +"De sleutel van de formuliervariabele die aan het geometrieveld 'record." +"geometry' gekoppeld wordt." -#: openforms/registrations/contrib/objects_api/config.py:276 +#: openforms/registrations/contrib/objects_api/config.py:277 msgid "" "You must create a valid Objects API Group config (with the necessary " "services) before importing." @@ -9637,30 +9892,29 @@ msgstr "" "Je moet eerst een werkende Objecten API-groep (met alle services) aanmaken " "voor dit formulier geïmporteerd kan worden." -#: openforms/registrations/contrib/objects_api/config.py:299 +#: openforms/registrations/contrib/objects_api/config.py:300 msgid "" -"No Objects API Group config was found matching the configured objecttype " -"URL." +"No Objects API Group config was found matching the configured objecttype URL." msgstr "" "Er bestaat geen Objecten API-groep die overeenkomt met de ingestelde " "Objecttype-URL." -#: openforms/registrations/contrib/objects_api/config.py:330 +#: openforms/registrations/contrib/objects_api/config.py:331 #, python-brace-format msgid "{field_name} shouldn't be provided when version is 1" msgstr "{field_name} is niet van toepassing in v1" -#: openforms/registrations/contrib/objects_api/config.py:341 +#: openforms/registrations/contrib/objects_api/config.py:342 #, python-brace-format msgid "{field_name} shouldn't be provided when version is 2" msgstr "{field_name} is niet van toepassing in v2" -#: openforms/registrations/contrib/objects_api/config.py:348 +#: openforms/registrations/contrib/objects_api/config.py:349 #, python-brace-format msgid "Unknown version: {version}" msgstr "Onbekende versie: {version}" -#: openforms/registrations/contrib/objects_api/config.py:430 +#: openforms/registrations/contrib/objects_api/config.py:435 msgid "" "To look up document types by their description, a catalogue reference is " "required. Either specify one on the API group or in the plugin options." @@ -9669,27 +9923,27 @@ msgstr "" "catalogus ingesteld zijn. Je kan de catalogus instellen in de API-groep of " "in de registratie-opties onder \"Documenttypen\"." -#: openforms/registrations/contrib/objects_api/config.py:443 +#: openforms/registrations/contrib/objects_api/config.py:448 #, python-brace-format msgid "No document type with description '{description}' found." msgstr "Kon documenttype met omschrijving '{description}' niet vinden." -#: openforms/registrations/contrib/objects_api/config.py:464 +#: openforms/registrations/contrib/objects_api/config.py:471 #, python-brace-format msgid "The provided {field} does not exist in the Catalogi API." msgstr "Het opgegeven {field} bestaat niet in de ingestelde Catalogi API." -#: openforms/registrations/contrib/objects_api/config.py:466 +#: openforms/registrations/contrib/objects_api/config.py:473 #, python-brace-format msgid "The provided {field} does not exist in the selected catalogue." msgstr "Het opgegeven {field} bestaat niet in de geselecteerde catalogus." -#: openforms/registrations/contrib/objects_api/config.py:489 +#: openforms/registrations/contrib/objects_api/config.py:522 msgid "The provided objecttype does not exist in the Objecttypes API." msgstr "" "Het opgegeven objecttype is niet gevonden in de ingestelde Objecttypen API." -#: openforms/registrations/contrib/objects_api/config.py:506 +#: openforms/registrations/contrib/objects_api/config.py:539 msgid "The provided objecttype version does not exist in the Objecttypes API." msgstr "" "De opgegeven objecttypeversie is niet gevonden in de ingestelde Objecttypen " @@ -9701,8 +9955,8 @@ msgstr "Productaanvraag type" #: openforms/registrations/contrib/objects_api/models.py:31 msgid "" -"Description of the 'ProductAanvraag' type. This value is saved in the 'type'" -" attribute of the 'ProductAanvraag'." +"Description of the 'ProductAanvraag' type. This value is saved in the 'type' " +"attribute of the 'ProductAanvraag'." msgstr "" "Omschrijving van het type van de 'Productaanvraag'. Deze waarde wordt " "bewaard in het 'type' attribuut van de 'ProductAanvraag'." @@ -9727,7 +9981,7 @@ msgstr "Objecten API configuratie" #: openforms/registrations/contrib/objects_api/models.py:78 #: openforms/submissions/models/email_verification.py:47 #: openforms/submissions/models/post_completion_metadata.py:14 -#: openforms/submissions/models/submission.py:332 +#: openforms/submissions/models/submission.py:333 #: openforms/submissions/models/submission_files.py:63 #: openforms/submissions/models/submission_files.py:151 #: openforms/submissions/models/submission_report.py:30 @@ -9771,89 +10025,76 @@ msgstr "Documenten URL" #: openforms/registrations/contrib/objects_api/models.py:107 msgid "The URL of the submission attachment registered in the Documents API." msgstr "" -"De resource-URL in de Documenten API van de geregistreerde " -"inzendingsbijlage." +"De resource-URL in de Documenten API van de geregistreerde inzendingsbijlage." #: openforms/registrations/contrib/objects_api/plugin.py:40 msgid "Objects API registration" msgstr "Objecten API registratie" -#: openforms/registrations/contrib/objects_api/plugin.py:119 -#: openforms/registrations/contrib/zgw_apis/plugin.py:539 -msgid "Manage API groups" -msgstr "API-groepen beheren" - -#: openforms/registrations/contrib/objects_api/plugin.py:123 -msgid "Defaults configuration" -msgstr "Standaardinstellingen" - -#: openforms/registrations/contrib/objects_api/registration_variables.py:32 +#: openforms/registrations/contrib/objects_api/registration_variables.py:31 #: openforms/submissions/api/serializers.py:446 msgid "Public reference" msgstr "Publieke referentie" -#: openforms/registrations/contrib/objects_api/registration_variables.py:43 +#: openforms/registrations/contrib/objects_api/registration_variables.py:42 msgid "PDF Url" msgstr "URL PDF" -#: openforms/registrations/contrib/objects_api/registration_variables.py:54 +#: openforms/registrations/contrib/objects_api/registration_variables.py:53 msgid "CSV Url" msgstr "URL CSV" -#: openforms/registrations/contrib/objects_api/registration_variables.py:65 -#: openforms/registrations/contrib/stuf_zds/registration_variables.py:30 +#: openforms/registrations/contrib/objects_api/registration_variables.py:64 +#: openforms/registrations/contrib/stuf_zds/registration_variables.py:29 msgid "Payment completed" msgstr "Betaling voltooid" -#: openforms/registrations/contrib/objects_api/registration_variables.py:76 -#: openforms/registrations/contrib/stuf_zds/registration_variables.py:41 +#: openforms/registrations/contrib/objects_api/registration_variables.py:75 +#: openforms/registrations/contrib/stuf_zds/registration_variables.py:40 msgid "Payment amount" msgstr "Betalingsbedrag" -#: openforms/registrations/contrib/objects_api/registration_variables.py:89 -#: openforms/registrations/contrib/stuf_zds/registration_variables.py:54 +#: openforms/registrations/contrib/objects_api/registration_variables.py:88 +#: openforms/registrations/contrib/stuf_zds/registration_variables.py:53 msgid "Payment public order IDs" msgstr "Publieke order-ID's van betaling" -#: openforms/registrations/contrib/objects_api/registration_variables.py:100 -#: openforms/registrations/contrib/stuf_zds/registration_variables.py:65 +#: openforms/registrations/contrib/objects_api/registration_variables.py:99 +#: openforms/registrations/contrib/stuf_zds/registration_variables.py:64 msgid "Provider payment IDs" msgstr "Provider betaling-ID's" -#: openforms/registrations/contrib/objects_api/registration_variables.py:116 +#: openforms/registrations/contrib/objects_api/registration_variables.py:111 msgid "Co-sign data" msgstr "Mede-ondertekeninggegevens" -#: openforms/registrations/contrib/objects_api/registration_variables.py:140 +#: openforms/registrations/contrib/objects_api/registration_variables.py:135 msgid "Co-sign date" msgstr "Datum mede-ondertekening" -#: openforms/registrations/contrib/objects_api/registration_variables.py:159 +#: openforms/registrations/contrib/objects_api/registration_variables.py:154 msgid "Co-sign BSN" msgstr "BSN mede-ondertekenaar" -#: openforms/registrations/contrib/objects_api/registration_variables.py:168 +#: openforms/registrations/contrib/objects_api/registration_variables.py:163 msgid "Co-sign KvK" msgstr "KVK mede-ondertekenaar" -#: openforms/registrations/contrib/objects_api/registration_variables.py:177 +#: openforms/registrations/contrib/objects_api/registration_variables.py:172 msgid "Co-sign pseudo" msgstr "PseudoID mede-ondertekenaar" #: openforms/registrations/contrib/stuf_zds/options.py:34 -#| msgid "Key of the form variable to take the value from." msgid "The name of the form variable to be mapped" msgstr "Naam van de te koppelen formuliervariabele." #: openforms/registrations/contrib/stuf_zds/options.py:37 -#| msgid "Date and time on which the form should be activated." msgid "The name in StUF-ZDS to which the form variable should be mapped" msgstr "" "Naam van het extra element in StUF-ZDS waar de waarde van de gekoppelde " "formuliervariabele terecht moet komen." #: openforms/registrations/contrib/stuf_zds/options.py:38 -#| msgid "StUF-ZDS" msgid "StUF-ZDS name" msgstr "StUF-ZDS-naam" @@ -9871,8 +10112,7 @@ msgstr "Zaaktype status code voor nieuw aangemaakte zaken via StUF-ZDS" #: openforms/registrations/contrib/stuf_zds/options.py:58 msgid "Zaaktype status omschrijving for newly created zaken in StUF-ZDS" -msgstr "" -"Zaaktype status omschrijving voor nieuw aangemaakte zaken via StUF-ZDS" +msgstr "Zaaktype status omschrijving voor nieuw aangemaakte zaken via StUF-ZDS" #: openforms/registrations/contrib/stuf_zds/options.py:63 msgid "Documenttype description for newly created zaken in StUF-ZDS" @@ -9892,7 +10132,6 @@ msgstr "" "aangemaakt worden." #: openforms/registrations/contrib/stuf_zds/options.py:80 -#| msgid "payment status update JSON template" msgid "payment status update variable mapping" msgstr "variabelekoppelingen voor de betaalstatusupdate" @@ -9902,8 +10141,8 @@ msgid "" "is sent to StUF-ZDS. Those keys and the values belonging to them in the " "submission data are included in extraElementen." msgstr "" -"Met deze variabelekoppelingen stel je in welke formuliervariabelen als extra" -" elementen in StUF-ZDS meegestuurd worden, en met welke naam." +"Met deze variabelekoppelingen stel je in welke formuliervariabelen als extra " +"elementen in StUF-ZDS meegestuurd worden, en met welke naam." #: openforms/registrations/contrib/stuf_zds/plugin.py:160 msgid "StUF-ZDS" @@ -9914,10 +10153,6 @@ msgid "StufService not selected" msgstr "StUF-service is niet ingesteld" #: openforms/registrations/contrib/zgw_apis/admin.py:31 -#| msgid "" -#| "Specify the catalogue in the selected catalogi API service where the " -#| "document types are defined. If provided, document types will also be " -#| "validated against the catalogue." msgid "" "Specify the catalogue in the selected catalogi API service where the case " "and document types are defined." @@ -9926,7 +10161,6 @@ msgstr "" "zaak- en documenttypen gedefinieerd zijn." #: openforms/registrations/contrib/zgw_apis/admin.py:49 -#| msgid "Objects API registration" msgid "Objects API integration" msgstr "Objecten API-integratie" @@ -9943,14 +10177,10 @@ msgid "ZGW API group" msgstr "ZGW API-groep" #: openforms/registrations/contrib/zgw_apis/api/filters.py:46 -#| msgid "Filter informatieobjecttypen against this catalogus URL." msgid "Filter case types against this catalogue URL." msgstr "Filter zaaktypen op basis van deze catalogus-URL." #: openforms/registrations/contrib/zgw_apis/api/filters.py:53 -#| msgid "" -#| "The primary key of the ZGW API group to use. The informatieobjecttypen from " -#| "the Catalogi API in this group will be returned." msgid "" "The primary key of the ZGW API group to use. The case types from the " "Catalogi API in this group will be returned." @@ -10034,8 +10264,8 @@ msgid "" "be overridden in the Registration tab of a given form." msgstr "" "Aanduiding van de mate waarin het zaakdossier van de ZAAK voor de " -"openbaarheid bestemd is. Dit kan per formulier in de registratieconfiguratie" -" overschreven worden." +"openbaarheid bestemd is. Dit kan per formulier in de registratieconfiguratie " +"overschreven worden." #: openforms/registrations/contrib/zgw_apis/models.py:126 msgid "vertrouwelijkheidaanduiding document" @@ -10087,10 +10317,6 @@ msgid "Which ZGW API set to use." msgstr "De gewenste ZGW API-groep." #: openforms/registrations/contrib/zgw_apis/options.py:60 -#| msgid "" -#| "The catalogue in the catalogi API from the selected API group. This " -#| "overrides the catalogue specified in the API group, if it's set. When " -#| "specified, the document types specified on the API group are ignored." msgid "" "The catalogue in the catalogi API from the selected API group. This " "overrides the catalogue specified in the API group, if it's set. Case and " @@ -10101,15 +10327,14 @@ msgstr "" "zaak- en documenttypen worden uit deze catalogus opgevraagd." #: openforms/registrations/contrib/zgw_apis/options.py:67 -#| msgid "Basic authentication" msgid "Case type identification" msgstr "Zaaktype-identificatie" #: openforms/registrations/contrib/zgw_apis/options.py:69 msgid "" -"The case type will be retrieved in the specified catalogue. The version will" -" automatically be selected based on the submission completion timestamp. " -"When you specify this field, you MUST also specify a catalogue." +"The case type will be retrieved in the specified catalogue. The version will " +"automatically be selected based on the submission completion timestamp. When " +"you specify this field, you MUST also specify a catalogue." msgstr "" "Het zaaktype wordt opgehaald binnen de ingestelde catalogus. De juiste " "versie van het zaaktype wordt automatisch bepaald aan de hand van de " @@ -10155,11 +10380,11 @@ msgstr "objecten API - objecttype" #: openforms/registrations/contrib/zgw_apis/options.py:110 msgid "" "URL that points to the ProductAanvraag objecttype in the Objecttypes API. " -"The objecttype should have the following three attributes: 1) submission_id;" -" 2) type (the type of productaanvraag); 3) data (the submitted form data)" +"The objecttype should have the following three attributes: 1) submission_id; " +"2) type (the type of productaanvraag); 3) data (the submitted form data)" msgstr "" -"URL naar het OBJECTTYPE voor de 'ProductAanvraag' in de Objecttypen API. Het" -" objecttype moet de volgende attributen bevatten: 1) submission_id; 2) type " +"URL naar het OBJECTTYPE voor de 'ProductAanvraag' in de Objecttypen API. Het " +"objecttype moet de volgende attributen bevatten: 1) submission_id; 2) type " "(het type van de 'ProductAanvraag'); 3) data (ingezonden formuliergegevens)" #: openforms/registrations/contrib/zgw_apis/options.py:119 @@ -10195,9 +10420,6 @@ msgid "The provided zaaktype does not exist in the specified Catalogi API." msgstr "Het opgegeven zaaktype bestaat niet in de ingestelde Catalogi API." #: openforms/registrations/contrib/zgw_apis/options.py:285 -#| msgid "" -#| "The provided informatieobjecttype does not exist in the specified Catalogi " -#| "API." msgid "" "The provided informatieobjecttype does not exist in the specified selected " "case type or Catalogi API." @@ -10206,27 +10428,20 @@ msgstr "" "zaaktype of in de ingestelde Catalogi API." #: openforms/registrations/contrib/zgw_apis/options.py:297 -#| msgid "" -#| "You must specify a catalogue when specifying the submission attachment " -#| "document type." msgid "You must specify a catalogue when passing a case type identification." msgstr "" -"Je moet een catalogus aanduiden wanneer je het zaaktype via de identificatie" -" opgeeft." +"Je moet een catalogus aanduiden wanneer je het zaaktype via de identificatie " +"opgeeft." #: openforms/registrations/contrib/zgw_apis/options.py:394 #, python-brace-format -#| msgid "" -#| "Could not find a property with the name '{property_name}' related to the " -#| "zaaktype." msgid "Could not find a property with the name '{name}' in the case type" msgstr "" "Kon geen eigenschap met de naam '{name}' vinden binnen het ingestelde " "zaaktype." #: openforms/registrations/contrib/zgw_apis/options.py:438 -msgid "" -"Could not find a roltype with this description related to the zaaktype." +msgid "Could not find a roltype with this description related to the zaaktype." msgstr "" "Kon geen roltype vinden met deze omschrijving binnen het opgegeven zaaktype." @@ -10244,11 +10459,13 @@ msgstr "Lijst van beschikbare services" #: openforms/services/api/viewsets.py:16 msgid "" -"Return a list of available (JSON) services/registrations configured in the backend.\n" +"Return a list of available (JSON) services/registrations configured in the " +"backend.\n" "\n" "Note that this endpoint is **EXPERIMENTAL**." msgstr "" -"Geef een lijst van beschikbare (JSON) services/registraties die in de backend ingesteld zijn.\n" +"Geef een lijst van beschikbare (JSON) services/registraties die in de " +"backend ingesteld zijn.\n" "\n" "Dit endpoint is **EXPERIMENTEEL**." @@ -10308,10 +10525,6 @@ msgstr "Afspraak ID" msgid "Appointment error information" msgstr "Afspraak foutmelding" -#: openforms/submissions/admin.py:378 -msgid "Price" -msgstr "Prijs" - #: openforms/submissions/admin.py:382 msgid "Payment required" msgstr "Betaling vereist" @@ -10319,8 +10532,7 @@ msgstr "Betaling vereist" #: openforms/submissions/admin.py:406 msgid "You can only export the submissions of the same form type." msgstr "" -"Je kan alleen de inzendingen van één enkel formuliertype tegelijk " -"exporteren." +"Je kan alleen de inzendingen van één enkel formuliertype tegelijk exporteren." #: openforms/submissions/admin.py:413 #, python-format @@ -10351,8 +10563,7 @@ msgstr "Probeer %(verbose_name_plural)s opnieuw te verwerken" #, python-brace-format msgid "Retrying processing flow for {count} {verbose_name}" msgid_plural "Retrying processing flow for {count} {verbose_name_plural}" -msgstr[0] "" -"Nieuwe verwerkingspoging voor {count} {verbose_name} wordt gestart." +msgstr[0] "Nieuwe verwerkingspoging voor {count} {verbose_name} wordt gestart." msgstr[1] "" "Nieuwe verwerkingspoging voor {count} {verbose_name_plural} wordt gestart." @@ -10451,8 +10662,8 @@ msgstr "Formuliergegevens" #: openforms/submissions/api/serializers.py:309 msgid "" "The Form.io submission data object. This will be merged with the full form " -"submission data, including data from other steps, to evaluate the configured" -" form logic." +"submission data, including data from other steps, to evaluate the configured " +"form logic." msgstr "" "De Form.io inzendingsgegevens. Dit wordt samengevoegd met de " "inzendingsgegevens, inclusief de gegevens van de andere stappen, om de " @@ -10465,8 +10676,7 @@ msgstr "Contact e-mailadres" #: openforms/submissions/api/serializers.py:322 msgid "The email address where the 'magic' resume link should be sent to" msgstr "" -"Het e-mailadres waar de 'magische' vervolg link naar toe gestuurd moet " -"worden" +"Het e-mailadres waar de 'magische' vervolg link naar toe gestuurd moet worden" #: openforms/submissions/api/serializers.py:415 msgid "background processing status" @@ -10489,8 +10699,8 @@ msgid "" "The result from the background processing. This field only has a value if " "the processing has completed (both successfully or with errors)." msgstr "" -"Het resultaat van de achtergrondverwerking. Dit veld heeft alleen een waarde" -" als de verwerking is voltooid (zowel met succes als met fouten)." +"Het resultaat van de achtergrondverwerking. Dit veld heeft alleen een waarde " +"als de verwerking is voltooid (zowel met succes als met fouten)." #: openforms/submissions/api/serializers.py:436 msgid "Error information" @@ -10580,7 +10790,7 @@ msgid "Name of the form definition used in the form step." msgstr "Naam van de formulierdefinitie horend bij de stap." #: openforms/submissions/api/serializers.py:539 -#: openforms/submissions/models/submission.py:234 +#: openforms/submissions/models/submission.py:235 msgid "privacy policy accepted" msgstr "Privacybeleid geaccepteerd" @@ -10590,7 +10800,7 @@ msgstr "" "Indicator of de mede-ondertekenaar het privacybeleid geaccepteerd heeft." #: openforms/submissions/api/serializers.py:543 -#: openforms/submissions/models/submission.py:244 +#: openforms/submissions/models/submission.py:245 msgid "statement of truth accepted" msgstr "verklaring van waarheid geaccepteerd" @@ -10621,12 +10831,10 @@ msgstr "" #: openforms/submissions/api/serializers.py:637 #: openforms/submissions/models/email_verification.py:62 -#| msgid "Identification number" msgid "verification code" msgstr "bevestigingscode" #: openforms/submissions/api/serializers.py:655 -#| msgid "Identification number" msgid "The verification code does not match." msgstr "De bevestigingscode komt niet overeen." @@ -10666,13 +10874,15 @@ msgid "" "\n" "This is called by the default Form.io file upload widget. \n" "\n" -"Access to this view requires an active form submission. Unclaimed temporary files automatically expire after {expire_days} day(s). " +"Access to this view requires an active form submission. Unclaimed temporary " +"files automatically expire after {expire_days} day(s). " msgstr "" "Haal tijdelijk bestand op.\n" "\n" "Deze aanroep wordt gedaan door het standaard Form.io bestandsupload widget.\n" "\n" -"Toegang tot dit endpoint vereist een actieve formulier inzending. Niet gekoppelde bestanden worden automatisch verwijderd na {expire_days} dag(en)" +"Toegang tot dit endpoint vereist een actieve formulier inzending. Niet " +"gekoppelde bestanden worden automatisch verwijderd na {expire_days} dag(en)" #: openforms/submissions/api/views.py:40 msgid "Delete temporary file upload" @@ -10685,42 +10895,48 @@ msgid "" "\n" "This is called by the default Form.io file upload widget. \n" "\n" -"Access to this view requires an active form submission. Unclaimed temporary files automatically expire after {expire_days} day(s). " +"Access to this view requires an active form submission. Unclaimed temporary " +"files automatically expire after {expire_days} day(s). " msgstr "" "Verwijder tijdelijk bestand.\n" "\n" "Deze aanroep wordt gedaan door het standaard Form.io bestandsupload widget.\n" "\n" -"Toegang tot dit endpoint vereist een actieve formulier inzending. Niet gekoppelde bestanden worden automatisch verwijderd na {expire_days} dag(en)" +"Toegang tot dit endpoint vereist een actieve formulier inzending. Niet " +"gekoppelde bestanden worden automatisch verwijderd na {expire_days} dag(en)" #: openforms/submissions/api/views.py:80 -#| msgid "Start authentication flow" msgid "Start email verification" msgstr "Start de e-mailverificatie" #: openforms/submissions/api/views.py:82 msgid "" -"Create an email verification resource to start the verification process. A verification e-mail will be scheduled and sent to the provided email address, containing the verification code to use during verification.\n" +"Create an email verification resource to start the verification process. A " +"verification e-mail will be scheduled and sent to the provided email " +"address, containing the verification code to use during verification.\n" "\n" -"Validations check that the provided component key is present in the form of the submission and that it actually is an `email` component." +"Validations check that the provided component key is present in the form of " +"the submission and that it actually is an `email` component." msgstr "" -"Maak een e-mailbevestigingverzoek aan om het verificatieproces te beginnen. Hierna wordt een verificatie-e-mail verstuurd naar het opgegeven e-mailadres die de bevestigingscode bevat die in het proces ingevoerd dient te worden.\n" +"Maak een e-mailbevestigingverzoek aan om het verificatieproces te beginnen. " +"Hierna wordt een verificatie-e-mail verstuurd naar het opgegeven e-mailadres " +"die de bevestigingscode bevat die in het proces ingevoerd dient te worden.\n" "\n" -"De validaties controleren dat de componentsleutel bestaat in het formulier, en dat de component daadwerkelijk een e-mailcomponent is." +"De validaties controleren dat de componentsleutel bestaat in het formulier, " +"en dat de component daadwerkelijk een e-mailcomponent is." #: openforms/submissions/api/views.py:105 -#| msgid "email address" msgid "Verify email address" msgstr "Verifieer een e-mailadres" #: openforms/submissions/api/views.py:107 msgid "" "Using the code obtained from the verification email, mark the email address " -"as verified. Using an invalid code results in validation errors in the error" -" response." +"as verified. Using an invalid code results in validation errors in the error " +"response." msgstr "" -"Gebruik de bevestigingscode uit de verificatie-e-mail om het e-mailadres als" -" \"geverifieerd\" te markeren. Als geen geldige code gebruikt wordt, dan " +"Gebruik de bevestigingscode uit de verificatie-e-mail om het e-mailadres als " +"\"geverifieerd\" te markeren. Als geen geldige code gebruikt wordt, dan " "bevat het antwoord validatiefouten." #: openforms/submissions/api/viewsets.py:93 @@ -10730,8 +10946,8 @@ msgstr "Actieve inzendingen weergeven" #: openforms/submissions/api/viewsets.py:95 msgid "" "Active submissions are submissions whose ID is in the user session. This " -"endpoint returns user-bound submissions. Note that you get different results" -" on different results because of the differing sessions." +"endpoint returns user-bound submissions. Note that you get different results " +"on different results because of the differing sessions." msgstr "" "Actieve inzendingen zijn inzendingen waarvan het ID zich in de " "gebruikerssessie bevindt. Dit endpoint geeft alle inzendingen terug die " @@ -10744,8 +10960,7 @@ msgstr "Inzending detail weergeven" #: openforms/submissions/api/viewsets.py:102 msgid "Get the state of a single submission in the user session." -msgstr "" -"Haal de status op van een enkele inzending op van de gebruikerssessie." +msgstr "Haal de status op van een enkele inzending op van de gebruikerssessie." #: openforms/submissions/api/viewsets.py:105 msgid "Start a submission" @@ -10931,17 +11146,14 @@ msgstr "" "dient te worden." #: openforms/submissions/models/email_verification.py:49 -#| msgid "The submission linked to the registration data." msgid "The submission during which the email verification was initiated." msgstr "De inzending waarbinnen de e-mailverificatie gestart was." #: openforms/submissions/models/email_verification.py:53 -#| msgid "Component key" msgid "component key" msgstr "componentsleutel" #: openforms/submissions/models/email_verification.py:54 -#| msgid "Path to the attachment in the submission data." msgid "Key of the email component in the submission's form." msgstr "Sleutel van de e-mailcomponent in de formulierdefinitie." @@ -10950,7 +11162,6 @@ msgid "The email address that is being verified." msgstr "Het e-mailadres dat geverifieerd wordt." #: openforms/submissions/models/email_verification.py:67 -#| msgid "registration time" msgid "verification timestamp" msgstr "bevestigingsmoment" @@ -10959,12 +11170,10 @@ msgid "Unverified emails have no timestamp set." msgstr "Niet-bevestigde e-mailadressen hebben geen verificatiemoment." #: openforms/submissions/models/email_verification.py:74 -#| msgid "Email registration" msgid "email verification" msgstr "e-mailverificatie" #: openforms/submissions/models/email_verification.py:75 -#| msgid "Email registration" msgid "email verifications" msgstr "e-mailverificaties" @@ -11001,7 +11210,7 @@ msgstr "" "afgevuurd wordt." #: openforms/submissions/models/post_completion_metadata.py:30 -#: openforms/submissions/models/submission.py:122 +#: openforms/submissions/models/submission.py:123 #: openforms/submissions/models/submission_files.py:79 #: openforms/submissions/models/submission_files.py:201 #: openforms/submissions/models/submission_step.py:105 @@ -11021,31 +11230,31 @@ msgstr "Soort trigger die de achtergrondtaken aangemaakt heeft." msgid "post completion metadata" msgstr "bij-voltooiingmetagegevens" -#: openforms/submissions/models/submission.py:115 +#: openforms/submissions/models/submission.py:116 msgid "form URL" msgstr "formulier URL" -#: openforms/submissions/models/submission.py:119 +#: openforms/submissions/models/submission.py:120 msgid "URL where the user initialized the submission." msgstr "URL waar de gebruiker de inzending is gestart." -#: openforms/submissions/models/submission.py:123 +#: openforms/submissions/models/submission.py:124 msgid "completed on" msgstr "afgerond op" -#: openforms/submissions/models/submission.py:124 +#: openforms/submissions/models/submission.py:125 msgid "suspended on" msgstr "onderbroken op" -#: openforms/submissions/models/submission.py:127 +#: openforms/submissions/models/submission.py:128 msgid "co-sign data" msgstr "Mede-ondertekenaargegevens" -#: openforms/submissions/models/submission.py:131 +#: openforms/submissions/models/submission.py:132 msgid "Authentication details of a co-signer." msgstr "Authenticatiedetails van een mede-ondertekenaar." -#: openforms/submissions/models/submission.py:143 +#: openforms/submissions/models/submission.py:144 msgid "" "Cost of this submission. Either derived from the related product, or " "evaluated from price logic rules. The price is calculated and saved on " @@ -11055,11 +11264,11 @@ msgstr "" "of door logicaregels. De prijs wordt berekend en opgeslagen op de inzending " "zodra deze is afgerond." -#: openforms/submissions/models/submission.py:151 +#: openforms/submissions/models/submission.py:152 msgid "last register attempt date" msgstr "laatste poging tot doorzetting" -#: openforms/submissions/models/submission.py:155 +#: openforms/submissions/models/submission.py:156 msgid "" "The last time the submission registration was attempted with the backend. " "Note that this date will be updated even if the registration is not " @@ -11068,21 +11277,21 @@ msgstr "" "De laatste poging waarop de inzending is doorgezet naar de registratie " "backend. Deze datum wordt ook bijgewerkt als de doorzetting niet is gelukt." -#: openforms/submissions/models/submission.py:160 +#: openforms/submissions/models/submission.py:161 msgid "registration backend retry counter" msgstr "registratiepogingenteller" -#: openforms/submissions/models/submission.py:163 +#: openforms/submissions/models/submission.py:164 msgid "Counter to track how often we tried calling the registration backend. " msgstr "" "Teller die bijhoudt hoe vaak we de registratiebackend probeerden aan te " "roepen." -#: openforms/submissions/models/submission.py:167 +#: openforms/submissions/models/submission.py:168 msgid "registration backend result" msgstr "registratie backend resultaat" -#: openforms/submissions/models/submission.py:171 +#: openforms/submissions/models/submission.py:172 msgid "" "Contains data returned by the registration backend while registering the " "submission data." @@ -11090,34 +11299,32 @@ msgstr "" "Bevat de gegevens zoals teruggegeven door de registratie backend bij het " "versturen van de inzending." -#: openforms/submissions/models/submission.py:175 +#: openforms/submissions/models/submission.py:176 msgid "registration backend status" msgstr "registratie backend status" -#: openforms/submissions/models/submission.py:180 +#: openforms/submissions/models/submission.py:181 msgid "" -"Indication whether the registration in the configured backend was " -"successful." -msgstr "" -"Indicatie of de doorzetting naar de registratie backend succesvol was." +"Indication whether the registration in the configured backend was successful." +msgstr "Indicatie of de doorzetting naar de registratie backend succesvol was." -#: openforms/submissions/models/submission.py:184 +#: openforms/submissions/models/submission.py:185 msgid "pre-registration completed" msgstr "preregistratie voltooid" -#: openforms/submissions/models/submission.py:187 +#: openforms/submissions/models/submission.py:188 msgid "Indicates whether the pre-registration task completed successfully." msgstr "Indicatie of de preregistratietaak succesvol voltooid is." -#: openforms/submissions/models/submission.py:191 +#: openforms/submissions/models/submission.py:192 msgid "public registration reference" msgstr "publieke referentie" -#: openforms/submissions/models/submission.py:195 +#: openforms/submissions/models/submission.py:196 msgid "" -"The registration reference communicated to the end-user completing the form." -" This reference is intended to be unique and the reference the end-user uses" -" to communicate with the service desk. It should be extracted from the " +"The registration reference communicated to the end-user completing the form. " +"This reference is intended to be unique and the reference the end-user uses " +"to communicate with the service desk. It should be extracted from the " "registration result where possible, and otherwise generated to be unique. " "Note that this reference is displayed to the end-user and used as payment " "reference!" @@ -11130,27 +11337,27 @@ msgstr "" "deze referentie wordt getoond aan de eindgebruiker en gebruikt als " "betalingskenmerk!" -#: openforms/submissions/models/submission.py:204 +#: openforms/submissions/models/submission.py:205 msgid "cosign complete" msgstr "mede-ondertekenen voltooid" -#: openforms/submissions/models/submission.py:206 +#: openforms/submissions/models/submission.py:207 msgid "Indicates whether the submission has been cosigned." msgstr "Geeft aan of de inzending is mede-ondertekend." -#: openforms/submissions/models/submission.py:209 +#: openforms/submissions/models/submission.py:210 msgid "cosign request email sent" msgstr "Mede-ondertekenenverzoek-e-mail verstuurd" -#: openforms/submissions/models/submission.py:211 +#: openforms/submissions/models/submission.py:212 msgid "Has the email to request a co-sign been sent?" msgstr "Is de e-mail met het mede-ondertekenenverzoek verstuurd?" -#: openforms/submissions/models/submission.py:214 +#: openforms/submissions/models/submission.py:215 msgid "cosign confirmation email sent" msgstr "Mede-ondertekenenbevestigings-e-mail verstuurd" -#: openforms/submissions/models/submission.py:217 +#: openforms/submissions/models/submission.py:218 msgid "" "Has the confirmation email been sent after the submission has successfully " "been cosigned?" @@ -11158,67 +11365,67 @@ msgstr "" "Geeft aan of de bevestigings-e-mail na het succesvol mede-ondertekenen " "verstuurd is." -#: openforms/submissions/models/submission.py:222 +#: openforms/submissions/models/submission.py:223 msgid "confirmation email sent" msgstr "Bevestigingse-mail verstuurd" -#: openforms/submissions/models/submission.py:224 +#: openforms/submissions/models/submission.py:225 msgid "Indicates whether the confirmation email has been sent." msgstr "Geeft aan of de bevestigingse-mail al verstuurd is." -#: openforms/submissions/models/submission.py:228 +#: openforms/submissions/models/submission.py:229 msgid "payment complete confirmation email sent" msgstr "Betaling-voltooidbevestigings-e-mail verstuurd" -#: openforms/submissions/models/submission.py:230 +#: openforms/submissions/models/submission.py:231 msgid "Has the confirmation emails been sent after successful payment?" msgstr "" "Geeft aan of de bevestigingse-mails na succesvollte betaling al verstuurd " "zijn." -#: openforms/submissions/models/submission.py:236 +#: openforms/submissions/models/submission.py:237 msgid "Has the user accepted the privacy policy?" msgstr "Indicator of de gebruiker het privacybeleid geaccepteerd heeft." -#: openforms/submissions/models/submission.py:239 +#: openforms/submissions/models/submission.py:240 msgid "cosign privacy policy accepted" msgstr "Mede-ondertekenenprivacybeleid geaccepteerd" -#: openforms/submissions/models/submission.py:241 +#: openforms/submissions/models/submission.py:242 msgid "Has the co-signer accepted the privacy policy?" msgstr "" "Indicator of de mede-ondertekenaar het privacybeleid geaccepteerd heeft." -#: openforms/submissions/models/submission.py:246 +#: openforms/submissions/models/submission.py:247 msgid "Did the user declare the form to be filled out truthfully?" msgstr "" "Heeft de gebruiker verklaard dat het formulier naar waarheid ingevuld is?" -#: openforms/submissions/models/submission.py:249 +#: openforms/submissions/models/submission.py:250 msgid "cosign statement of truth accepted" msgstr "mede-ondertekenen verklaring van waarheid geaccepteerd" -#: openforms/submissions/models/submission.py:251 +#: openforms/submissions/models/submission.py:252 msgid "Did the co-signer declare the form to be filled out truthfully?" msgstr "" "Heeft de mede-ondertekenaar verklaard dat het formulier naar waarheid " "ingevuld is?" -#: openforms/submissions/models/submission.py:255 +#: openforms/submissions/models/submission.py:256 msgid "is cleaned" msgstr "is opgeschoond" -#: openforms/submissions/models/submission.py:258 +#: openforms/submissions/models/submission.py:259 msgid "" "Indicates whether sensitive data (if there was any) has been removed from " "this submission." msgstr "Geeft aan of gevoelige gegevens verwijders zijn van deze inzending." -#: openforms/submissions/models/submission.py:262 +#: openforms/submissions/models/submission.py:263 msgid "initial data reference" msgstr "ongeldige data-referentie" -#: openforms/submissions/models/submission.py:265 +#: openforms/submissions/models/submission.py:266 msgid "" "An identifier that can be passed as a querystring when the form is started. " "Initial form field values are pre-populated from the retrieved data. During " @@ -11227,32 +11434,32 @@ msgid "" msgstr "" "Een identificatie die als query-parameter opgegeven kan worden bij het " "starten van een formulier. Op basis van deze identificatie worden bestaande " -"gegevens opgehaald en gebruikt om formuliervelden voor in te vullen. Bij het" -" registreren kunnen de bestaande gegevens ook weer bijgewerkt worden, indien" -" gewenst, of de gegevens worden als 'nieuw' geregistreerd. Dit kan " +"gegevens opgehaald en gebruikt om formuliervelden voor in te vullen. Bij het " +"registreren kunnen de bestaande gegevens ook weer bijgewerkt worden, indien " +"gewenst, of de gegevens worden als 'nieuw' geregistreerd. Dit kan " "bijvoorbeeld een referentie zijn naar een record in de Objecten API." -#: openforms/submissions/models/submission.py:275 +#: openforms/submissions/models/submission.py:276 msgid "on completion task ID" msgstr "bij voltooiing taak-ID" -#: openforms/submissions/models/submission.py:280 +#: openforms/submissions/models/submission.py:281 msgid "on completion task IDs" msgstr "bij voltooiing taak-ID's" -#: openforms/submissions/models/submission.py:283 +#: openforms/submissions/models/submission.py:284 msgid "" -"Celery task IDs of the on_completion workflow. Use this to inspect the state" -" of the async jobs." +"Celery task IDs of the on_completion workflow. Use this to inspect the state " +"of the async jobs." msgstr "" -"Celery-taak-ID's van de on_completion-workflow. Gebruik dit om de status van" -" de asynchrone taken te inspecteren. " +"Celery-taak-ID's van de on_completion-workflow. Gebruik dit om de status van " +"de asynchrone taken te inspecteren. " -#: openforms/submissions/models/submission.py:289 +#: openforms/submissions/models/submission.py:290 msgid "needs on_completion retry" msgstr "verwerking opnieuw proberen" -#: openforms/submissions/models/submission.py:292 +#: openforms/submissions/models/submission.py:293 msgid "" "Flag to track if the on_completion_retry chain should be invoked. This is " "scheduled via celery-beat." @@ -11260,44 +11467,44 @@ msgstr "" "Vlag die aangeeft of een nieuwe verwerkingspoging nodig is. Dit wordt " "automatisch uitgevoerd op de achtergrond." -#: openforms/submissions/models/submission.py:303 +#: openforms/submissions/models/submission.py:304 msgid "language code" msgstr "taalcode" -#: openforms/submissions/models/submission.py:308 +#: openforms/submissions/models/submission.py:309 msgid "The code (RFC5646 format) of the language used to fill in the Form." msgstr "" "De code (RFC5646-formaat) van de taal die gebruikt is tijdens het invullen " "van het formulier." -#: openforms/submissions/models/submission.py:313 +#: openforms/submissions/models/submission.py:314 msgid "final registration backend key" msgstr "uiteindelijke registratiebackendsleutel" -#: openforms/submissions/models/submission.py:317 +#: openforms/submissions/models/submission.py:318 msgid "The key of the registration backend to use." msgstr "De sleutel van de backend die voor registratie gebruikt moet worden." -#: openforms/submissions/models/submission.py:333 +#: openforms/submissions/models/submission.py:334 msgid "submissions" msgstr "inzendingen" -#: openforms/submissions/models/submission.py:357 +#: openforms/submissions/models/submission.py:358 msgid "" "Only completed submissions may persist a finalised registration backend key." msgstr "" "Enkel voltooide inzendingen kunnen een registratiebackendsleutel vastleggen." -#: openforms/submissions/models/submission.py:364 +#: openforms/submissions/models/submission.py:365 #, python-brace-format msgid "{pk} - started on {started}" msgstr "{pk} - gestart op {started}" -#: openforms/submissions/models/submission.py:365 +#: openforms/submissions/models/submission.py:366 msgid "(unsaved)" msgstr "(niet bewaard)" -#: openforms/submissions/models/submission.py:366 +#: openforms/submissions/models/submission.py:367 msgid "(no timestamp yet)" msgstr "(nog geen datum)" @@ -11438,8 +11645,8 @@ msgstr "laatst gedownload" #: openforms/submissions/models/submission_report.py:39 msgid "" -"When the submission report was last accessed. This value is updated when the" -" report is downloaded." +"When the submission report was last accessed. This value is updated when the " +"report is downloaded." msgstr "" "Datum waarom het document voor het laatst is opgevraagd. Deze waarde wordt " "bijgewerkt zodra het document wordt gedownload." @@ -11523,8 +11730,7 @@ msgstr "gevuld vanuit prefill-gegevens" #: openforms/submissions/models/submission_value_variable.py:306 msgid "Can this variable be prefilled at the beginning of a submission?" msgstr "" -"Is de waarde bij het starten van de inzending door een prefill-plugin " -"gevuld?" +"Is de waarde bij het starten van de inzending door een prefill-plugin gevuld?" #: openforms/submissions/models/submission_value_variable.py:315 msgid "Submission value variable" @@ -11651,8 +11857,8 @@ msgstr "Sorry, u hebt geen toegang tot deze pagina (403)" #: openforms/templates/403.html:15 msgid "" -"You don't appear to have sufficient permissions to view this content. Please" -" contact an administrator if you believe this to be an error." +"You don't appear to have sufficient permissions to view this content. Please " +"contact an administrator if you believe this to be an error." msgstr "" "U lijkt onvoldoende rechten te hebben om deze inhoud te bekijken. Gelieve " "contact op te nemen met uw beheerder indien dit onterecht is." @@ -11801,8 +12007,8 @@ msgstr "RFC5646 taalcode, bijvoorbeeld `en` of `en-us`" #: openforms/translations/api/serializers.py:26 msgid "" -"Language name in its local representation. e.g. \"fy\" = \"frysk\", \"nl\" =" -" \"Nederlands\"" +"Language name in its local representation. e.g. \"fy\" = \"frysk\", \"nl\" = " +"\"Nederlands\"" msgstr "" "Taalnaam in de lokale weergave. Bijvoorbeeld \"fy\" = \"frysk\", \"nl\" = " "\"Nederlands\"" @@ -12184,11 +12390,11 @@ msgstr "Waarde om te valideren." #: openforms/validations/api/views.py:84 msgid "" -"ID of the validation plugin, see the " -"[`validation_plugin_list`](./#operation/validation_plugin_list) operation" +"ID of the validation plugin, see the [`validation_plugin_list`](./#operation/" +"validation_plugin_list) operation" msgstr "" -"ID van de validatie plugin. Zie de " -"[`validation_plugin_list`](./#operation/validation_plugin_list) operatie" +"ID van de validatie plugin. Zie de [`validation_plugin_list`](./#operation/" +"validation_plugin_list) operatie" #: openforms/validations/registry.py:67 #, python-brace-format @@ -12298,7 +12504,8 @@ msgstr "Geef een lijst van beschikbare servicebevragingconfiguraties" #: openforms/variables/api/viewsets.py:18 msgid "" -"Return a list of available services fetch configurations configured in the backend.\n" +"Return a list of available services fetch configurations configured in the " +"backend.\n" "\n" "Note that this endpoint is **EXPERIMENTAL**." msgstr "" @@ -12435,8 +12642,7 @@ msgstr "{header!s}: waarde '{value!s}' moet een string zijn maar is dat niet." #: openforms/variables/validators.py:83 msgid "" -"{header!s}: value '{value!s}' contains {illegal_chars}, which is not " -"allowed." +"{header!s}: value '{value!s}' contains {illegal_chars}, which is not allowed." msgstr "" "{header!s}: waarde '{value!s}' bevat {illegal_chars}, deze karakters zijn " "niet toegestaan." @@ -12449,15 +12655,13 @@ msgstr "" "{header!s}: waarde '{value!s}' mag niet starten of eindigen met whitespace." #: openforms/variables/validators.py:100 -msgid "" -"{header!s}: value '{value!s}' contains characters that are not allowed." +msgid "{header!s}: value '{value!s}' contains characters that are not allowed." msgstr "" "{header!s}: waarde '{value!s}' bevat karakters die niet toegestaan zijn." #: openforms/variables/validators.py:107 msgid "{header!s}: header '{header!s}' should be a string, but isn't." -msgstr "" -"{header!s}: header '{header!s}' moet een string zijn maar is dat niet." +msgstr "{header!s}: header '{header!s}' moet een string zijn maar is dat niet." #: openforms/variables/validators.py:113 msgid "" @@ -12487,8 +12691,8 @@ msgstr "" msgid "" "{parameter!s}: value '{value!s}' should be a list of strings, but isn't." msgstr "" -"{parameter!s}: de waarde '{value!s}' moet een lijst van strings zijn maar is" -" dat niet." +"{parameter!s}: de waarde '{value!s}' moet een lijst van strings zijn maar is " +"dat niet." #: openforms/variables/validators.py:164 msgid "query parameter key '{parameter!s}' should be a string, but isn't." @@ -12687,11 +12891,11 @@ msgstr "endpoint VrijeBerichten" #: stuf/models.py:85 msgid "" -"Endpoint for synchronous free messages, usually " -"'[...]/VerwerkSynchroonVrijBericht' or '[...]/VrijeBerichten'." +"Endpoint for synchronous free messages, usually '[...]/" +"VerwerkSynchroonVrijBericht' or '[...]/VrijeBerichten'." msgstr "" -"Endpoint voor synchrone vrije berichten, typisch " -"'[...]/VerwerkSynchroonVrijBericht' of '[...]/VrijeBerichten'." +"Endpoint voor synchrone vrije berichten, typisch '[...]/" +"VerwerkSynchroonVrijBericht' of '[...]/VrijeBerichten'." #: stuf/models.py:89 msgid "endpoint OntvangAsynchroon" @@ -12820,11 +13024,11 @@ msgstr "Binding address Bijstandsregelingen" #: suwinet/models.py:33 msgid "" -"Binding address for " -"{http://bkwi.nl/SuwiML/Diensten/Bijstandsregelingen/v0500}BijstandsregelingenBinding" +"Binding address for {http://bkwi.nl/SuwiML/Diensten/Bijstandsregelingen/" +"v0500}BijstandsregelingenBinding" msgstr "" -"Binding address voor " -"{http://bkwi.nl/SuwiML/Diensten/Bijstandsregelingen/v0500}BijstandsregelingenBinding" +"Binding address voor {http://bkwi.nl/SuwiML/Diensten/Bijstandsregelingen/" +"v0500}BijstandsregelingenBinding" #: suwinet/models.py:39 msgid "BRPDossierPersoonGSD Binding Address" @@ -12832,11 +13036,11 @@ msgstr "Binding address BRPDossierPersoonGSD" #: suwinet/models.py:41 msgid "" -"Binding address for " -"{http://bkwi.nl/SuwiML/Diensten/BRPDossierPersoonGSD/v0200}BRPBinding" +"Binding address for {http://bkwi.nl/SuwiML/Diensten/BRPDossierPersoonGSD/" +"v0200}BRPBinding" msgstr "" -"Binding address voor " -"{http://bkwi.nl/SuwiML/Diensten/BRPDossierPersoonGSD/v0200}BRPBinding" +"Binding address voor {http://bkwi.nl/SuwiML/Diensten/BRPDossierPersoonGSD/" +"v0200}BRPBinding" #: suwinet/models.py:46 msgid "DUODossierPersoonGSD Binding Address" @@ -12844,11 +13048,11 @@ msgstr "Binding address DUODossierPersoonGSD" #: suwinet/models.py:48 msgid "" -"Binding address for " -"{http://bkwi.nl/SuwiML/Diensten/DUODossierPersoonGSD/v0300}DUOBinding" +"Binding address for {http://bkwi.nl/SuwiML/Diensten/DUODossierPersoonGSD/" +"v0300}DUOBinding" msgstr "" -"Binding address voor " -"{http://bkwi.nl/SuwiML/Diensten/DUODossierPersoonGSD/v0300}DUOBinding" +"Binding address voor {http://bkwi.nl/SuwiML/Diensten/DUODossierPersoonGSD/" +"v0300}DUOBinding" #: suwinet/models.py:53 msgid "DUODossierStudiefinancieringGSD Binding Address" @@ -12856,11 +13060,11 @@ msgstr "Binding address DUODossierStudiefinancieringGSD" #: suwinet/models.py:55 msgid "" -"Binding address for " -"{http://bkwi.nl/SuwiML/Diensten/DUODossierStudiefinancieringGSD/v0200}DUOBinding" +"Binding address for {http://bkwi.nl/SuwiML/Diensten/" +"DUODossierStudiefinancieringGSD/v0200}DUOBinding" msgstr "" -"Binding address voor " -"{http://bkwi.nl/SuwiML/Diensten/DUODossierStudiefinancieringGSD/v0200}DUOBinding" +"Binding address voor {http://bkwi.nl/SuwiML/Diensten/" +"DUODossierStudiefinancieringGSD/v0200}DUOBinding" #: suwinet/models.py:60 msgid "GSDDossierReintegratie Binding Address" @@ -12868,11 +13072,11 @@ msgstr "Binding address GSDDossierReintegratie" #: suwinet/models.py:62 msgid "" -"Binding address for " -"{http://bkwi.nl/SuwiML/Diensten/GSDDossierReintegratie/v0200}GSDReintegratieBinding" +"Binding address for {http://bkwi.nl/SuwiML/Diensten/GSDDossierReintegratie/" +"v0200}GSDReintegratieBinding" msgstr "" -"Binding address voor " -"{http://bkwi.nl/SuwiML/Diensten/GSDDossierReintegratie/v0200}GSDReintegratieBinding" +"Binding address voor {http://bkwi.nl/SuwiML/Diensten/GSDDossierReintegratie/" +"v0200}GSDReintegratieBinding" #: suwinet/models.py:67 msgid "IBVerwijsindex Binding Address" @@ -12880,11 +13084,11 @@ msgstr "Binding address IBVerwijsindex" #: suwinet/models.py:69 msgid "" -"Binding address for " -"{http://bkwi.nl/SuwiML/Diensten/IBVerwijsindex/v0300}IBVerwijsindexBinding" +"Binding address for {http://bkwi.nl/SuwiML/Diensten/IBVerwijsindex/v0300}" +"IBVerwijsindexBinding" msgstr "" -"Binding address voor " -"{http://bkwi.nl/SuwiML/Diensten/IBVerwijsindex/v0300}IBVerwijsindexBinding" +"Binding address voor {http://bkwi.nl/SuwiML/Diensten/IBVerwijsindex/v0300}" +"IBVerwijsindexBinding" #: suwinet/models.py:74 msgid "KadasterDossierGSD Binding Address" @@ -12892,11 +13096,11 @@ msgstr "Binding address KadasterDossierGSD" #: suwinet/models.py:76 msgid "" -"Binding address for " -"{http://bkwi.nl/SuwiML/Diensten/KadasterDossierGSD/v0300}KadasterBinding" +"Binding address for {http://bkwi.nl/SuwiML/Diensten/KadasterDossierGSD/v0300}" +"KadasterBinding" msgstr "" -"Binding address voor " -"{http://bkwi.nl/SuwiML/Diensten/KadasterDossierGSD/v0300}KadasterBinding" +"Binding address voor {http://bkwi.nl/SuwiML/Diensten/KadasterDossierGSD/" +"v0300}KadasterBinding" #: suwinet/models.py:81 msgid "RDWDossierDigitaleDiensten Binding Address" @@ -12904,11 +13108,11 @@ msgstr "Binding address RDWDossierDigitaleDiensten" #: suwinet/models.py:83 msgid "" -"Binding address for " -"{http://bkwi.nl/SuwiML/Diensten/RDWDossierDigitaleDiensten/v0200}RDWBinding" +"Binding address for {http://bkwi.nl/SuwiML/Diensten/" +"RDWDossierDigitaleDiensten/v0200}RDWBinding" msgstr "" -"Binding address voor " -"{http://bkwi.nl/SuwiML/Diensten/RDWDossierDigitaleDiensten/v0200}RDWBinding" +"Binding address voor {http://bkwi.nl/SuwiML/Diensten/" +"RDWDossierDigitaleDiensten/v0200}RDWBinding" #: suwinet/models.py:88 msgid "RDWDossierGSD Binding Address" @@ -12916,11 +13120,11 @@ msgstr "Binding address RDWDossierGSD" #: suwinet/models.py:90 msgid "" -"Binding address for " -"{http://bkwi.nl/SuwiML/Diensten/RDWDossierGSD/v0200}RDWBinding" +"Binding address for {http://bkwi.nl/SuwiML/Diensten/RDWDossierGSD/v0200}" +"RDWBinding" msgstr "" -"Binding address voor " -"{http://bkwi.nl/SuwiML/Diensten/RDWDossierGSD/v0200}RDWBinding" +"Binding address voor {http://bkwi.nl/SuwiML/Diensten/RDWDossierGSD/v0200}" +"RDWBinding" #: suwinet/models.py:95 msgid "SVBDossierPersoonGSD Binding Address" @@ -12928,11 +13132,11 @@ msgstr "Binding address SVBDossierPersoonGSD" #: suwinet/models.py:97 msgid "" -"Binding address for " -"{http://bkwi.nl/SuwiML/Diensten/SVBDossierPersoonGSD/v0200}SVBBinding" +"Binding address for {http://bkwi.nl/SuwiML/Diensten/SVBDossierPersoonGSD/" +"v0200}SVBBinding" msgstr "" -"Binding address voor " -"{http://bkwi.nl/SuwiML/Diensten/SVBDossierPersoonGSD/v0200}SVBBinding" +"Binding address voor {http://bkwi.nl/SuwiML/Diensten/SVBDossierPersoonGSD/" +"v0200}SVBBinding" #: suwinet/models.py:102 msgid "UWVDossierAanvraagUitkeringStatusGSD Binding Address" @@ -12940,11 +13144,11 @@ msgstr "Binding address UWVDossierAanvraagUitkeringStatusGSD" #: suwinet/models.py:104 msgid "" -"Binding address for " -"{http://bkwi.nl/SuwiML/Diensten/UWVDossierAanvraagUitkeringStatusGSD/v0200}UWVAanvraagUitkeringStatusBinding" +"Binding address for {http://bkwi.nl/SuwiML/Diensten/" +"UWVDossierAanvraagUitkeringStatusGSD/v0200}UWVAanvraagUitkeringStatusBinding" msgstr "" -"Binding address voor " -"{http://bkwi.nl/SuwiML/Diensten/UWVDossierAanvraagUitkeringStatusGSD/v0200}UWVAanvraagUitkeringStatusBinding" +"Binding address voor {http://bkwi.nl/SuwiML/Diensten/" +"UWVDossierAanvraagUitkeringStatusGSD/v0200}UWVAanvraagUitkeringStatusBinding" #: suwinet/models.py:109 msgid "UWVDossierInkomstenGSDDigitaleDiensten Binding Address" @@ -12952,11 +13156,11 @@ msgstr "Binding address UWVDossierInkomstenGSDDigitaleDiensten" #: suwinet/models.py:111 msgid "" -"Binding address for " -"{http://bkwi.nl/SuwiML/Diensten/UWVDossierInkomstenGSDDigitaleDiensten/v0200}UWVIkvBinding" +"Binding address for {http://bkwi.nl/SuwiML/Diensten/" +"UWVDossierInkomstenGSDDigitaleDiensten/v0200}UWVIkvBinding" msgstr "" -"Binding address voor " -"{http://bkwi.nl/SuwiML/Diensten/UWVDossierInkomstenGSDDigitaleDiensten/v0200}UWVIkvBinding" +"Binding address voor {http://bkwi.nl/SuwiML/Diensten/" +"UWVDossierInkomstenGSDDigitaleDiensten/v0200}UWVIkvBinding" #: suwinet/models.py:116 msgid "UWVDossierInkomstenGSD Binding Address" @@ -12964,11 +13168,11 @@ msgstr "Binding address UWVDossierInkomstenGSD" #: suwinet/models.py:118 msgid "" -"Binding address for " -"{http://bkwi.nl/SuwiML/Diensten/UWVDossierInkomstenGSD/v0200}UWVIkvBinding" +"Binding address for {http://bkwi.nl/SuwiML/Diensten/UWVDossierInkomstenGSD/" +"v0200}UWVIkvBinding" msgstr "" -"Binding address voor " -"{http://bkwi.nl/SuwiML/Diensten/UWVDossierInkomstenGSD/v0200}UWVIkvBinding" +"Binding address voor {http://bkwi.nl/SuwiML/Diensten/UWVDossierInkomstenGSD/" +"v0200}UWVIkvBinding" #: suwinet/models.py:123 msgid "UWVDossierQuotumArbeidsbeperktenGSD Binding Address" @@ -12976,11 +13180,11 @@ msgstr "Binding address UWVDossierQuotumArbeidsbeperktenGSD" #: suwinet/models.py:125 msgid "" -"Binding address for " -"{http://bkwi.nl/SuwiML/Diensten/UWVDossierQuotumArbeidsbeperktenGSD/v0300}UWVArbeidsbeperktenBinding" +"Binding address for {http://bkwi.nl/SuwiML/Diensten/" +"UWVDossierQuotumArbeidsbeperktenGSD/v0300}UWVArbeidsbeperktenBinding" msgstr "" -"Binding address voor " -"{http://bkwi.nl/SuwiML/Diensten/UWVDossierQuotumArbeidsbeperktenGSD/v0300}UWVArbeidsbeperktenBinding" +"Binding address voor {http://bkwi.nl/SuwiML/Diensten/" +"UWVDossierQuotumArbeidsbeperktenGSD/v0300}UWVArbeidsbeperktenBinding" #: suwinet/models.py:130 msgid "UWVDossierWerknemersverzekeringenGSDDigitaleDiensten Binding Address" @@ -12988,11 +13192,11 @@ msgstr "Binding address UWVDossierWerknemersverzekeringenGSDDigitaleDiensten" #: suwinet/models.py:133 msgid "" -"Binding address for " -"{http://bkwi.nl/SuwiML/Diensten/UWVDossierWerknemersverzekeringenGSDDigitaleDiensten/v0200}UWVBinding" +"Binding address for {http://bkwi.nl/SuwiML/Diensten/" +"UWVDossierWerknemersverzekeringenGSDDigitaleDiensten/v0200}UWVBinding" msgstr "" -"Binding address voor " -"{http://bkwi.nl/SuwiML/Diensten/UWVDossierWerknemersverzekeringenGSDDigitaleDiensten/v0200}UWVBinding" +"Binding address voor {http://bkwi.nl/SuwiML/Diensten/" +"UWVDossierWerknemersverzekeringenGSDDigitaleDiensten/v0200}UWVBinding" #: suwinet/models.py:138 msgid "UWVDossierWerknemersverzekeringenGSD Binding Address" @@ -13000,11 +13204,11 @@ msgstr "Binding address UWVDossierWerknemersverzekeringenGSD" #: suwinet/models.py:140 msgid "" -"Binding address for " -"{http://bkwi.nl/SuwiML/Diensten/UWVDossierWerknemersverzekeringenGSD/v0200}UWVBinding" +"Binding address for {http://bkwi.nl/SuwiML/Diensten/" +"UWVDossierWerknemersverzekeringenGSD/v0200}UWVBinding" msgstr "" -"Binding address voor " -"{http://bkwi.nl/SuwiML/Diensten/UWVDossierWerknemersverzekeringenGSD/v0200}UWVBinding" +"Binding address voor {http://bkwi.nl/SuwiML/Diensten/" +"UWVDossierWerknemersverzekeringenGSD/v0200}UWVBinding" #: suwinet/models.py:145 msgid "UWVWbDossierPersoonGSD Binding Address" @@ -13012,11 +13216,11 @@ msgstr "Binding address UWVWbDossierPersoonGSD" #: suwinet/models.py:147 msgid "" -"Binding address for " -"{http://bkwi.nl/SuwiML/Diensten/UWVWbDossierPersoonGSD/v0200}UwvWbBinding" +"Binding address for {http://bkwi.nl/SuwiML/Diensten/UWVWbDossierPersoonGSD/" +"v0200}UwvWbBinding" msgstr "" -"Binding address voor " -"{http://bkwi.nl/SuwiML/Diensten/UWVWbDossierPersoonGSD/v0200}UwvWbBinding" +"Binding address voor {http://bkwi.nl/SuwiML/Diensten/UWVWbDossierPersoonGSD/" +"v0200}UwvWbBinding" #: suwinet/models.py:154 msgid "Suwinet configuration" diff --git a/src/openforms/contrib/open_producten/__init__.py b/src/openforms/contrib/open_producten/__init__.py index 04f2f9d3d3..e69de29bb2 100644 --- a/src/openforms/contrib/open_producten/__init__.py +++ b/src/openforms/contrib/open_producten/__init__.py @@ -1 +0,0 @@ -PRICE_OPTION_KEY = "productPrice" diff --git a/src/openforms/contrib/open_producten/api/serializers.py b/src/openforms/contrib/open_producten/api/serializers.py deleted file mode 100644 index 2e46fabd1a..0000000000 --- a/src/openforms/contrib/open_producten/api/serializers.py +++ /dev/null @@ -1,27 +0,0 @@ -from rest_framework import serializers - -from openforms.products.models import Product as ProductType - -from ..models import Price, PriceOption - - -class PriceOptionSerializer(serializers.ModelSerializer): - class Meta: - model = PriceOption - exclude = ("price",) - - -class PriceSerializer(serializers.ModelSerializer): - options = PriceOptionSerializer(many=True) - - class Meta: - model = Price - fields = "__all__" - - -class ProductTypeSerializer(serializers.ModelSerializer): - open_producten_price = PriceSerializer() - - class Meta: - model = ProductType - exclude = ("id", "information", "price") diff --git a/src/openforms/contrib/open_producten/api/viewsets.py b/src/openforms/contrib/open_producten/api/viewsets.py deleted file mode 100644 index b2955ca982..0000000000 --- a/src/openforms/contrib/open_producten/api/viewsets.py +++ /dev/null @@ -1,41 +0,0 @@ -from django.utils.translation import gettext_lazy as _ - -from drf_spectacular.utils import extend_schema, extend_schema_view -from rest_framework import authentication, permissions, viewsets - -from openforms.products.models import Product as ProductType - -from .serializers import ProductTypeSerializer - - -@extend_schema_view( - list=extend_schema( - summary=_("List available products with current price options"), - ), - retrieve=extend_schema( - summary=_("Retrieve details of a single product"), - ), -) -class PriceViewSet(viewsets.ReadOnlyModelViewSet): - """ - List and retrieve the products registered in the admin interface. - - Note that these endpoints are only available to authenticated admin users. The - products functionality is minimal to be able to register prices. In the future, - probably a dedicated products catalogue will become relevant. - """ - - # queryset = ProductType.objects.all() - authentication_classes = ( - authentication.SessionAuthentication, - authentication.TokenAuthentication, - ) - permission_classes = (permissions.IsAdminUser,) - serializer_class = ProductTypeSerializer - lookup_field = "open_product_uuid" - lookup_url_kwarg = "uuid" - - def get_queryset(self): - return ProductType.objects.filter( - open_producten_price__isnull=False, is_deleted=False - ).distinct() diff --git a/src/openforms/contrib/open_producten/management/commands/import_prices.py b/src/openforms/contrib/open_producten/management/commands/import_prices.py index 7ab7c8bfc9..09ed0bbe99 100644 --- a/src/openforms/contrib/open_producten/management/commands/import_prices.py +++ b/src/openforms/contrib/open_producten/management/commands/import_prices.py @@ -21,12 +21,8 @@ def handle(self, *args, **options): ( created, updated, - deleted_count, - soft_deleted_count, ) = price_importer.import_product_types() - self.stdout.write(f"deleted {deleted_count} product type(s):\n") - self.stdout.write(f"soft deleted {soft_deleted_count} product type(s):\n") self.stdout.write(f"updated {len(updated)} exising product type(s)") self.stdout.write(f"created {len(created)} new product type(s):\n") diff --git a/src/openforms/contrib/open_producten/migrations/0001_initial.py b/src/openforms/contrib/open_producten/migrations/0001_initial.py index a7892a5b8b..4e75cdbd77 100644 --- a/src/openforms/contrib/open_producten/migrations/0001_initial.py +++ b/src/openforms/contrib/open_producten/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 4.2.16 on 2024-10-10 12:59 +# Generated by Django 4.2.16 on 2024-10-10 15:06 import datetime from decimal import Decimal @@ -12,6 +12,10 @@ class Migration(migrations.Migration): initial = True dependencies = [ + ( + "products", + "0002_product_is_deleted_product_upl_name_product_upl_uri_and_more", + ), ("zgw_consumers", "0020_service_timeout"), ] @@ -33,10 +37,21 @@ class Migration(migrations.Migration): verbose_name="Start date", ), ), + ( + "product_type", + models.ForeignKey( + help_text="The product type that this price belongs to", + on_delete=django.db.models.deletion.CASCADE, + related_name="prices", + to="products.product", + verbose_name="Product type", + ), + ), ], options={ "verbose_name": "Price", "verbose_name_plural": "Prices", + "unique_together": {("product_type", "valid_from")}, }, ), migrations.CreateModel( diff --git a/src/openforms/contrib/open_producten/models.py b/src/openforms/contrib/open_producten/models.py index f59ace4817..706b886113 100644 --- a/src/openforms/contrib/open_producten/models.py +++ b/src/openforms/contrib/open_producten/models.py @@ -31,7 +31,49 @@ class Meta: abstract = True +class ProductType(models.Model): + upl_name = models.CharField( + verbose_name=_("Name"), + max_length=100, + help_text=_("Uniform product name"), + blank=True, + null=True, + editable=False, + ) + + upl_uri = models.URLField( + verbose_name=_("Url"), + blank=True, + null=True, + editable=False, + help_text=_("Url to the upn definition."), + ) + + is_deleted = models.BooleanField( + verbose_name=_("Is deleted"), + default=False, + help_text=_( + "set when the product is deleted in open producten but is linked to existing submission." + ), + ) + + @property + def open_producten_price(self): + now = datetime.date.today() + return self.prices.filter(valid_from__lte=now).order_by("valid_from").last() + + class Meta: + abstract = True + + class Price(BaseModel): + product_type = models.ForeignKey( + "products.Product", + verbose_name=_("Product type"), + on_delete=models.CASCADE, + related_name="prices", + help_text=_("The product type that this price belongs to"), + ) valid_from = models.DateField( verbose_name=_("Start date"), validators=[MinValueValidator(datetime.date.today)], @@ -42,9 +84,10 @@ class Price(BaseModel): class Meta: verbose_name = _("Price") verbose_name_plural = _("Prices") + unique_together = ("product_type", "valid_from") def __str__(self): - return f"{self.product_type.name} {self.valid_from}" + return f"{self.product_type.upl_name} {self.valid_from}" class PriceOption(BaseModel): @@ -74,43 +117,3 @@ class Meta: def __str__(self): return f"{self.description} {self.amount}" - - -class ProductType(models.Model): - open_producten_price = models.OneToOneField( - Price, - verbose_name=_("Price"), - on_delete=models.CASCADE, - related_name="product_type", - help_text=_("The price this option belongs to"), - blank=True, - null=True, - editable=False, - ) - upl_name = models.CharField( - verbose_name=_("Name"), - max_length=100, - help_text=_("Uniform product name"), - blank=True, - null=True, - editable=False, - ) - - upl_uri = models.URLField( - verbose_name=_("Url"), - blank=True, - null=True, - editable=False, - help_text=_("Url to the upn definition."), - ) - - is_deleted = models.BooleanField( - verbose_name=_("Is deleted"), - default=False, - help_text=_( - "set when the product is deleted in open producten but is linked to existing submission." - ), - ) - - class Meta: - abstract = True diff --git a/src/openforms/contrib/open_producten/price_import.py b/src/openforms/contrib/open_producten/price_import.py index c073a88e2a..64b50018e2 100644 --- a/src/openforms/contrib/open_producten/price_import.py +++ b/src/openforms/contrib/open_producten/price_import.py @@ -1,6 +1,4 @@ from django.db import models, transaction -from django.db.models import Q -from django.db.models.deletion import ProtectedError import openforms.contrib.open_producten.api_models as api_models from openforms.contrib.open_producten.models import Price, PriceOption @@ -13,8 +11,6 @@ def __init__(self, client): self.client = client self.created_objects = [] self.updated_objects = [] - self.deleted_count = 0 - self.soft_deleted_count = 0 self.product_types = [] def _add_to_log_list(self, instance: models.Model, created: bool): @@ -28,12 +24,9 @@ def import_product_types(self): self.product_types = self.client.get_current_prices() self._handle_product_types(self.product_types) - self._delete_non_updated_objects() return ( self.created_objects, self.updated_objects, - self.deleted_count, - self.soft_deleted_count, ) def _handle_options(self, options: [api_models.PriceOption], price_instance: Price): @@ -48,11 +41,12 @@ def _handle_options(self, options: [api_models.PriceOption], price_instance: Pri ) self._add_to_log_list(option_instance, created) - def _update_or_create_price(self, price: api_models.Price): + def _update_or_create_price(self, price: api_models.Price, product_type_instance): price_instance, created = Price.objects.update_or_create( uuid=price.id, defaults={ "valid_from": price.valid_from, + "product_type": product_type_instance, }, ) self._add_to_log_list(price_instance, created) @@ -61,35 +55,18 @@ def _update_or_create_price(self, price: api_models.Price): def _handle_product_types(self, product_types: list[api_models.ProductType]): for product_type in product_types: - if product_type.current_price: - price_instance = self._update_or_create_price( - product_type.current_price - ) - self._handle_options(product_type.current_price.options, price_instance) - else: - price_instance = None - product_type_instance, created = ProductType.objects.update_or_create( uuid=product_type.id, defaults={ "name": product_type.name, "upl_uri": product_type.upl_uri, "upl_name": product_type.upl_name, - "open_producten_price": price_instance, }, ) self._add_to_log_list(product_type_instance, created) - def _delete_non_updated_objects(self): - objects_to_be_deleted = ProductType.objects.exclude( - Q(uuid__in=self.product_types) | Q(uuid=True) - ) - - for obj in objects_to_be_deleted: - try: - obj.delete() - self.deleted_count += 1 - except ProtectedError: - obj.is_deleted = True - obj.save() - self.soft_deleted_count += 1 + if product_type.current_price: + price_instance = self._update_or_create_price( + product_type.current_price, product_type_instance + ) + self._handle_options(product_type.current_price.options, price_instance) diff --git a/src/openforms/contrib/open_producten/api/__init__.py b/src/openforms/contrib/open_producten/tests/__init__.py similarity index 100% rename from src/openforms/contrib/open_producten/api/__init__.py rename to src/openforms/contrib/open_producten/tests/__init__.py diff --git a/src/openforms/contrib/open_producten/tests/factories.py b/src/openforms/contrib/open_producten/tests/factories.py new file mode 100644 index 0000000000..d89fda8d41 --- /dev/null +++ b/src/openforms/contrib/open_producten/tests/factories.py @@ -0,0 +1,24 @@ +import factory.fuzzy + +from openforms.products.tests.factories import ProductFactory + +from ..models import Price, PriceOption + + +class PriceFactory(factory.django.DjangoModelFactory): + uuid = factory.Faker("uuid4") + valid_from = factory.Faker("date") + product_type = factory.SubFactory(ProductFactory) + + class Meta: + model = Price + + +class PriceOptionFactory(factory.django.DjangoModelFactory): + uuid = factory.Faker("uuid4") + description = factory.Faker("sentence") + amount = factory.fuzzy.FuzzyDecimal(1, 10) + price = factory.SubFactory(PriceFactory) + + class Meta: + model = PriceOption diff --git a/src/openforms/contrib/open_producten/tests/helpers.py b/src/openforms/contrib/open_producten/tests/helpers.py new file mode 100644 index 0000000000..a862a81188 --- /dev/null +++ b/src/openforms/contrib/open_producten/tests/helpers.py @@ -0,0 +1,31 @@ +from datetime import date + +from ..api_models import Price, PriceOption, ProductType + + +def create_price_option(uuid): + return PriceOption( + id=uuid, + amount="10.00", + description="description", + ) + + +def create_price(price_uuid, option_uuid): + return Price( + id=price_uuid, + valid_from=date.today(), + options=[ + create_price_option(option_uuid).__dict__ + ], # __dict__ is needed for zgw_consumers.api_models.Model _type_cast + ) + + +def create_product_type(product_uuid, price_uuid, option_uuid): + return ProductType( + id=product_uuid, + current_price=create_price(price_uuid, option_uuid), + upl_uri="http://standaarden.overheid.nl/owms/terms/AangifteVertrekBuitenland", + upl_name="aangifte vertrek buitenland", + name="aangifte vertrek buitenland", + ) diff --git a/src/openforms/contrib/open_producten/tests/test_models.py b/src/openforms/contrib/open_producten/tests/test_models.py new file mode 100644 index 0000000000..8c5deeb849 --- /dev/null +++ b/src/openforms/contrib/open_producten/tests/test_models.py @@ -0,0 +1,32 @@ +import datetime +from uuid import UUID + +from django.test import TestCase + +from freezegun import freeze_time + +from openforms.contrib.open_producten.tests.factories import PriceFactory +from openforms.products.tests.factories import ProductFactory + + +@freeze_time("2024-02-01") +class TestProductType(TestCase): + + def setUp(self): + self.product = ProductFactory() + + def test_open_producten_price_with_valid_price(self): + price = PriceFactory( + valid_from=datetime.date(2024, 1, 1), product_type=self.product + ) + + self.assertEqual(self.product.open_producten_price.uuid, UUID(price.uuid)) + + def test_open_producten_price_with_no_invalid_prices(self): + PriceFactory(valid_from=datetime.date(2024, 3, 1), product_type=self.product) + + self.assertEqual(self.product.prices.count(), 1) + self.assertEqual(self.product.open_producten_price, None) + + def test_open_producten_price_with_no_prices(self): + self.assertEqual(self.product.open_producten_price, None) diff --git a/src/openforms/contrib/open_producten/tests/test_price_import.py b/src/openforms/contrib/open_producten/tests/test_price_import.py new file mode 100644 index 0000000000..6001eeb00d --- /dev/null +++ b/src/openforms/contrib/open_producten/tests/test_price_import.py @@ -0,0 +1,108 @@ +from unittest.mock import MagicMock +from uuid import uuid4 + +from django.db import IntegrityError +from django.test import TestCase + +from openforms.products.models import Product +from openforms.products.tests.factories import ProductFactory + +from ..models import Price, PriceOption +from ..price_import import PriceImporter +from .factories import PriceFactory +from .helpers import create_price, create_price_option, create_product_type + + +class TestPriceImport(TestCase): + + def setUp(self): + self.client = MagicMock() + + def test_handle_options(self): + option_uuid = uuid4() + price = PriceFactory() + importer = PriceImporter(self.client) + for create in (True, False): + with self.subTest( + "should create instance if uuid does not exist" + if create + else "should update instance if uuid exists" + ): + option = create_price_option(option_uuid) + importer._handle_options([option], price) + instance = PriceOption.objects.first() + + self.assertEqual(Price.objects.count(), 1) + self.assertEqual(instance.uuid, option_uuid) + + def test_update_or_create_price(self): + price_uuid = uuid4() + product = ProductFactory() + importer = PriceImporter(self.client) + for create in (True, False): + with self.subTest( + "should create instance if uuid does not exist" + if create + else "should update instance if uuid exists" + ): + + price = create_price(price_uuid, uuid4()) + importer._update_or_create_price(price, product) + instance = Price.objects.first() + + self.assertEqual(Price.objects.count(), 1) + self.assertEqual(instance.uuid, price_uuid) + + def test_create_price_unique_valid_from(self): + product = ProductFactory() + importer = PriceImporter(self.client) + + price = create_price(uuid4(), uuid4()) + importer._update_or_create_price(price, product) + + with self.assertRaises(IntegrityError): + price = create_price(uuid4(), uuid4()) + importer._update_or_create_price(price, product) + + def test_handle_product_types(self): + product_type_uuid = uuid4() + price_uuid = uuid4() + + importer = PriceImporter(self.client) + for create in (True, False): + with self.subTest( + "should create instance if uuid does not exist" + if create + else "should update instance if uuid exists" + ): + product_type = create_product_type( + product_type_uuid, price_uuid, uuid4() + ) + importer._handle_product_types([product_type]) + instance = Product.objects.first() + + self.assertEqual(Product.objects.count(), 1) + self.assertEqual(instance.uuid, product_type_uuid) + + def test_import_product_types(self): + product_type = create_product_type(uuid4(), uuid4(), uuid4()) + self.client.get_current_prices.return_value = [product_type] + + importer = PriceImporter(self.client) + created, updated = importer.import_product_types() + + self.assertEqual(Product.objects.count(), 1) + self.assertEqual(Price.objects.count(), 1) + self.assertEqual(PriceOption.objects.count(), 1) + + product = Product.objects.first() + price = Price.objects.first() + option = PriceOption.objects.first() + + self.assertEqual(price.options.count(), 1) + self.assertEqual(product.prices.count(), 1) + + self.assertEqual(product.open_producten_price, price) + + self.assertEqual(updated, []) + self.assertEqual(created, [product, price, option]) diff --git a/src/openforms/fixtures/admin_index_unlisted.json b/src/openforms/fixtures/admin_index_unlisted.json index cf01210cff..b59f63078e 100644 --- a/src/openforms/fixtures/admin_index_unlisted.json +++ b/src/openforms/fixtures/admin_index_unlisted.json @@ -22,6 +22,7 @@ "registrations_microsoft_graph.MSGraphRegistrationConfig", "objects_api.ObjectsAPIGroupConfig", "registrations_objects_api.ObjectsAPIConfig", + "open_producten.OpenProductenConfig", "stuf.StufService", "stuf_bg.StufBGConfig", "stuf_zds.StufZDSConfig", diff --git a/src/openforms/formio/components/custom.py b/src/openforms/formio/components/custom.py index 7b8c98244b..ec13b5bfa6 100644 --- a/src/openforms/formio/components/custom.py +++ b/src/openforms/formio/components/custom.py @@ -356,26 +356,29 @@ class ProductPrice(BasePlugin): def mutate_config_dynamically( self, component: Component, submission: Submission, data: DataMapping ) -> None: - current_price = submission.form.product.open_producten_price component.update( { "type": "radio", - "label": "select a price option", "fieldSet": False, "inline": False, "inputType": "radio", "validate": {"required": True}, } ) + current_price = submission.form.product.open_producten_price + if current_price: + component["values"] = [ + { + "label": f"{option.description}: € {option.amount}", + "value": option.uuid, + } + for option in current_price.options.all() + ] - component["values"] = [ - { - "label": f"{option.description}: € {option.amount}", - "value": option.uuid, - } - for option in current_price.options.all() - ] + if not component["values"]: + logger.warning("Product does not have price options.") + # TODO: error? @register("bsn") diff --git a/src/openforms/formio/tests/search_strategies.py b/src/openforms/formio/tests/search_strategies.py index c9f7ea57c0..5583bc1dda 100644 --- a/src/openforms/formio/tests/search_strategies.py +++ b/src/openforms/formio/tests/search_strategies.py @@ -344,6 +344,16 @@ def np_family_members_component(): ) +def product_price_component(): + optional = { + "description": jsonb_text(), + "tooltip": jsonb_text(), + } + return st.fixed_dictionaries( + _minimal_component_mapping("productPrice"), optional=optional + ) + + def signature_component(): optional = { "description": jsonb_text(), @@ -480,6 +490,7 @@ def any_component(stop_nesting=False): bsn_component(), address_nl_component(), np_family_members_component(), + product_price_component(), signature_component(), cosign_v2_component(), map_component(), diff --git a/src/openforms/formio/tests/test_product_price.py b/src/openforms/formio/tests/test_product_price.py new file mode 100644 index 0000000000..8ff9e48b83 --- /dev/null +++ b/src/openforms/formio/tests/test_product_price.py @@ -0,0 +1,87 @@ +import datetime +from uuid import UUID + +from django.test import TestCase + +from rest_framework.test import APIRequestFactory + +from openforms.contrib.open_producten.tests.factories import ( + PriceFactory, + PriceOptionFactory, +) +from openforms.formio.datastructures import FormioConfigurationWrapper +from openforms.formio.dynamic_config import rewrite_formio_components +from openforms.submissions.tests.factories import SubmissionFactory + +request_factory = APIRequestFactory() + + +class ProductPriceConfigurationTests(TestCase): + + def test_mutate_config_dynamically_changes_type_and_adds_options(self): + component = { + "type": "productPrice", + "key": "productPrice", + "label": "select a price option", + } + + price = PriceFactory.create(valid_from=datetime.date(2024, 1, 1)) + price_option = PriceOptionFactory.create(price=price) + + config_wrapper = FormioConfigurationWrapper({"components": [component]}) + submission = SubmissionFactory.create(form__product=price.product_type) + + new_config_wrapper = rewrite_formio_components(config_wrapper, submission) + new_component = new_config_wrapper.configuration["components"][0] + self.assertEqual( + new_component, + { + "type": "radio", + "key": "productPrice", + "label": "select a price option", + "fieldSet": False, + "inline": False, + "inputType": "radio", + "validate": {"required": True}, + "values": [ + { + "label": f"{price_option.description}: € {price_option.amount}", + "value": UUID(price_option.uuid), + }, + ], + }, + ) + + def test_mutate_config_dynamically_changes_type_and_adds_options(self): + component = { + "type": "productPrice", + "key": "productPrice", + "label": "select a price option", + } + + price = PriceFactory.create(valid_from=datetime.date(2024, 1, 1)) + price_option = PriceOptionFactory.create(price=price) + + config_wrapper = FormioConfigurationWrapper({"components": [component]}) + submission = SubmissionFactory.create(form__product=price.product_type) + + new_config_wrapper = rewrite_formio_components(config_wrapper, submission) + new_component = new_config_wrapper.configuration["components"][0] + self.assertEqual( + new_component, + { + "type": "radio", + "key": "productPrice", + "label": "select a price option", + "fieldSet": False, + "inline": False, + "inputType": "radio", + "validate": {"required": True}, + "values": [ + { + "label": f"{price_option.description}: € {price_option.amount}", + "value": UUID(price_option.uuid), + }, + ], + }, + ) diff --git a/src/openforms/formio/tests/test_search_strategies.py b/src/openforms/formio/tests/test_search_strategies.py index 7435ab68c3..ebee160f1f 100644 --- a/src/openforms/formio/tests/test_search_strategies.py +++ b/src/openforms/formio/tests/test_search_strategies.py @@ -36,6 +36,7 @@ password_component, phone_number_component, postcode_component, + product_price_component, radio_component, select_component, selectboxes_component, @@ -204,6 +205,13 @@ def test_np_family_members_component(self, component: Component): self.assertIn("key", component) self.assertIn("label", component) + @given(product_price_component()) + def test_product_price_component(self, component: Component): + assert "type" in component + self.assertEqual(component["type"], "productPrice") + self.assertIn("key", component) + self.assertIn("label", component) + @given(signature_component()) def test_signature_component(self, component: Component): assert "type" in component diff --git a/src/openforms/forms/tests/test_translations_converter.py b/src/openforms/forms/tests/test_translations_converter.py index f83af22ba0..c1af08a74d 100644 --- a/src/openforms/forms/tests/test_translations_converter.py +++ b/src/openforms/forms/tests/test_translations_converter.py @@ -28,6 +28,7 @@ password_component, phone_number_component, postcode_component, + product_price_component, radio_component, select_component, selectboxes_component, @@ -196,6 +197,12 @@ def test_np_family_members_component(self, component: Component): self.assertLabelsTranslated(component) + @given(product_price_component()) + def test_product_price_component(self, component: Component): + do_processing(component) + + self.assertLabelsTranslated(component) + @given(signature_component()) def test_signature_component(self, component: Component): do_processing(component) diff --git a/src/openforms/forms/validators.py b/src/openforms/forms/validators.py index bf4bba7e32..f154ed92e0 100644 --- a/src/openforms/forms/validators.py +++ b/src/openforms/forms/validators.py @@ -192,13 +192,25 @@ def validate_price_option( ) ) - if price_components and not hasattr(form_product, "open_producten_price"): - raise ValidationError( - _( - "Product selected for productPrice component does not have a price from Open Producten" + if price_components: + if not form_product: + raise ValidationError( + _("No product has been selected for productPrice component") ) - ) - if not price_components and hasattr(form_product, "open_producten_price"): + + if not form_product.price_options: + raise ValidationError( + _( + "Product selected for productPrice component does not have a price from Open Producten" + ) + ) + + if not price_components[0]["validate"]["required"]: + raise ValidationError( + _("productPrice component is not currently not required") + ) + + elif not price_components and form_product and form_product.open_producten_price: raise ValidationError( _("Form has product with price options but not a productPrice component") ) diff --git a/src/openforms/js/compiled-lang/en.json b/src/openforms/js/compiled-lang/en.json index 67bd566692..290715a40a 100644 --- a/src/openforms/js/compiled-lang/en.json +++ b/src/openforms/js/compiled-lang/en.json @@ -2757,12 +2757,6 @@ "value": "Whether the user is allowed to submit this form or not, and whether the overview page should be shown if they are not." } ], - "QXsAuR": [ - { - "type": 0, - "value": "Product to fetch prices for" - } - ], "QaPqxz": [ { "type": 0, @@ -5729,12 +5723,6 @@ "value": "Do not display the configured label and top line as the header in the fieldset." } ], - "uuKVtO": [ - { - "type": 0, - "value": "Product" - } - ], "vAZDY4": [ { "type": 0, diff --git a/src/openforms/js/compiled-lang/nl.json b/src/openforms/js/compiled-lang/nl.json index c065ec774a..8d72231640 100644 --- a/src/openforms/js/compiled-lang/nl.json +++ b/src/openforms/js/compiled-lang/nl.json @@ -2774,12 +2774,6 @@ "value": "Geeft aan of de gebruiker het formulier kan inzenden of niet, en of een overzichtspagina getoond wordt indien niet." } ], - "QXsAuR": [ - { - "type": 0, - "value": "Product waarvoor prijzen worden opgehaald" - } - ], "QaPqxz": [ { "type": 0, @@ -5751,12 +5745,6 @@ "value": "Verberg de koptekst en de lijn boven de veldengroep in het formulier." } ], - "uuKVtO": [ - { - "type": 0, - "value": "Product" - } - ], "vAZDY4": [ { "type": 0, diff --git a/src/openforms/js/components/admin/form_design/AuthenticationWarning.js b/src/openforms/js/components/admin/form_design/AuthenticationWarning.js index fbd69975f5..6ab50bf1da 100644 --- a/src/openforms/js/components/admin/form_design/AuthenticationWarning.js +++ b/src/openforms/js/components/admin/form_design/AuthenticationWarning.js @@ -5,7 +5,7 @@ import {FormattedMessage} from 'react-intl'; import MessageList from 'components/admin/MessageList'; -const CUSTOM_FIELD_TYPES = ['npFamilyMembers']; // TODO: login required for Product Price? +const CUSTOM_FIELD_TYPES = ['npFamilyMembers']; const AuthenticationWarning = ({loginRequired, configuration}) => { if (loginRequired) return null; diff --git a/src/openforms/js/components/admin/form_design/constants.js b/src/openforms/js/components/admin/form_design/constants.js index e70c3ab4d7..e5518c95c0 100644 --- a/src/openforms/js/components/admin/form_design/constants.js +++ b/src/openforms/js/components/admin/form_design/constants.js @@ -5,7 +5,6 @@ export const OBJECTS_API_OBJECTTYPES_ENDPOINT = '/api/v2/objects-api/object-type export const REGISTRATION_OBJECTS_TARGET_PATHS = '/api/v2/registration/plugins/objects-api/target-paths'; export const AUTH_PLUGINS_ENDPOINT = '/api/v2/authentication/plugins'; -export const PRODUCT_PRICES_ENDPOINT = '/api/v2/product_prices'; export const PREFILL_PLUGINS_ENDPOINT = '/api/v2/prefill/plugins'; export const DMN_PLUGINS_ENDPOINT = '/api/v2/dmn/plugins'; export const PAYMENT_PLUGINS_ENDPOINT = '/api/v2/payment/plugins'; diff --git a/src/openforms/js/components/form/productPrice.js b/src/openforms/js/components/form/productPrice.js index d38c762462..01c059a2ac 100644 --- a/src/openforms/js/components/form/productPrice.js +++ b/src/openforms/js/components/form/productPrice.js @@ -4,16 +4,6 @@ import {Formio} from 'formiojs'; import {localiseSchema} from './i18n'; -import {get} from '../../utils/fetch'; -import {PRODUCT_PRICES_ENDPOINT} from '../admin/form_design/constants'; // TODO add new endpoint or add price options to existing one. - -export const getProducts = async () => { - const response = await get(PRODUCT_PRICES_ENDPOINT); - return response.data.map(item => ({ - label: item.name, - value: item.uuid, - })); -}; const Radio = Formio.Components.components.radio; diff --git a/src/openforms/js/components/formio_builder/WebformBuilder.js b/src/openforms/js/components/formio_builder/WebformBuilder.js index 28c74391d1..88f3a4f826 100644 --- a/src/openforms/js/components/formio_builder/WebformBuilder.js +++ b/src/openforms/js/components/formio_builder/WebformBuilder.js @@ -14,7 +14,6 @@ import {IntlProvider} from 'react-intl'; import {getIntlProviderProps} from 'components/admin/i18n'; import {getAvailableAuthPlugins} from 'components/form/cosign'; import {getAvailableDocumentTypes} from 'components/form/file'; -import {getProducts} from '../form/productPrice'; import {getComponentEmptyValue} from 'components/utils'; import jsonScriptToVar from 'utils/json-script'; import {currentTheme} from 'utils/theme'; @@ -173,7 +172,6 @@ class WebformBuilder extends WebformBuilderFormio { getDocumentTypes={async () => await getAvailableDocumentTypes(this)} getConfidentialityLevels={async () => CONFIDENTIALITY_LEVELS} getAuthPlugins={getAvailableAuthPlugins} - getProducts={getProducts} // Component/builder state isNew={isNew} component={builderData} diff --git a/src/openforms/js/formio_module.js b/src/openforms/js/formio_module.js index 46d5d3ffb9..b8e66f92bb 100644 --- a/src/openforms/js/formio_module.js +++ b/src/openforms/js/formio_module.js @@ -18,11 +18,11 @@ import IbanField from './components/form/iban'; import LicensePlate from './components/form/licenseplate'; import Map from './components/form/map'; import NpFamilyMembers from './components/form/np-family-members'; -import ProductPrice from './components/form/productPrice'; import NumberField from './components/form/number'; import PasswordField from './components/form/password'; import PhoneNumberField from './components/form/phoneNumber'; import PostcodeField from './components/form/postcode'; +import ProductPrice from './components/form/productPrice'; import RadioField from './components/form/radio'; import SelectField from './components/form/select'; import SelectBoxesField from './components/form/selectBoxes'; diff --git a/src/openforms/products/api/serializers.py b/src/openforms/products/api/serializers.py index 89fd6832ba..ba395e19b5 100644 --- a/src/openforms/products/api/serializers.py +++ b/src/openforms/products/api/serializers.py @@ -22,4 +22,7 @@ class Meta: "view_name": "api:product-detail", "lookup_field": "uuid", }, + "price": { + "required": True, + }, } diff --git a/src/openforms/products/migrations/0002_product_is_deleted_product_open_producten_price_and_more.py b/src/openforms/products/migrations/0002_product_is_deleted_product_upl_name_product_upl_uri_and_more.py similarity index 72% rename from src/openforms/products/migrations/0002_product_is_deleted_product_open_producten_price_and_more.py rename to src/openforms/products/migrations/0002_product_is_deleted_product_upl_name_product_upl_uri_and_more.py index 33d53f1430..d96820d6b2 100644 --- a/src/openforms/products/migrations/0002_product_is_deleted_product_open_producten_price_and_more.py +++ b/src/openforms/products/migrations/0002_product_is_deleted_product_upl_name_product_upl_uri_and_more.py @@ -1,15 +1,13 @@ -# Generated by Django 4.2.16 on 2024-10-10 12:59 +# Generated by Django 4.2.16 on 2024-10-10 15:06 from decimal import Decimal import django.core.validators from django.db import migrations, models -import django.db.models.deletion class Migration(migrations.Migration): dependencies = [ - ("open_producten", "0001_initial"), ("products", "0001_initial_to_v270"), ] @@ -23,20 +21,6 @@ class Migration(migrations.Migration): verbose_name="Is deleted", ), ), - migrations.AddField( - model_name="product", - name="open_producten_price", - field=models.OneToOneField( - blank=True, - editable=False, - help_text="The price this option belongs to", - null=True, - on_delete=django.db.models.deletion.CASCADE, - related_name="product_type", - to="open_producten.price", - verbose_name="Price", - ), - ), migrations.AddField( model_name="product", name="upl_name", diff --git a/src/openforms/submissions/pricing.py b/src/openforms/submissions/pricing.py index 93c99068eb..f5811baf1c 100644 --- a/src/openforms/submissions/pricing.py +++ b/src/openforms/submissions/pricing.py @@ -4,8 +4,6 @@ from json_logic import jsonLogic -from openforms.contrib.open_producten import PRICE_OPTION_KEY - if TYPE_CHECKING: from .models import Submission @@ -55,7 +53,17 @@ def get_submission_price(submission: "Submission") -> Decimal: if form.product.open_producten_price: # method is called before form is completed at openforms.submissions.models.submission.Submission.payment_required - if not data.get(PRICE_OPTION_KEY): + + def get_price_option_key(): + for step in form.formstep_set.all(): + for component in step.form_definition.configuration["components"]: + if component["type"] == "productPrice": + return component["key"] + raise ValueError("Form does not have a productPrice component") + + price_option_key = get_price_option_key() + + if not data.get(price_option_key): return Decimal("0") # should keep current price if already set. @@ -64,9 +72,8 @@ def get_submission_price(submission: "Submission") -> Decimal: logger.debug("Price for submission set by product price option") return form.product.open_producten_price.options.get( - uuid=data[PRICE_OPTION_KEY] + uuid=data[price_option_key] ).amount - # return data.get(PRICE_OPTION_KEY).split(':')[0].strip() # no price rules or no match found -> use linked product logger.debug( diff --git a/src/openforms/submissions/tests/test_read_submission.py b/src/openforms/submissions/tests/test_read_submission.py index 13067c5e02..9e91597938 100644 --- a/src/openforms/submissions/tests/test_read_submission.py +++ b/src/openforms/submissions/tests/test_read_submission.py @@ -5,6 +5,7 @@ This information drives the frontend/navigation. """ +import datetime from decimal import Decimal from django.test import tag @@ -14,6 +15,10 @@ from rest_framework.test import APITestCase from openforms.authentication.tests.factories import AuthInfoFactory +from openforms.contrib.open_producten.tests.factories import ( + PriceFactory, + PriceOptionFactory, +) from openforms.forms.constants import SubmissionAllowedChoices from openforms.forms.tests.factories import ( FormFactory, @@ -275,3 +280,100 @@ def test_submission_payment_with_logic_using_user_defined_variables(self): "hasPaid": False, }, ) + + def test_submission_payment_uses_product_with_open_producten_options(self): + price = PriceFactory.create(valid_from=datetime.date(2024, 1, 1)) + price_option = PriceOptionFactory.create(price=price) + + submission = SubmissionFactory.from_components( + components_list=[{"type": "productPrice", "key": "productPrice"}], + submitted_data={"productPrice": price_option.uuid}, + form__product=price.product_type, + form__payment_backend="demo", + ) + + submission.calculate_price() + with self.subTest(part="check data setup"): + self.assertTrue(submission.payment_required) + self._add_submission_to_session(submission) + endpoint = reverse("api:submission-detail", kwargs={"uuid": submission.uuid}) + + response = self.client.get(endpoint) + + self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertEqual( + response.json()["payment"], + { + "isRequired": True, + "amount": str(price_option.amount), + "hasPaid": False, + }, + ) + + def test_submission_payment_uses_product_with_open_producten_options_with_changed_key( + self, + ): + price = PriceFactory.create(valid_from=datetime.date(2024, 1, 1)) + price_option = PriceOptionFactory.create(price=price) + + submission = SubmissionFactory.from_components( + components_list=[{"type": "productPrice", "key": "zaq123"}], + submitted_data={"zaq123": price_option.uuid}, + form__product=price.product_type, + form__payment_backend="demo", + ) + + submission.calculate_price() + with self.subTest(part="check data setup"): + self.assertTrue(submission.payment_required) + self._add_submission_to_session(submission) + endpoint = reverse("api:submission-detail", kwargs={"uuid": submission.uuid}) + + response = self.client.get(endpoint) + + self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertEqual( + response.json()["payment"], + { + "isRequired": True, + "amount": str(price_option.amount), + "hasPaid": False, + }, + ) + + def test_submission_payment_uses_product_with_open_producten_options_while_form_does_not_have_product_price_component( + self, + ): + price = PriceFactory.create(valid_from=datetime.date(2024, 1, 1)) + price_option = PriceOptionFactory.create(price=price) + + submission = SubmissionFactory.from_components( + components_list=[{"type": "textField", "key": "productPrice"}], + submitted_data={"productPrice": price_option.uuid}, + form__product=price.product_type, + form__payment_backend="demo", + ) + + with self.assertRaisesMessage( + ValueError, "Form does not have a productPrice component" + ): + submission.calculate_price() + + def test_submission_payment_uses_product_with_open_producten_options_with_price_already_set( + self, + ): + price = PriceFactory.create(valid_from=datetime.date(2024, 1, 1)) + price_option = PriceOptionFactory.create(price=price, amount=Decimal("20.00")) + + submission = SubmissionFactory.from_components( + components_list=[{"type": "productPrice", "key": "productPrice"}], + submitted_data={"productPrice": price_option.uuid}, + form__product=price.product_type, + form__payment_backend="demo", + ) + submission.price = Decimal("5.00") + submission.save() + + submission.calculate_price() + + self.assertEqual(submission.price, Decimal("5.00"))