From 226aebc3a12522dd86b358658083a52a19251e47 Mon Sep 17 00:00:00 2001 From: Horilla Date: Wed, 13 Aug 2025 16:33:29 +0530 Subject: [PATCH] [UPDT] HORILLA AUTOMATIONS: Optimize form submit handler for #{{view_id}}Form: --- horilla_automations/forms.py | 17 ++++++++------ .../horilla_automations/automation_form.html | 23 +++++++++++-------- 2 files changed, 24 insertions(+), 16 deletions(-) diff --git a/horilla_automations/forms.py b/horilla_automations/forms.py index 60eb90476..f7ed7790c 100644 --- a/horilla_automations/forms.py +++ b/horilla_automations/forms.py @@ -84,13 +84,16 @@ class AutomationForm(ModelForm): # --- Field: mail_template --- self.fields["mail_template"].empty_label = "----------" - # --- Instance condition fields --- - if self.instance.pk: - self.fields["condition"].initial = self.instance.condition_html - self.fields["condition_html"].initial = self.instance.condition_html - self.fields["condition_querystring"].initial = ( - self.instance.condition_querystring - ) + # --- Field: condition fields --- + self.fields["condition"].initial = getattr( + self.instance, "condition", None + ) or self.data.get("condition") + self.fields["condition_html"].initial = getattr( + self.instance, "condition_html", None + ) or self.data.get("condition_html") + self.fields["condition_querystring"].initial = getattr( + self.instance, "condition", None + ) or self.data.get("condition_html") # --- Apply option template name for all select fields --- for field in self.fields.values(): diff --git a/horilla_automations/templates/horilla_automations/automation_form.html b/horilla_automations/templates/horilla_automations/automation_form.html index 1efc4d5b7..8be05270b 100644 --- a/horilla_automations/templates/horilla_automations/automation_form.html +++ b/horilla_automations/templates/horilla_automations/automation_form.html @@ -8,16 +8,21 @@ $(this).closest('.oh-accordion').toggleClass('oh-accordion--show'); }); - $("#{{view_id}} form button").click(function (e) { - const form = document.getElementById('multipleConditionForm'); - const elements = form.elements; - const queryString = Array.from(elements) - .filter(element => element.name && !element.disabled) - .map(element => encodeURIComponent(element.name) + '=' + encodeURIComponent(element.value)) + $(document).on('click', '#{{view_id}}Form button[type="submit"]', function () { + const $mainForm = $('#{{view_id}}Form'); + const conditionFormEl = $('#multipleConditionForm')[0]; + + if (!conditionFormEl) return; + + const queryString = Array.from(conditionFormEl.elements) + .filter(el => el.name && !el.disabled) + .map(el => encodeURIComponent(el.name) + '=' + encodeURIComponent(el.value)) .join('&'); - $("#{{view_id}} form [name=condition_querystring]").val(queryString); - html = $(".note-editable #multipleConditionForm").html() - $("#{{view_id}} form [name=condition_html]").val(html); + + $mainForm.find('[name="condition_querystring"]').val(queryString); + + const html = $(".note-editable #multipleConditionForm").html(); + $mainForm.find('[name="condition_html"]').val(html); }); $("#dynamic_field_condition").parent().removeClass("col-md-6");