forked from ckan/ckanext-scheming
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmultiple_select.html
39 lines (36 loc) · 1.28 KB
/
multiple_select.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
{% import 'macros/form.html' as form %}
{% macro help_text() %}
{%- snippet 'scheming/form_snippets/help_text.html', field=field -%}
{% endmacro %}
{%- call form.input_block(
"field-{{ field.field_name }}",
label=h.scheming_language_text(field.label),
classes=['control-full'],
error=errors[field.field_name],
is_required=h.scheming_field_required(field),
extra_html=help_text()
) -%}
{%- set choices = [] -%}
{%- for c in h.scheming_field_choices(field) -%}
{%- do choices.append(
(c.value, h.scheming_language_text(c.label))) -%}
{%- endfor -%}
{%- if field.get('sorted_choices') -%}
{%- set choices = choices|sort(case_sensitive=false, attribute=1) -%}
{%- endif -%}
<select multiple
size="{{ ([field.get('select_size', 10), field.choices|length]|sort)[0] }}"
style="display: block"
id="field-{{ field.field_name }}"
name="{{ field.field_name }}"
{{ form.attributes(dict(
{"class": "form-control"}, **field.get('form_select_attrs', {}))) }}>
{%- for val, label in choices -%}
<option id="field-{{ field.field_name }}-{{ val }}"
value="{{ val }}"
{{"selected " if val in data[field.field_name] }} />
{{ label }}
</option>
{%- endfor -%}
</select>
{%- endcall -%}