Skip to content

Commit

Permalink
Less mark_safe
Browse files Browse the repository at this point in the history
  • Loading branch information
dyve committed Mar 24, 2021
1 parent 6939286 commit ee7f0fe
Showing 1 changed file with 44 additions and 50 deletions.
94 changes: 44 additions & 50 deletions src/django_bootstrap5/renderers.py
Original file line number Diff line number Diff line change
Expand Up @@ -106,14 +106,10 @@ def get_context_data(self):
}
return context

def _render(self):
def render(self):
"""Render to string."""
return ""

def render(self):
"""Render to safe string."""
return mark_safe(self._render())


class FormsetRenderer(BaseRenderer):
"""Default formset renderer."""
Expand All @@ -134,25 +130,23 @@ def render_management_form(self):
return text_value(self.formset.management_form)

def render_forms(self):
rendered_forms = []
rendered_forms = mark_safe("")
for form in self.formset.forms:
rendered_forms.append(
render_form(
form,
layout=self.layout,
form_group_class=self.wrapper_class,
field_class=self.field_class,
label_class=self.label_class,
show_label=self.show_label,
show_help=self.show_help,
exclude=self.exclude,
set_placeholder=self.set_placeholder,
size=self.size,
horizontal_label_class=self.horizontal_label_class,
horizontal_field_class=self.horizontal_field_class,
)
rendered_forms += render_form(
form,
layout=self.layout,
form_group_class=self.wrapper_class,
field_class=self.field_class,
label_class=self.label_class,
show_label=self.show_label,
show_help=self.show_help,
exclude=self.exclude,
set_placeholder=self.set_placeholder,
size=self.size,
horizontal_label_class=self.horizontal_label_class,
horizontal_field_class=self.horizontal_field_class,
)
return "\n".join(rendered_forms)
return rendered_forms

def get_formset_errors(self):
return self.formset.non_form_errors()
Expand All @@ -164,10 +158,10 @@ def render_errors(self):
"django_bootstrap5/form_errors.html",
context={"errors": formset_errors, "form": self.formset, "layout": self.layout},
)
return ""
return mark_safe("")

def _render(self):
return "".join([self.render_errors(), self.render_management_form(), self.render_forms()])
def render(self):
return format_html(self.render_management_form() + "{}{}", self.render_errors(), self.render_forms())


class FormRenderer(BaseRenderer):
Expand All @@ -185,29 +179,27 @@ def get_context_data(self):
return context

def render_fields(self):
rendered_fields = []
rendered_fields = mark_safe("")
for field in self.form:
rendered_fields.append(
render_field(
field,
layout=self.layout,
form_group_class=self.wrapper_class,
field_class=self.field_class,
label_class=self.label_class,
form_check_class=self.form_check_class,
show_label=self.show_label,
show_help=self.show_help,
exclude=self.exclude,
set_placeholder=self.set_placeholder,
size=self.size,
horizontal_label_class=self.horizontal_label_class,
horizontal_field_class=self.horizontal_field_class,
error_css_class=self.error_css_class,
required_css_class=self.required_css_class,
bound_css_class=self.bound_css_class,
)
rendered_fields += render_field(
field,
layout=self.layout,
form_group_class=self.wrapper_class,
field_class=self.field_class,
label_class=self.label_class,
form_check_class=self.form_check_class,
show_label=self.show_label,
show_help=self.show_help,
exclude=self.exclude,
set_placeholder=self.set_placeholder,
size=self.size,
horizontal_label_class=self.horizontal_label_class,
horizontal_field_class=self.horizontal_field_class,
error_css_class=self.error_css_class,
required_css_class=self.required_css_class,
bound_css_class=self.bound_css_class,
)
return "\n".join(rendered_fields)
return rendered_fields

def get_fields_errors(self):
form_errors = []
Expand All @@ -231,10 +223,12 @@ def render_errors(self, type="all"):
context={"errors": form_errors, "form": self.form, "layout": self.layout, "type": type},
)

return ""
return mark_safe("")

def _render(self):
return self.render_errors(self.alert_error_type) + self.render_fields()
def render(self):
errors = self.render_errors(self.alert_error_type)
fields = self.render_fields()
return errors + fields


class FieldRenderer(BaseRenderer):
Expand Down Expand Up @@ -451,7 +445,7 @@ def field_before_label(self):
"""Return whether field should be placed before label."""
return isinstance(self.widget, CheckboxInput) or self.is_floating

def _render(self):
def render(self):
if self.field.name in self.exclude.replace(" ", "").split(","):
return ""
if self.field.is_hidden:
Expand Down

0 comments on commit ee7f0fe

Please sign in to comment.