Skip to content

Commit 48d4605

Browse files
authored
Add string enum support (#25)
* Add string enum support * Up version
1 parent 9f01baa commit 48d4605

File tree

2 files changed

+19
-4
lines changed

2 files changed

+19
-4
lines changed

better_json_widget/templates/better_json_widget/better_json_widget.html

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,21 @@ <h2>[[ label ]]</h2>
2222
</div>
2323

2424
<div class="form-row field-data" v-for="item in currentSchema" v-if="!isRawEditOn">
25-
<div v-if="item.type === 'string'">
25+
<div v-if="item.enum.length">
26+
<label :class="{required: item.required}"
27+
:for="`id_custom_json_${item.name}`"
28+
>
29+
[[ item.title ]]:
30+
</label>
31+
<select :name="item.name"
32+
:id="`id_custom_json_${item.name}`"
33+
v-model="bindValues[item.name]"
34+
>
35+
<option :value="opt" v-for="opt in item.enum">[[ opt ]]</option>
36+
</select>
37+
</div>
38+
39+
<div v-else-if="item.type === 'string'">
2640
<label :class="{required: item.required}"
2741
:for="`id_custom_json_${item.name}`"
2842
>
@@ -37,7 +51,7 @@ <h2>[[ label ]]</h2>
3751
>
3852
</div>
3953

40-
<div v-if="item.type === 'integer' || item.type === 'number'">
54+
<div v-else-if="item.type === 'integer' || item.type === 'number'">
4155
<label :for="`id_custom_json_${item.name}`"
4256
:class="{required: item.required}"
4357
>[[ item.title ]]:</label>
@@ -49,7 +63,7 @@ <h2>[[ label ]]</h2>
4963
>
5064
</div>
5165

52-
<div v-if="item.type === 'boolean'">
66+
<div v-else-if="item.type === 'boolean'">
5367
<input type="checkbox"
5468
:name="item.name"
5569
:id="`id_custom_json_${item.name}`"
@@ -188,6 +202,7 @@ <h2>[[ label ]]</h2>
188202
description: field.description ?? "",
189203
default: defaultValue,
190204
required: schema.required.includes(fieldName),
205+
enum: field.enum ?? [],
191206
});
192207
}
193208
}

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ build-backend = "poetry.core.masonry.api"
55
[tool.poetry]
66
name = "django-better-json-widget"
77
description = "Better JSON Widget for Django Admin"
8-
version = "0.3.0"
8+
version = "0.4.0"
99
license = "MIT"
1010
packages = [
1111
{ include = "better_json_widget" },

0 commit comments

Comments
 (0)