Exemple #1
0
class RadioButtons(ActionableElement):
    options = ArrayField(Option)
    initial_option = ObjectField(Option)
    confirm = ObjectField(Confirm)

    def __init__(self, action_id, options, initial_option=None, confirm=None):
        super().__init__("radio_buttons", action_id, options, initial_option, confirm)
Exemple #2
0
class StaticSelect(StaticSelectBase):
    initial_option = ObjectField(Option, OptionGroup)

    def __init__(
        self,
        placeholder,
        action_id,
        options=None,
        option_groups=None,
        initial_option=None,
        confirm=None,
        max_selected_items=None,
    ):
        if options and option_groups:
            raise ValidationError("You can specify either options or option_groups.")

        super().__init__(
            "static_select",
            action_id,
            placeholder,
            confirm,
            options,
            option_groups,
            initial_option,
        )
Exemple #3
0
class DatePicker(ActionableElement):
    placeholder = TextField(plain=True, max_length=150)
    initial_date = DateField()
    confirm = ObjectField(Confirm)

    def __init__(self, action_id, placeholder=None, initial_date=None, confirm=None):
        super().__init__("datepicker", action_id, placeholder, initial_date, confirm)
Exemple #4
0
class Checkboxes(ActionableElement):
    options = ArrayField(Option)
    initial_options = ArrayField(Option)
    confirm = ObjectField(Confirm)

    def __init__(self, action_id, options, initial_options=None, confirm=None):
        super().__init__("checkboxes", action_id, options, initial_options, confirm)
Exemple #5
0
class PlainTextInput(ActionableElement):
    placeholder = TextField(plain=True, max_length=150)
    initial_value = StringField()
    multiline = BooleanField()
    min_length = IntegerField(max_value=3000)
    max_length = IntegerField()
    dispatch_action_config = ObjectField(DispatchActionConfig)

    def __init__(
        self,
        action_id,
        placeholder=None,
        initial_value=None,
        multiline=None,
        min_length=None,
        max_length=None,
        dispatch_action_config=None,
    ):
        super().__init__(
            "plain_text_input",
            action_id,
            placeholder,
            initial_value,
            multiline,
            min_length,
            max_length,
            dispatch_action_config,
        )
Exemple #6
0
class MultiConversationsSelect(Select):
    initial_conversations = ArrayField(str)
    default_to_current_conversation = BooleanField()
    max_selected_items = IntegerField()
    filter = ObjectField(Filter)

    def __init__(
        self,
        placeholder,
        action_id,
        initial_conversations=None,
        default_to_current_conversation=None,
        confirm=None,
        max_selected_items=None,
        filter=None,
    ):
        super().__init__(
            "multi_conversations_select",
            action_id,
            placeholder,
            confirm,
            initial_conversations,
            default_to_current_conversation,
            max_selected_items,
            filter,
        )
Exemple #7
0
class Button(ActionableElement):
    primary = "primary"
    danger = "danger"

    text = TextField(plain=True, max_length=75)
    url = UrlField(max_length=3000)
    value = StringField(max_length=2000)
    style = StringField(options=[primary, danger])
    confirm = ObjectField(Confirm)

    def __init__(
        self, text, action_id=None, url=None, value=None, style=None, confirm=None
    ):
        if not any((action_id, url)):
            raise ValidationError("You should provide either action_id or url")

        super().__init__("button", action_id, text, url, value, style, confirm)
Exemple #8
0
class ExternalSelect(ExternalSelectBase):
    initial_option = ObjectField(Option, OptionGroup)

    def __init__(
        self,
        placeholder,
        action_id,
        initial_option=None,
        min_query_length=None,
        confirm=None,
    ):
        super().__init__(
            "external_select",
            action_id,
            placeholder,
            confirm,
            min_query_length,
            initial_option,
        )
Exemple #9
0
class ConversationsSelect(Select):
    initial_conversation = StringField()
    filter = ObjectField(Filter)

    def __init__(
        self,
        placeholder,
        action_id,
        initial_conversation=None,
        confirm=None,
        filter=None,
    ):
        super().__init__(
            "conversations_select",
            action_id,
            placeholder,
            confirm,
            initial_conversation,
            filter,
        )
Exemple #10
0
class Select(ActionableElement):
    placeholder = TextField(plain=True, max_length=150)
    confirm = ObjectField(Confirm)
Exemple #11
0
class Overflow(ActionableElement):
    options = ArrayField(Option, min_items=1, max_items=5)
    confirm = ObjectField(Confirm)

    def __init__(self, action_id, options, confirm=None):
        super().__init__("overflow", action_id, options, confirm)
Exemple #12
0
def test_object_field_with_incorrect_input_raises_exception(markdown_text):
    with pytest.raises(ValidationError):
        ObjectField(Confirm).validate(markdown_text)
Exemple #13
0
def test_object_field_validates_input(short_text):
    assert ObjectField(Confirm, PlainText).validate(
        Confirm(short_text, short_text, short_text, short_text))