Skip to content

Choice question

ChoiceQuestion

Bases: BaseFormItem

A radio/checkbox/dropdown question.

Source code in pygsuite/forms/generated/choice_question.py
class ChoiceQuestion(BaseFormItem):
    """
    A radio/checkbox/dropdown question.
    """

    def __init__(  # noqa: C901
        self,
        options: Optional[List["Option"]] = None,
        shuffle: Optional[bool] = None,
        type: Optional[str] = None,
        object_info: Optional[Dict] = None,
    ):
        generated: Dict = {}

        if options is not None:
            generated["options"] = [v._info for v in options]
        if shuffle is not None:

            generated["shuffle"] = shuffle
        if type is not None:

            generated["type"] = type
        object_info = object_info or generated
        super().__init__(object_info=object_info)

    @property
    def options(self) -> List["Option"]:
        return [Option(object_info=v) for v in self._info.get("options", [])]

    @options.setter
    def options(self, value: List["Option"]):
        if self._info.get("options", None) == value:
            return
        self._info["options"] = value

    @property
    def shuffle(self) -> bool:
        return self._info.get("shuffle")

    @shuffle.setter
    def shuffle(self, value: bool):
        if self._info.get("shuffle", None) == value:
            return
        self._info["shuffle"] = value

    @property
    def type(self) -> str:
        return self._info.get("type")

    @type.setter
    def type(self, value: str):
        if self._info.get("type", None) == value:
            return
        self._info["type"] = value