Beispiel #1
0
    def as_element(self):
        if self.field.multiple:
            input = TextArea(self.value,
                             class_=self.class_,
                             id=self.id,
                             name=self.id,
                             placeholder=self.field.placeholder)
        else:
            input = Input(type="text",
                          class_=self.class_,
                          id=self.id,
                          name=self.id,
                          value=self.value,
                          placeholder=self.field.placeholder)

        if self.field.readonly:
            input.disabled = "disabled"

        children = [Label(self.field.title, for_=self.id), input]

        if self.field.has_errors:
            children.append(
                Div(*[Li(str(e)) for e in self.field.errors],
                    class_=["invalid-feedback"]))
        return Div(Div(*children, class_=["form-group", "col-md-12"]),
                   class_=["form-row"])
Beispiel #2
0
    def as_element(self):
        fields = []

        row = Div(class_=["a"])
        form = Form(row)
        size = len(self.fields)

        for i in range(size):
            current = self.fields[i]
            previous = i > 0 and self.fields[i - 1] or None

            row.append(current.as_element())
        form.append(Button("提交", class_=["btn", "btn-primary"]))

        return form
Beispiel #3
0
    def as_element(self) -> Div:

        kwargs = {}
        if self.checked:
            kwargs["checked"] = "checked"

        opt_element = [
            Input(
                class_=self.class_,
                type=self.field.type,
                name=self.name,
                id=self.id,
                value=str(self.option.value),
                **kwargs,
            ),
            Label(self.option.label, class_=["form-check-label"],
                  for_=self.id),
        ]

        if self.option.editable:
            id_or_name = "text_%d" % self.option.id
            opt_element.append(
                Input(class_=['form-control'],
                      id=id_or_name,
                      name=id_or_name,
                      value=self.text))

        opt = Div(*opt_element, class_=["form-check", "form-check-inline"])

        return opt
Beispiel #4
0
    def as_element(self):
        input_classes = ["of-form-title"]
        if self.field.has_errors:
            input_classes.append("is-invalid")

        options = [
            Label(self.field.title,
                  for_=str(self.field.id),
                  class_=input_classes)
        ]

        for opt in self.options:
            options.append(opt.as_element())

        if self.field.has_errors:
            options.append(
                Div(*[Li(str(e)) for e in self.field.errors],
                    class_=["invalid-feedback"]))
        return Div(Div(*options, class_=["form-group", "col-md-12"]),
                   class_=["form-row"])
Beispiel #5
0
    def as_element(self):
        form_container = Div()
        form_container.append(H1(self.form.title))
        form_container.append(Div(self.form.description))

        row = Div(class_=["a"])
        form = Form(row)
        size = len(self.fields)

        for i in range(size):
            current = self.fields[i]
            previous = i > 0 and self.fields[i - 1] or None

            row.append(current.as_element())
        form.append(Button("提交", class_=["btn", "btn-primary"]))

        form_container.append(form)

        return form_container
Beispiel #6
0
    def as_element(self):
        children = [Label(self.field.title), Div(self.field.description)]

        return Div(Div(*children, class_=["form-group", "col-md-12"]),
                   class_=["form-row"])