Skip to content

Commit

Permalink
Update CHANGELOG.md, rework rendering
Browse files Browse the repository at this point in the history
  • Loading branch information
dyve committed Mar 17, 2021
1 parent 95e061a commit 6db2c5e
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 36 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

## [0.0.1] - In development

- Remove `InlineFieldRenderer`.
- Simplify size parameters, only accept "sm", "md", "lg".
- Use `bootstrap_alert` in `bootstrap_messages`.
- Document approach to form rendering in `docs/forms.rst`.
Expand Down
46 changes: 10 additions & 36 deletions src/django_bootstrap5/renderers.py
Original file line number Diff line number Diff line change
Expand Up @@ -472,15 +472,10 @@ def get_label_class(self):
return label_class

def get_label(self):
"""Return value for label."""
if self.show_label == "skip":
return None
elif isinstance(self.widget, CheckboxInput):
label = None
else:
label = self.field.label
if self.layout == "horizontal" and not label:
return mark_safe(" ")
return label
return self.field.label

def add_label(self, html):
label = self.get_label()
Expand All @@ -505,18 +500,19 @@ def get_form_group_class(self):
def wrap_label_and_field(self, html):
return render_form_group(html, self.get_form_group_class())

def get_field_html(self):
"""Return HTML for field."""
self.add_widget_attrs()
field_html = self.field.as_widget(attrs=self.widget.attrs)
self.restore_widget_attrs()
return field_html

def _render(self):
# See if we're not excluded
if self.field.name in self.exclude.replace(" ", "").split(","):
return ""
# Hidden input requires no special treatment
if self.field.is_hidden:
return text_value(self.field)
# Render the widget
self.add_widget_attrs()
html = self.field.as_widget(attrs=self.widget.attrs)
self.restore_widget_attrs()
# Start post render
html = self.get_field_html()
html = self.post_widget_render(html)
html = self.append_to_checkbox_field(html)
html = self.wrap_widget(html)
Expand All @@ -526,25 +522,3 @@ def _render(self):
html = self.add_label(html)
html = self.wrap_label_and_field(html)
return html


class InlineFieldRenderer(FieldRenderer):
"""Inline field renderer."""

def add_error_attrs(self):
field_title = self.widget.attrs.get("title", "")
field_title += " " + " ".join([strip_tags(e) for e in self.field_errors])
self.widget.attrs["title"] = field_title.strip()

def add_widget_attrs(self):
super().add_widget_attrs()
self.add_error_attrs()

def append_to_field(self, html):
return html

def get_field_class(self):
return self.field_class

def get_label_class(self):
return merge_css_classes(self.label_class, "sr-only")

0 comments on commit 6db2c5e

Please sign in to comment.