Skip to content

Commit

Permalink
✨ [#5012] Add JSON dump registration variables
Browse files Browse the repository at this point in the history
  • Loading branch information
viktorvanwijk committed Feb 5, 2025
1 parent 5afe627 commit 67a1ce0
Showing 1 changed file with 62 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
from django.utils.translation import gettext_lazy as _

from openforms.plugins.registry import BaseRegistry
from openforms.submissions.models import Submission
from openforms.typing import JSONObject
from openforms.variables.base import BaseStaticVariable
from openforms.variables.constants import FormVariableDataTypes
from openforms.variables.static_variables.static_variables import Now


class Registry(BaseRegistry[BaseStaticVariable]):
"""
A registry for the JSON Dump registration variables.
"""

module = "json_dump"


register = Registry()
"""The JSON Dump registration variables registry."""


@register("public_reference")
class PublicReference(BaseStaticVariable):
name = _("Public reference")
data_type = FormVariableDataTypes.string

def get_initial_value(self, submission: Submission | None = None) -> str:
if submission is None:
return ""
return submission.public_registration_reference

def as_json_schema(self) -> JSONObject:
return {"title": "Public reference", "type": "string"}


@register("form_version")
class FormVersion(BaseStaticVariable):
name = _("Form version")
data_type = FormVariableDataTypes.string

def get_initial_value(self, submission: Submission | None = None) -> str:
if submission is None:
return ""

form_version = submission.form.formversion_set.order_by("created").last()
return form_version.description if form_version else ""

def as_json_schema(self) -> JSONObject:
return {"title": "Form version", "type": "string"}


@register("registration_timestamp")
class RegistrationTimestamp(Now):
name = _("Registration timestamp")

def as_json_schema(self) -> JSONObject:
return {
"title": "Registration timestamp",
"type": "string",
"format": "date-time",
}

0 comments on commit 67a1ce0

Please sign in to comment.