-
Notifications
You must be signed in to change notification settings - Fork 85
Description
Hello!
I have a custom submission hook that posts form data to external API.
This API has its own field names defined and I need possibility to control form fields names.
For that purpose I have added neme
CharBlock to blocks.StructBlock
in get_form_block
method of BaseField in wagtailstreamforms_fields.py
I do that, because I found class method get_formfield_name() in source code that trys to get field name from block value
After that I have redefine form fields names, save form config and submit my form.
Than on submissions page I have see, that all new submissions displays with None value.
This was happend because in method get_data_fields field name is a slug generated from label, without checking field["value"]["name"]
as was done in get_formfield_name
method
So I have suggest to modify this method to respect field name value like so:
(field["value"]["name"] or get_slug_from_string(field["value"]["label"])
def get_data_fields(self):
"""Returns a list of tuples with (field_name, field_label)."""
data_fields = [("submit_time", _("Submission date"))]
data_fields += [
(field["value"]["name"] or get_slug_from_string(field["value"]["label"]), field["value"]["label"])
for field in self.get_form_fields()
]
if getattr(settings, "WAGTAILSTREAMFORMS_SHOW_FORM_REFERENCE", False):
data_fields += [("form_reference", _("Form reference"))]
return data_fields
What dou you think?
I can make PR for that