lol
This commit is contained in:
@@ -1,57 +1,3 @@
|
||||
from wtforms.widgets.core import CheckboxInput
|
||||
from wtforms.widgets.core import ColorInput
|
||||
from wtforms.widgets.core import DateInput
|
||||
from wtforms.widgets.core import DateTimeInput
|
||||
from wtforms.widgets.core import DateTimeLocalInput
|
||||
from wtforms.widgets.core import EmailInput
|
||||
from wtforms.widgets.core import FileInput
|
||||
from wtforms.widgets.core import HiddenInput
|
||||
from wtforms.widgets.core import *
|
||||
from wtforms.widgets.core import html_params
|
||||
from wtforms.widgets.core import Input
|
||||
from wtforms.widgets.core import ListWidget
|
||||
from wtforms.widgets.core import MonthInput
|
||||
from wtforms.widgets.core import NumberInput
|
||||
from wtforms.widgets.core import Option
|
||||
from wtforms.widgets.core import PasswordInput
|
||||
from wtforms.widgets.core import RadioInput
|
||||
from wtforms.widgets.core import RangeInput
|
||||
from wtforms.widgets.core import SearchInput
|
||||
from wtforms.widgets.core import Select
|
||||
from wtforms.widgets.core import SubmitInput
|
||||
from wtforms.widgets.core import TableWidget
|
||||
from wtforms.widgets.core import TelInput
|
||||
from wtforms.widgets.core import TextArea
|
||||
from wtforms.widgets.core import TextInput
|
||||
from wtforms.widgets.core import TimeInput
|
||||
from wtforms.widgets.core import URLInput
|
||||
from wtforms.widgets.core import WeekInput
|
||||
|
||||
__all__ = [
|
||||
"CheckboxInput",
|
||||
"ColorInput",
|
||||
"DateInput",
|
||||
"DateTimeInput",
|
||||
"DateTimeLocalInput",
|
||||
"EmailInput",
|
||||
"FileInput",
|
||||
"HiddenInput",
|
||||
"ListWidget",
|
||||
"MonthInput",
|
||||
"NumberInput",
|
||||
"Option",
|
||||
"PasswordInput",
|
||||
"RadioInput",
|
||||
"RangeInput",
|
||||
"SearchInput",
|
||||
"Select",
|
||||
"SubmitInput",
|
||||
"TableWidget",
|
||||
"TextArea",
|
||||
"TextInput",
|
||||
"TelInput",
|
||||
"TimeInput",
|
||||
"URLInput",
|
||||
"WeekInput",
|
||||
"html_params",
|
||||
"Input",
|
||||
]
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -1,3 +1,5 @@
|
||||
import warnings
|
||||
|
||||
from markupsafe import escape
|
||||
from markupsafe import Markup
|
||||
|
||||
@@ -109,7 +111,7 @@ class ListWidget:
|
||||
html.append(f"<li>{subfield.label} {subfield()}</li>")
|
||||
else:
|
||||
html.append(f"<li>{subfield()} {subfield.label}</li>")
|
||||
html.append(f"</{self.html_tag}>")
|
||||
html.append("</%s>" % self.html_tag)
|
||||
return Markup("".join(html))
|
||||
|
||||
|
||||
@@ -132,15 +134,15 @@ class TableWidget:
|
||||
html = []
|
||||
if self.with_table_tag:
|
||||
kwargs.setdefault("id", field.id)
|
||||
table_params = html_params(**kwargs)
|
||||
html.append(f"<table {table_params}>")
|
||||
html.append("<table %s>" % html_params(**kwargs))
|
||||
hidden = ""
|
||||
for subfield in field:
|
||||
if subfield.type in ("HiddenField", "CSRFTokenField"):
|
||||
hidden += str(subfield)
|
||||
else:
|
||||
html.append(
|
||||
f"<tr><th>{subfield.label}</th><td>{hidden}{subfield}</td></tr>"
|
||||
"<tr><th>%s</th><td>%s%s</td></tr>"
|
||||
% (str(subfield.label), hidden, str(subfield))
|
||||
)
|
||||
hidden = ""
|
||||
if self.with_table_tag:
|
||||
@@ -161,6 +163,7 @@ class Input:
|
||||
"""
|
||||
|
||||
html_params = staticmethod(html_params)
|
||||
validation_attrs = ["required", "disabled"]
|
||||
|
||||
def __init__(self, input_type=None):
|
||||
if input_type is not None:
|
||||
@@ -175,8 +178,7 @@ class Input:
|
||||
for k in dir(flags):
|
||||
if k in self.validation_attrs and k not in kwargs:
|
||||
kwargs[k] = getattr(flags, k)
|
||||
input_params = self.html_params(name=field.name, **kwargs)
|
||||
return Markup(f"<input {input_params}>")
|
||||
return Markup("<input %s>" % self.html_params(name=field.name, **kwargs))
|
||||
|
||||
|
||||
class TextInput(Input):
|
||||
@@ -229,7 +231,6 @@ class HiddenInput(Input):
|
||||
"""
|
||||
|
||||
input_type = "hidden"
|
||||
validation_attrs = ["disabled"]
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super().__init__(*args, **kwargs)
|
||||
@@ -244,7 +245,6 @@ class CheckboxInput(Input):
|
||||
"""
|
||||
|
||||
input_type = "checkbox"
|
||||
validation_attrs = ["required", "disabled"]
|
||||
|
||||
def __call__(self, field, **kwargs):
|
||||
if getattr(field, "checked", field.data):
|
||||
@@ -261,7 +261,6 @@ class RadioInput(Input):
|
||||
"""
|
||||
|
||||
input_type = "radio"
|
||||
validation_attrs = ["required", "disabled"]
|
||||
|
||||
def __call__(self, field, **kwargs):
|
||||
if field.checked:
|
||||
@@ -301,7 +300,6 @@ class SubmitInput(Input):
|
||||
"""
|
||||
|
||||
input_type = "submit"
|
||||
validation_attrs = ["required", "disabled"]
|
||||
|
||||
def __call__(self, field, **kwargs):
|
||||
kwargs.setdefault("value", field.label.text)
|
||||
@@ -323,10 +321,9 @@ class TextArea:
|
||||
for k in dir(flags):
|
||||
if k in self.validation_attrs and k not in kwargs:
|
||||
kwargs[k] = getattr(flags, k)
|
||||
textarea_params = html_params(name=field.name, **kwargs)
|
||||
textarea_innerhtml = escape(field._value())
|
||||
return Markup(
|
||||
f"<textarea {textarea_params}>\r\n{textarea_innerhtml}</textarea>"
|
||||
"<textarea %s>\r\n%s</textarea>"
|
||||
% (html_params(name=field.name, **kwargs), escape(field._value()))
|
||||
)
|
||||
|
||||
|
||||
@@ -359,19 +356,37 @@ class Select:
|
||||
for k in dir(flags):
|
||||
if k in self.validation_attrs and k not in kwargs:
|
||||
kwargs[k] = getattr(flags, k)
|
||||
select_params = html_params(name=field.name, **kwargs)
|
||||
html = [f"<select {select_params}>"]
|
||||
html = ["<select %s>" % html_params(name=field.name, **kwargs)]
|
||||
if field.has_groups():
|
||||
for group, choices in field.iter_groups():
|
||||
optgroup_params = html_params(label=group)
|
||||
html.append(f"<optgroup {optgroup_params}>")
|
||||
html.append("<optgroup %s>" % html_params(label=group))
|
||||
for choice in choices:
|
||||
val, label, selected, render_kw = choice
|
||||
if len(choice) == 4:
|
||||
val, label, selected, render_kw = choice
|
||||
else:
|
||||
warnings.warn(
|
||||
"'iter_groups' is expected to return 4 items tuple since "
|
||||
"wtforms 3.1, this will be mandatory in wtforms 3.2",
|
||||
DeprecationWarning,
|
||||
stacklevel=2,
|
||||
)
|
||||
val, label, selected = choice
|
||||
render_kw = {}
|
||||
html.append(self.render_option(val, label, selected, **render_kw))
|
||||
html.append("</optgroup>")
|
||||
else:
|
||||
for choice in field.iter_choices():
|
||||
val, label, selected, render_kw = choice
|
||||
if len(choice) == 4:
|
||||
val, label, selected, render_kw = choice
|
||||
else:
|
||||
warnings.warn(
|
||||
"'iter_groups' is expected to return 4 items tuple since "
|
||||
"wtforms 3.1, this will be mandatory in wtforms 3.2",
|
||||
DeprecationWarning,
|
||||
stacklevel=2,
|
||||
)
|
||||
val, label, selected = choice
|
||||
render_kw = {}
|
||||
html.append(self.render_option(val, label, selected, **render_kw))
|
||||
html.append("</select>")
|
||||
return Markup("".join(html))
|
||||
@@ -549,7 +564,7 @@ class RangeInput(Input):
|
||||
"""
|
||||
|
||||
input_type = "range"
|
||||
validation_attrs = ["disabled", "max", "min", "step"]
|
||||
validation_attrs = ["required", "disabled", "max", "min", "step"]
|
||||
|
||||
def __init__(self, step=None):
|
||||
self.step = step
|
||||
@@ -566,4 +581,3 @@ class ColorInput(Input):
|
||||
"""
|
||||
|
||||
input_type = "color"
|
||||
validation_attrs = ["disabled"]
|
||||
|
||||
Reference in New Issue
Block a user