diff --git a/hshassets/forms/elements.py b/hshassets/forms/elements.py
index e11a5495662db1c3863c7d0236681e8d1675a203..6bdd65448de241efd19d42eb43e3eb4787e1b1b7 100644
--- a/hshassets/forms/elements.py
+++ b/hshassets/forms/elements.py
@@ -16,12 +16,13 @@ class AbstractElement(object):
class Field(AbstractElement):
- def __init__(self, field_name, *args, **kwargs):
+ def __init__(self, field_name, label='', *args, **kwargs):
super().__init__(*args, **kwargs)
self.field_name = field_name
+ self.label = label
def render(self, field):
- return mark_safe(render_form_field(field))
+ return mark_safe(render_form_field(field, self.label))
class Columns(AbstractElement):
@@ -29,10 +30,12 @@ class Columns(AbstractElement):
class Column(AbstractElement):
- markup = '<div class="column is-{}">{}</div>'
+ markup = '<div class="column {}">{}</div>'
- def __init__(self, width, *args, **kwargs):
+ def __init__(self, *args, width='', **kwargs):
super().__init__(*args, **kwargs)
+ if width:
+ width = 'is-' + width
self.width = width
def render(self, content):
diff --git a/hshassets/forms/utils.py b/hshassets/forms/utils.py
index 90dd7bc4c9ef10f91cab6c385c70799a0d74d104..1cd8793f03547df672dce042eff2fc48e8618149 100644
--- a/hshassets/forms/utils.py
+++ b/hshassets/forms/utils.py
@@ -3,21 +3,29 @@ from django.utils.html import format_html, format_html_join
from django.template import defaulttags
-def render_form_field(field):
+def render_form_field(field, label):
try:
input_type = field.field.widget.input_type
except AttributeError:
input_type = None
+ def label_or_not(content):
+ if label == None:
+ return content
+ elif label == '':
+ return BulmaFieldMarkup.label(field.label, content)
+ else:
+ return BulmaFieldMarkup.label(label, content)
+
if input_type in ['text', 'number', 'email', 'url', 'password']:
# one of those text-like that support icons
- out = BulmaFieldMarkup.label(field.label, BulmaFieldMarkup.with_icons(field, field.as_widget()))
+ out = label_or_not(BulmaFieldMarkup.with_icons(field, field.as_widget()))
elif input_type and getattr(BulmaFieldMarkup, input_type, None):
# something else explicitly defined
out = getattr(BulmaFieldMarkup, input_type)(field, field.as_widget())
else:
# fallback default
- out = BulmaFieldMarkup.label(field.label, BulmaFieldMarkup.div_control(field.as_widget()))
+ out = label_or_not(BulmaFieldMarkup.div_control(field.as_widget()))
return BulmaFieldMarkup.div_field(field, out)