Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
D
django-forms-as-jsonschema
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Monitor
Service Desk
Analyze
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
AlekSIS®
Libraries
django-forms-as-jsonschema
Compare revisions
9a423d3995b9f0ba53d1bd21523ddd246927dd51 to 7be9aec0f1225994e3202ff7f7795e98f2d46f3a
Compare revisions
Changes are shown as if the
source
revision was being merged into the
target
revision.
Learn more about comparing revisions.
Source
AlekSIS/libs/django-forms-as-jsonschema
Select target project
No results found
7be9aec0f1225994e3202ff7f7795e98f2d46f3a
Select Git revision
Branches
11-create-model-for-instances-of-a-form
main
renovate/django-5.x
renovate/pytest-8.x
4 results
Swap
Target
AlekSIS/libs/django-forms-as-jsonschema
Select target project
AlekSIS/libs/django-forms-as-jsonschema
1 result
9a423d3995b9f0ba53d1bd21523ddd246927dd51
Select Git revision
Branches
11-create-model-for-instances-of-a-form
main
renovate/django-5.x
renovate/pytest-8.x
4 results
Show changes
Only incoming changes from source
Include changes to target since source was created
Compare
Commits on Source
3
Mark disabled fields as readonly
· 32998c2b
Julian
authored
Sep 4, 2022
32998c2b
Use correct options for file fields
· d2476d59
Julian
authored
Sep 4, 2022
d2476d59
Use correct options for different types of select fields
· 7be9aec0
Julian
authored
Sep 4, 2022
7be9aec0
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
django_forms_as_jsonschema/jsonschema.py
+29
-19
29 additions, 19 deletions
django_forms_as_jsonschema/jsonschema.py
with
29 additions
and
19 deletions
django_forms_as_jsonschema/jsonschema.py
View file @
7be9aec0
...
...
@@ -71,6 +71,7 @@ class JSONSchema:
"
type
"
:
"
string
"
,
"
title
"
:
str
(
field
.
label
),
"
description
"
:
str
(
field
.
help_text
),
"
readOnly
"
:
field
.
disabled
}
# string, number, integer, boolean.
...
...
@@ -102,11 +103,16 @@ class JSONSchema:
case
forms
.
MultipleHiddenInput
:
...
case
forms
.
FileInput
:
...
case
forms
.
FileInput
|
forms
.
ClearableFileInput
:
new_field
|=
{
"
type
"
:
"
string
"
,
"
contentMediaType
"
:
"
image/*
"
if
type
(
field
)
==
forms
.
ImageField
else
"
*
"
,
"
writeOnly
"
:
True
}
case
forms
.
ClearableFileInput
:
...
# Fixme: differentiate between clearable and non-clearable
# case forms.ClearableFileInput:
# ...
case
forms
.
Textarea
:
new_field
[
"
x-display
"
]
=
"
textarea
"
...
...
@@ -126,21 +132,25 @@ class JSONSchema:
case
forms
.
CheckboxInput
:
new_field
[
"
type
"
]
=
"
boolean
"
case
forms
.
Select
:
new_field
[
"
type
"
]
=
"
string
"
new_field
[
"
enum
"
]
=
[]
# Fixme: load data from widget.options(…)
case
forms
.
NullBooleanSelect
:
...
case
forms
.
SelectMultiple
:
...
case
forms
.
Select
|
forms
.
SelectMultiple
|
forms
.
RadioSelect
|
forms
.
CheckboxSelectMultiple
,
forms
.
NullBooleanSelect
:
one_of
=
[]
for
const
,
title
in
field
.
widget
.
choices
:
one_of
.
append
(
dict
(
const
=
str
(
const
),
title
=
str
(
title
)))
case
forms
.
RadioSelect
:
...
if
field
.
widget
.
allow_multiple_selected
:
new_field
[
"
type
"
]
=
"
array
"
new_field
[
"
items
"
]
=
{
"
type
"
:
"
string
"
,
"
oneOf
"
:
one_of
}
else
:
new_field
[
"
type
"
]
=
"
string
"
new_field
[
"
oneOf
"
]
=
one_of
case
forms
.
CheckboxSelectMultiple
:
...
if
type
(
field
.
widget
)
==
forms
.
RadioSelect
:
new_field
[
"
x-display
"
]
=
"
radio
"
elif
type
(
field
.
widget
)
==
forms
.
CheckboxSelectMultiple
:
new_field
[
"
x-display
"
]
=
"
checkbox
"
case
forms
.
SplitDateTimeWidget
:
...
...
...
This diff is collapsed.
Click to expand it.