diff --git a/hshassets/forms/utils.py b/hshassets/forms/utils.py index e47d920359278195010e45932e41704d53803717..8c803a529a88644b349252f82996905b2fd5e1a0 100644 --- a/hshassets/forms/utils.py +++ b/hshassets/forms/utils.py @@ -122,13 +122,21 @@ class BulmaFieldMarkup(object): return cls.div_control(content) -def render_form_generics(context, rendered_fields, rendered_errors, rendered_submit_button, submit_only_once=True): +def render_form_generics( + context, + rendered_fields, + rendered_errors, + rendered_submit_button, + submit_only_once=True, + form_id='' +): csrf_field = defaulttags.CsrfTokenNode().render(context) submit_only_once = "true" if submit_only_once else "false" form_icon = None + form_id = 'id={}'.format(form_id) if form_id else '' return format_html( """ - <form method="post" data-submit-only-once="{submit_only_once}"> + <form method="post" {form_id} data-submit-only-once="{submit_only_once}"> {csrf_field} {rendered_errors} {rendered_fields} diff --git a/hshassets/templatetags/bulma.py b/hshassets/templatetags/bulma.py index 0753e4b3330e638c0941af8561c4ffae0ad59576..b259d32ef979503ce13550578cb742bba2249250 100644 --- a/hshassets/templatetags/bulma.py +++ b/hshassets/templatetags/bulma.py @@ -55,12 +55,20 @@ def bulma_submit_button(text="OK", css_class="button is-outlined", icon="fa-chec @register.simple_tag(takes_context=True) -def bulma_form(context, form, submit_text="OK", submit_class="button is-outlined", submit_icon="fa-check", submit_only_once=True): +def bulma_form( + context, + form, + submit_text="OK", + submit_class="button is-outlined", + submit_icon="fa-check", + submit_only_once=True, + form_id='' +): """Renders whole form, including errors, csrf and a submit button.""" fields = bulma_form_fields(form) errors = bulma_form_errors(form) submit = bulma_submit_button(text=submit_text, css_class=submit_class, icon=submit_icon) - return render_form_generics(context, fields, errors, submit, submit_only_once) + return render_form_generics(context, fields, errors, submit, submit_only_once, form_id) def render_layout(elements, form):