Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
c16e336
:sparkles: [#6430] Implement GUI of form import options
robinmolen Jul 10, 2026
bee211e
:sparkles: [#6430] Implemented import options and import serializers
robinmolen Jul 11, 2026
a5aedc0
:test_tube: [#6430] Added unit-tests for form import options
robinmolen Jul 24, 2026
5ad33c3
:sparkles: [#6430] Automatically remove unknown domains from email te…
robinmolen Jul 12, 2026
0db7ec6
:white_check_mark: [#6430] Fix tests by implementing correct import_o…
robinmolen Jul 12, 2026
b2c3013
:truck: [#6430] Separating import and version restore
robinmolen Jul 13, 2026
31e41ea
:truck: [#6430] Moving logic to import serializers
robinmolen Jul 24, 2026
9c3906a
:refactor: [#6430] Re-designed and moved import code to import_export…
robinmolen Jul 24, 2026
bd2c411
:sparkles: [#6430] Import additional form configuration
robinmolen Jul 13, 2026
b927317
:fire: [#6430] Removing unused code
robinmolen Jul 24, 2026
0fadae7
:sparkles: [#6430] Supporting import options on the form import API
robinmolen Jul 18, 2026
a1dca08
:white_check_mark: [#6430] Add tests for form import using the API en…
robinmolen Jul 31, 2026
8ef0799
:sparkles: [#6430] Set import options for version restore and extend …
robinmolen Jul 30, 2026
206c4a9
:white_check_mark: [#6430] Added tests validating updated form versio…
robinmolen Jul 19, 2026
c7eaf61
:sparkles: [#6430] Form definition import matching
robinmolen Jul 26, 2026
d0b6ca5
:package: [#6430] Updated OAS
robinmolen Aug 1, 2026
b190d4f
:memo: [#6430] Added documentation for form import
robinmolen Aug 1, 2026
af32ea2
:globe_with_meridians: [#6430] Add form import-options translations
robinmolen Aug 2, 2026
782ea55
:truck: [#6430] Moving existing form backwards compatibility code to …
robinmolen Aug 2, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 24 additions & 14 deletions docs/manual/forms/export_import.rst
Original file line number Diff line number Diff line change
Expand Up @@ -62,23 +62,33 @@ Als het goed is, is het formulier inclusief alle stappen geïmporteerd. Het
geïmporteerde formulier is standaard niet actief en dus niet direct voor de
buitenwereld toegankelijk.

Bijzonderheden
--------------
Formulier importeer opties
--------------------------

Bij het importeren van een formulier heb je enkele opties over hoe het
ZIP-bestand wordt geïmporteerd en hoe het formulier wordt gemaakt:

Als een formulier wordt geïmporteerd en het bevat een stap waarvan het
*URL-deel* overeenkomt met een bestaande stap, dan controleert het import proces
of de te importeren stap **exact hetzelfde** is als de bestaande stap. Als dat
zo is, dan wordt de bestaande stap gebruikt voor het geïmporteerde formulier. Er
wordt dan geen nieuwe stap aangemaakt.
* **Formulierinstellingen**: Hiermee kunnen registratie backends,
betaalprovider, prefill en inlogmethode eenvoudig bij het importeren
weggelaten worden. Standaard worden alle instellingen mee geïmporteerd.
* **Aanvullende formulierinstellingen**: Hiermee kunnen aanvullende
instellingen uit het ZIP-bestand toegevoegd worden aan het formulier. Bij het
importeren wordt gekeken of de aanvullende objecten, zoals producten, al in
de Open Formulieren-omgeving bestaan. Zo ja, worden deze bestaande objecten
hergebruikt, zo niet worden ze aangemaakt.
* **Hergebruik formulierdefinities**: Hiermee kan aangegeven worden of al
bestaande herbruikbare formulierdefinities gebruikt moeten worden, of dat
elke formulierdefinitie opnieuw aangemaakt moet worden.
* **Stijl**: Welk stijl gebruik zal worden voor het formulier.
* **Categorie**: In welke categorie het formulier geplaatst zal worden.

Als de stap **niet exact hetzelfde** is, dan wordt er een nieuwe stap aangemaakt
en wordt het *URL-deel* van de stap gewijzigd. Bijvoorbeeld van
``persoonsgegevens`` naar ``persoonsgegevens-2``. U krijgt hier altijd een
melding van.
Bijzonderheden
--------------

Als het *URL-deel* van een te importeren formulier zelf al bestaat, dan kan het
formulier niet worden geïmporteerd. U kunt dan het *URL-deel* van het
conflicterende formulier zelf aanpassen en het nogmaals proberen.
Als het *URL-deel* van een te importeren formulier zelf al bestaat, dan wordt
het *URL-deel* van het te importeren formulier uniek gemaakt door een reeks van
letters en cijfers er achter te plaatsen. Na het importeren kunt u het
*URL-deel* nakijken en eventueel aanpassen.

Export en import van :ref:`logica <manual_logic>` regels die gebruik maken van
het experimentele bevragen van registraties is niet geïmplementeerd. De
Expand Down
40 changes: 20 additions & 20 deletions docs/manual/workflows.rst
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,11 @@ u kunt gebruiken om de levensloop van een formulier te optimaliseren.
Essentieel bij het beheer zijn 2 opties:

* **Actief** geeft de globale beschikbaarheid aan.
* **Onderhoudsmodus** geeft aan dat een formulier tijdelijk niet beschikbaar
* **Onderhoudsmodus** geeft aan dat een formulier tijdelijk niet beschikbaar
is.

Zodra een formulier *niet actief* of in *onderhoudsmodus* staat, dan is het
formulier voor reguliere gebruikers direct niet meer te gebruiken en lopende
formulier voor reguliere gebruikers direct niet meer te gebruiken en lopende
sessies kunnen niet worden afgemaakt. In het geval een formulier *niet actief*
is, dan geldt dit ook voor beheerders. In *onderhoudsmodus* kunnen beheerders
nog wel het formulier starten, invullen en verzenden.
Expand All @@ -24,15 +24,15 @@ nog wel het formulier starten, invullen en verzenden.
Nieuw formulier maken
=====================

Als u het formulier direct op de productieomgeving bouwt, wilt u niet dat
Als u het formulier direct op de productieomgeving bouwt, wilt u niet dat
reguliere gebruikers dit formulier al kunnen benaderen of invullen.

Zet de optie **Onderhoudsmodus** aan voordat u de eerste maal op **Opslaan**
klikt. Het formulier is hierdoor enkel door te starten door beheerders.
Zet de optie **Onderhoudsmodus** aan voordat u de eerste maal op **Opslaan**
klikt. Het formulier kan hierdoor enkel door beheerders gestart worden.
Doorloop altijd eerst zelf het formulier voordat u een formulier actief maakt.

.. note::

Als u een nieuw formulier importeert staat de optie **Actief** automatisch
uit, en het geïmporteerde formulier kan dus niet benaderd worden door
reguliere gebruikers en beheerders.
Expand All @@ -42,18 +42,18 @@ Bestaand formulier bijwerken in de beheerinterface
==================================================

Als een formulier in gebruik is op de productieomgeving, wilt u het formulier
eventueel bijwerken. Gebruikers die op dat moment bezig zijn wilt u zo min
eventueel bijwerken. Gebruikers die op dat moment bezig zijn wilt u zo min
mogelijk hinderen.

Zet de optie **Onderhoudsmodus** aan en klik op **Opslaan**. Wijzig vervolgens
het formulier waar nodig. U kunt de wijzigingen in het formulier als beheerder
nog wel bekijken, maar reguliere gebruikers kunnen het formulier niet
Zet de optie **Onderhoudsmodus** aan en klik op **Opslaan**. Wijzig vervolgens
het formulier waar nodig. U kunt de wijzigingen in het formulier als beheerder
nog wel bekijken, maar reguliere gebruikers kunnen het formulier niet
gebruiken.

.. note::

Als de wijzigingen niet de structuur van het formulier wijzigen, zoals een
veld of stap toevoegen dan wel verwijderen, dan kunt u het formulier gewoon
Als de wijzigingen niet de structuur van het formulier wijzigen, zoals een
veld of stap toevoegen dan wel verwijderen, dan kunt u het formulier gewoon
wijzigen en opslaan, zonder dit formulier eerst op inactief te zetten.

Lopende sessies blijven gewoon bestaan en ondervinden geen hinder.
Expand All @@ -62,7 +62,7 @@ gebruiken.
Bestaande formulieren bijwerken middels import
==============================================

Als u een formulier heeft gemaakt op een andere omgeving (bijvoorbeeld een
Als u een formulier heeft gemaakt op een andere omgeving (bijvoorbeeld een
test- of acceptatieomgeving) en deze wilt importeren om een bestaand formulier
te vervangen, dan is dat niet direct mogelijk.

Expand All @@ -74,24 +74,24 @@ U moet rekening houden met de volgende complicaties:
* De URL van een formulier moet uniek zijn. Om deze reden kunnen 2 formulieren
niet dezelfde URL hebben. Als de URL van een geïmporteerd formulier al in
gebruik is, dan krijgt het geïmporteerde formulier een iets andere URL.
* De URL van formulierdefinities (stappen) moeten uniek zijn. Als er al een
* De URL van formulierdefinities (stappen) moeten uniek zijn. Als er al een
formulierdefinitie bestaat met dezelfde URL, dan krijgt de formulierdefinitie
van het geïmporteerde formulier een iets andere URL.

U kunt de volgende acties uitvoeren om toch een bestaand formulier te
U kunt de volgende acties uitvoeren om toch een bestaand formulier te
vervangen middels een import:

#. Open het bestaande formulier in de beheerinterface.
#. Zet de optie **Actief** uit en wijzig de naam zodat er *(oud)* achter komt
#. Zet de optie **Actief** uit en wijzig de naam zodat er *(oud)* achter komt
te staan.
#. Wijzig ook de URL zodat er *-oud* achter komt te staan.
#. Wijzig bij alle formulierstappen, de URL zodat ook hier overal *-oud* achter
komt te staan. Heeft u **Herbruikbare** formulierstappen? Wijzig hier de URL
#. Wijzig bij alle formulierstappen, de URL zodat ook hier overal *-oud* achter
komt te staan. Heeft u **Herbruikbare** formulierstappen? Wijzig hier de URL
dan niet om wijzigingen aan andere formulieren te voorkomen.
#. Sla het formulier op. Het formulier is nu niet meer actief.
#. Importeer het het vervangende formulier.
#. Importeer het vervangende formulier.
#. Pas eventueel de URLs aan van de formulierstappen die herbruikbaar zijn om
mooiere URLs te gebruiken.
#. Configureer het formulier verder met alle informatie die niet is meegekomen
#. Configureer het formulier verder met alle informatie die niet is meegekomen
met het importeren.
#. Zet het geïmporteerde formulier op **Actief** en sla het formulier op.
55 changes: 54 additions & 1 deletion src/openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -1476,7 +1476,10 @@ paths:
- forms
requestBody:
content:
'*/*':
multipart/form-data:
schema:
$ref: '#/components/schemas/FormImport'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/FormImport'
required: true
Expand Down Expand Up @@ -6860,6 +6863,18 @@ components:
Note that every subsequent API call resets the expiry.
required: true
schemas:
AdditionalFormConfigurationEnum:
enum:
- product
- wmsTileLayers
- wmtsTileLayers
- yiviAttributeGroups
type: string
description: |-
* `product` - Product
* `wmsTileLayers` - WMS-tile layers
* `wmtsTileLayers` - Background tile layers
* `yiviAttributeGroups` - Yivi attribute groups
AddressSearchResult:
type: object
properties:
Expand Down Expand Up @@ -8078,6 +8093,18 @@ components:
title: authentication backend options
required:
- backend
FormConfigurationEnum:
enum:
- registrationBackends
- prefill
- paymentBackend
- authBackends
type: string
description: |-
* `registrationBackends` - Registration backends
* `prefill` - Prefill
* `paymentBackend` - Payment backend
* `authBackends` - Authentication backends
FormData:
type: object
properties:
Expand Down Expand Up @@ -8404,6 +8431,32 @@ components:
format: uri
description: The file that contains the form, form definitions and form
steps.
formConfiguration:
type: array
items:
$ref: '#/components/schemas/FormConfigurationEnum'
description: Which form configuration should be included in the export file
content.
reuseFormDefinitions:
type: boolean
title: Re-use form definitions
description: Whether to re-use existing form definitions or create new form
definitions for each form definition in the import file. (If no matching
reusable form definition is found, a new one will be created.)
additionalFormConfiguration:
type: array
items:
$ref: '#/components/schemas/AdditionalFormConfigurationEnum'
description: Which additional form configuration should be included in the
export file content.
theme:
type: string
format: uuid
description: Which theme should be used for the imported forms.
category:
type: string
format: uuid
description: Which category should be applied to the imported forms.
required:
- file
FormImportResponse:
Expand Down
Loading
Loading