Skip to content

Commit

Permalink
Merge pull request #315 from cassidysymons/radio-fields
Browse files Browse the repository at this point in the history
Radio Fields
  • Loading branch information
wasade authored Apr 27, 2021
2 parents 70c4056 + 5aab351 commit dcef546
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 4 deletions.
30 changes: 30 additions & 0 deletions microsetta_private_api/model/vue/vue_field.py
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,36 @@ def __init__(self, question_id, question_text, valid_responses,
}


class VueRadiosField(VueField):
def __init__(self, question_id, question_text, valid_responses,
question_shortname=None):
super().__init__(
type_="radios",
label=question_text,
model=str(question_id),
id_=str(question_id),
input_name=str(question_id),
featured=False,
visible=True,
disabled=False,
required=False,
multi=False,
default=valid_responses[0],
hint=None,
help_=None,
validator=None,
validate_debounce_time=None,
style_classes=None,
buttons=None,
attributes=None,
shortname=question_shortname
)
self.values = valid_responses
self.radiosOptions = {
"value": valid_responses[0]
}


class VueChecklistField(VueField):
def __init__(self, question_id, question_text, valid_responses,
question_shortname=None):
Expand Down
15 changes: 11 additions & 4 deletions microsetta_private_api/util/vue_adapter.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
from microsetta_private_api.model.vue.vue_field import (VueInputField,
VueTextAreaField,
VueSelectField,
VueRadiosField,
VueChecklistField)
from microsetta_private_api.model.vue.vue_group import VueGroup
from microsetta_private_api.model.vue.vue_schema import VueSchema
Expand All @@ -9,10 +10,16 @@

def to_vue_field(question, triggered_by=None):
if question.response_type == "SINGLE":
vue_field = VueSelectField(question.id,
question.localized_text,
question.valid_responses,
question.short_name)
if len(question.valid_responses) < 7:
vue_field = VueRadiosField(question.id,
question.localized_text,
question.valid_responses,
question.short_name)
else:
vue_field = VueSelectField(question.id,
question.localized_text,
question.valid_responses,
question.short_name)
elif question.response_type == "MULTIPLE":
vue_field = VueChecklistField(question.id,
question.localized_text,
Expand Down

0 comments on commit dcef546

Please sign in to comment.