Merge "Show required service configuration parameters as required"
This commit is contained in:
commit
ff0fa082ba
tuskar_ui/infrastructure
@ -46,6 +46,10 @@ CINDER_ISCSI_HELPER_CHOICES = [
|
||||
]
|
||||
|
||||
|
||||
class ParameterAwareMixin(object):
|
||||
parameter = None
|
||||
|
||||
|
||||
def parameter_fields(request, prefix=None, read_only=False):
|
||||
fields = SortedDict()
|
||||
plan = api.tuskar.Plan.get_the_plan(request)
|
||||
@ -54,18 +58,17 @@ def parameter_fields(request, prefix=None, read_only=False):
|
||||
for p in parameters:
|
||||
if prefix and not p.name.startswith(prefix):
|
||||
continue
|
||||
kwargs = {}
|
||||
Field = django.forms.CharField
|
||||
field_kwargs = {}
|
||||
widget = None
|
||||
if read_only:
|
||||
if p.hidden:
|
||||
kwargs['widget'] = tuskar_ui.forms.StaticTextPasswordWidget
|
||||
widget = tuskar_ui.forms.StaticTextPasswordWidget
|
||||
else:
|
||||
kwargs['widget'] = tuskar_ui.forms.StaticTextWidget
|
||||
Field = django.forms.CharField
|
||||
widget = tuskar_ui.forms.StaticTextWidget
|
||||
else:
|
||||
if p.hidden:
|
||||
Field = django.forms.CharField
|
||||
kwargs['widget'] = (
|
||||
django.forms.PasswordInput(render_value=True))
|
||||
widget = django.forms.PasswordInput(render_value=True)
|
||||
elif p.type == 'number':
|
||||
Field = django.forms.IntegerField
|
||||
elif p.type == 'boolean':
|
||||
@ -73,18 +76,22 @@ def parameter_fields(request, prefix=None, read_only=False):
|
||||
elif (p.type == 'string' and
|
||||
p.constraints['allowed_values']['definition']):
|
||||
Field = django.forms.ChoiceField
|
||||
kwargs['choices'] = (
|
||||
field_kwargs['choices'] = (
|
||||
p.constraints['allowed_values']['definition'])
|
||||
else:
|
||||
if (p.type in ['json', 'comma_delimited_list'] or
|
||||
'Certificate' in p.name):
|
||||
kwargs['widget'] = django.forms.Textarea
|
||||
Field = django.forms.CharField
|
||||
elif (p.type in ['json', 'comma_delimited_list'] or
|
||||
'Certificate' in p.name):
|
||||
widget = django.forms.Textarea
|
||||
|
||||
fields[p.name] = Field(required=False,
|
||||
label=_parameter_label(p),
|
||||
initial=p.value,
|
||||
**kwargs)
|
||||
fields[p.name] = Field(
|
||||
required=False,
|
||||
label=_parameter_label(p),
|
||||
initial=p.value,
|
||||
widget=widget,
|
||||
**field_kwargs
|
||||
)
|
||||
fields[p.name].__class__ = type('ParameterAwareField',
|
||||
(ParameterAwareMixin, Field), {})
|
||||
fields[p.name].parameter = p
|
||||
return fields
|
||||
|
||||
|
||||
|
@ -0,0 +1,20 @@
|
||||
{% load form_helpers %}
|
||||
|
||||
<div class="form-group{% if field.errors %} has-error{% endif %} {{ field.css_classes }}">
|
||||
<label class="control-label col-sm-3 {% if field.field.required or field.field.parameter.is_required %}{{ form.required_css_class }}{% endif %}" for="{{ field.id_for_label }}">{{ field.label }}</label>
|
||||
<div class="col-sm-9 {{ classes.value }} {{ field|wrapper_classes }}">
|
||||
{{ field|add_bootstrap_class }}
|
||||
{% for error in field.errors %}
|
||||
<span class="help-block alert alert-danger {{ form.error_css_class }}">{{ error }}</span>
|
||||
{% empty %}
|
||||
{% comment %}
|
||||
Escape help_text a second time here, to avoid an XSS issue in bootstrap.js.
|
||||
This can most likely be removed once we upgrade bootstrap.js past 2.0.2.
|
||||
Note: the spaces are necessary here.
|
||||
{% endcomment %}
|
||||
{% if field.help_text %}
|
||||
<span class="help-block">{% filter force_escape %} {{ field.help_text }} {% endfilter %} </span>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
Loading…
x
Reference in New Issue
Block a user