forms: add back a tracking_code_box snippet, for some legacy themes (#63337)

This commit is contained in:
Frédéric Péters 2022-03-30 09:37:58 +02:00
parent 1332b885c3
commit aa9b21da45
1 changed files with 18 additions and 2 deletions

View File

@ -48,6 +48,7 @@ from ..qommon import _, emails, errors, get_cfg, misc, ngettext, template
from ..qommon.admin.emails import EmailsDirectory
from ..qommon.form import CheckboxWidget, EmailWidget, Form, HiddenErrorWidget, HtmlWidget, StringWidget
from ..qommon.template import TemplateError
from ..qommon.template_utils import render_block_to_string
class SubmittedDraftException(Exception):
@ -661,6 +662,8 @@ class FormPage(Directory, FormTemplateMixin):
'formdef': LazyFormDef(self.formdef),
'form_side': lambda: self.form_side(data=data, magictoken=magictoken),
'steps': self.step,
# legacy, used in some themes
'tracking_code_box': lambda: self.tracking_code_box(data, magictoken),
}
self.modify_filling_context(context, page, data)
@ -679,6 +682,18 @@ class FormPage(Directory, FormTemplateMixin):
templates=list(self.get_formdef_template_variants(self.filling_templates)), context=context
)
def tracking_code_box(self, data, magictoken):
# legacy, used by some themes
if not (self.has_draft_support() and data):
return ''
context = {
'view': self,
'get_tracking_code': lambda: self.get_tracking_code(data, magictoken),
}
return render_block_to_string(
list(self.get_formdef_template_variants(self.sidebox_templates)), 'tracking-code-box', context
)
def handle_computed_fields(self, magictoken, fields):
fields = [x for x in fields if x.key == 'computed' and x.value_template]
computed_values = get_session().get_by_magictoken('%s-computed' % magictoken, {})
@ -1688,10 +1703,11 @@ class FormPage(Directory, FormTemplateMixin):
'html_form': form,
'form_side': lambda: self.form_side(data=data, magictoken=magictoken),
'steps': self.step,
# legacy, used in some themes
'tracking_code_box': lambda: self.tracking_code_box(data, magictoken),
}
context['form'] = form # legacy
if self.has_draft_support() and data:
context['tracking_code_box'] = lambda: self.tracking_code_box(data, magictoken)
return template.QommonTemplateResponse(
templates=list(self.get_formdef_template_variants(self.validation_templates)), context=context
)