fastlifeweb 0.7.3__tar.gz → 0.8.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/PKG-INFO +2 -2
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/pyproject.toml +2 -2
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/__init__.py +3 -0
- fastlifeweb-0.8.0/src/fastlife/monkeypatch.py +8 -0
- fastlifeweb-0.8.0/src/fastlife/templates/CsrfToken.jinja +1 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/templates/Radio.jinja +1 -1
- fastlifeweb-0.8.0/src/fastlife/templates/pydantic_form/Boolean.jinja +12 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/templates/pydantic_form/Checklist.jinja +5 -5
- fastlifeweb-0.8.0/src/fastlife/templates/pydantic_form/Dropdown.jinja +16 -0
- fastlifeweb-0.8.0/src/fastlife/templates/pydantic_form/Hidden.jinja +2 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/templates/pydantic_form/Model.jinja +2 -2
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/templates/pydantic_form/Sequence.jinja +3 -3
- fastlifeweb-0.8.0/src/fastlife/templates/pydantic_form/Text.jinja +11 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/templates/pydantic_form/Union.jinja +6 -6
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/templates/pydantic_form/Widget.jinja +1 -1
- fastlifeweb-0.7.3/src/fastlife/templates/CsrfToken.jinja +0 -1
- fastlifeweb-0.7.3/src/fastlife/templates/pydantic_form/Boolean.jinja +0 -12
- fastlifeweb-0.7.3/src/fastlife/templates/pydantic_form/Dropdown.jinja +0 -16
- fastlifeweb-0.7.3/src/fastlife/templates/pydantic_form/Hidden.jinja +0 -2
- fastlifeweb-0.7.3/src/fastlife/templates/pydantic_form/Text.jinja +0 -11
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/LICENSE +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/README.md +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/configurator/__init__.py +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/configurator/base.py +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/configurator/configurator.py +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/configurator/registry.py +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/configurator/route_handler.py +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/configurator/settings.py +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/middlewares/__init__.py +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/middlewares/reverse_proxy/__init__.py +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/middlewares/reverse_proxy/x_forwarded.py +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/middlewares/session/__init__.py +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/middlewares/session/middleware.py +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/middlewares/session/serializer.py +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/py.typed +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/request/__init__.py +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/request/form_data.py +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/request/model_result.py +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/routing/__init__.py +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/routing/router.py +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/security/__init__.py +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/security/csrf.py +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/security/policy.py +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/shared_utils/__init__.py +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/shared_utils/infer.py +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/shared_utils/resolver.py +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/templates/A.jinja +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/templates/Button.jinja +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/templates/Checkbox.jinja +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/templates/Form.jinja +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/templates/H1.jinja +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/templates/H2.jinja +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/templates/H3.jinja +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/templates/H4.jinja +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/templates/H5.jinja +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/templates/H6.jinja +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/templates/Hidden.jinja +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/templates/Input.jinja +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/templates/Label.jinja +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/templates/Option.jinja +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/templates/P.jinja +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/templates/Select.jinja +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/templates/Table.jinja +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/templates/Tbody.jinja +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/templates/Td.jinja +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/templates/Tfoot.jinja +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/templates/Th.jinja +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/templates/Thead.jinja +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/templates/Tr.jinja +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/templates/__init__.py +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/templates/pydantic_form/Error.jinja +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/templates/pydantic_form/Hint.jinja +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/templating/__init__.py +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/templating/binding.py +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/templating/renderer/__init__.py +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/templating/renderer/abstract.py +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/templating/renderer/jinjax.py +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/templating/renderer/widgets/__init__.py +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/templating/renderer/widgets/base.py +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/templating/renderer/widgets/boolean.py +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/templating/renderer/widgets/checklist.py +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/templating/renderer/widgets/dropdown.py +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/templating/renderer/widgets/factory.py +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/templating/renderer/widgets/hidden.py +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/templating/renderer/widgets/model.py +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/templating/renderer/widgets/sequence.py +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/templating/renderer/widgets/text.py +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/templating/renderer/widgets/union.py +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/testing/__init__.py +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/testing/testclient.py +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/views/__init__.py +0 -0
- {fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/views/pydantic_form.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: fastlifeweb
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.8.0
|
4
4
|
Summary: High-level web framework
|
5
5
|
Home-page: https://github.com/mardiros/fastlife
|
6
6
|
License: BSD-derived
|
@@ -21,7 +21,7 @@ Requires-Dist: beautifulsoup4[testing] (>=4.12.2,<5.0.0)
|
|
21
21
|
Requires-Dist: behave (>=1.2.6,<2.0.0)
|
22
22
|
Requires-Dist: fastapi (>=0.112.0,<0.113.0)
|
23
23
|
Requires-Dist: itsdangerous (>=2.1.2,<3.0.0)
|
24
|
-
Requires-Dist: jinjax (>=0.
|
24
|
+
Requires-Dist: jinjax (>=0.43,<0.44)
|
25
25
|
Requires-Dist: markupsafe (>=2.1.3,<3.0.0)
|
26
26
|
Requires-Dist: multidict (>=6.0.5,<7.0.0)
|
27
27
|
Requires-Dist: pydantic (>=2.5.3,<3.0.0)
|
@@ -15,7 +15,7 @@ classifiers = [
|
|
15
15
|
"Topic :: Software Development :: Libraries :: Python Modules",
|
16
16
|
"Topic :: Internet :: WWW/HTTP",
|
17
17
|
]
|
18
|
-
version = "0.
|
18
|
+
version = "0.8.0"
|
19
19
|
|
20
20
|
[tool.poetry.dependencies]
|
21
21
|
python = "^3.11"
|
@@ -23,7 +23,7 @@ beautifulsoup4 = {version = "^4.12.2", extras = ["testing"]}
|
|
23
23
|
behave = "^1.2.6"
|
24
24
|
fastapi = "^0.112.0"
|
25
25
|
itsdangerous = "^2.1.2"
|
26
|
-
jinjax = "^0.
|
26
|
+
jinjax = "^0.43"
|
27
27
|
markupsafe = "^2.1.3"
|
28
28
|
multidict = "^6.0.5"
|
29
29
|
pydantic = "^2.5.3"
|
@@ -1,9 +1,12 @@
|
|
1
1
|
from .configurator import Configurator, configure
|
2
2
|
from .configurator.registry import Registry
|
3
3
|
|
4
|
+
from .monkeypatch import monkeypatch
|
4
5
|
# from .request.form_data import model
|
5
6
|
from .templating import Template, template
|
6
7
|
|
8
|
+
monkeypatch()
|
9
|
+
|
7
10
|
__all__ = [
|
8
11
|
# Config
|
9
12
|
"configure",
|
@@ -0,0 +1 @@
|
|
1
|
+
<Hidden :name="csrf_token.name" :value="csrf_token.value" />
|
@@ -26,5 +26,5 @@ div_class="flex items-center mb-4"
|
|
26
26
|
<input type="radio" name="{{name}}" id="{{id}}" value="{{value}}" {% if checked %}checked{% endif %}
|
27
27
|
class="{{attrs.class or class_}}" {% if onclick %}onclick="{{onclick}}" {% endif %} {%if
|
28
28
|
disabled%}disabled{%endif%}>
|
29
|
-
<Label for=
|
29
|
+
<Label :for="id" :class="label_class">{{label}}</Label>
|
30
30
|
</div>
|
@@ -0,0 +1,12 @@
|
|
1
|
+
{# def widget #}
|
2
|
+
<pydantic_form.Widget :widget="widget" :removable="widget.removable">
|
3
|
+
<div class="pt-4">
|
4
|
+
<div class="flex items-center">
|
5
|
+
<Checkbox :name="widget.name" type="checkbox" :id="widget.id" :checked="widget.value" value="1" />
|
6
|
+
<Label :for="widget.id" class="ms-2 text-base text-neutral-900 dark:text-white">
|
7
|
+
{{widget.title|safe}}
|
8
|
+
</Label>
|
9
|
+
</div>
|
10
|
+
<pydantic_form.Error :text="widget.error" />
|
11
|
+
</div>
|
12
|
+
</pydantic_form.Widget>
|
{fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/templates/pydantic_form/Checklist.jinja
RENAMED
@@ -2,19 +2,19 @@
|
|
2
2
|
widget,
|
3
3
|
#}
|
4
4
|
|
5
|
-
<pydantic_form.Widget widget=
|
5
|
+
<pydantic_form.Widget :widget="widget" :removable="widget.removable">
|
6
6
|
<div class="pt-4">
|
7
7
|
<details open>
|
8
8
|
<summary class="justify-between items-center font-medium cursor-pointer">
|
9
9
|
<H3>{{widget.title}}</H3>
|
10
|
-
<pydantic_form.Error text=
|
10
|
+
<pydantic_form.Error :text="widget.error" />
|
11
11
|
</summary>
|
12
12
|
<div>
|
13
13
|
{% for value in widget.value %}
|
14
14
|
<div class="flex items-center mb-4">
|
15
|
-
|
16
|
-
|
17
|
-
|
15
|
+
<Checkbox :name="value.field_name" type="checkbox" :id="value.id" :value="value.value" :checked="value.checked" />
|
16
|
+
<Label :for="value.id" class="ms-2 text-base text-neutral-900 dark:text-white">{{value.label}}</Label>
|
17
|
+
<pydantic_form.Error :text="value.error" />
|
18
18
|
</div>
|
19
19
|
{% endfor %}
|
20
20
|
</div>
|
@@ -0,0 +1,16 @@
|
|
1
|
+
{# def widget #}
|
2
|
+
|
3
|
+
<pydantic_form.Widget :widget="widget" :removable="widget.removable">
|
4
|
+
<div class="pt-4">
|
5
|
+
<Label :for="widget.id">{{widget.title}}</Label>
|
6
|
+
<Select :name="widget.name" :id="widget.id">
|
7
|
+
{%- for opt in widget.options -%}
|
8
|
+
<Option :value="opt.value" id={{widget.id + "-" + opt.value}} :selected="widget.value==opt.value">
|
9
|
+
{{ opt.text }}
|
10
|
+
</Option>
|
11
|
+
{%- endfor -%}
|
12
|
+
</Select>
|
13
|
+
<pydantic_form.Error :text="widget.error" />
|
14
|
+
<pydantic_form.Hint :text="widget.hint" />
|
15
|
+
</div>
|
16
|
+
</pydantic_form.Widget>
|
@@ -1,11 +1,11 @@
|
|
1
1
|
{# def widget, children_widget #}
|
2
2
|
|
3
|
-
<pydantic_form.Widget widget=
|
3
|
+
<pydantic_form.Widget :widget="widget" :removable="widget.removable">
|
4
4
|
<div id="{{widget.id}}" class="m-4">
|
5
5
|
<details open>
|
6
6
|
<summary class="justify-between items-center font-medium cursor-pointer">
|
7
7
|
<H3>{{widget.title}}</H3>
|
8
|
-
<pydantic_form.Error text=
|
8
|
+
<pydantic_form.Error :text="widget.error" />
|
9
9
|
</summary>
|
10
10
|
<div>
|
11
11
|
{% for child in children_widget %}
|
@@ -1,10 +1,10 @@
|
|
1
1
|
{# def widget, children_widgets, type #}
|
2
2
|
|
3
|
-
<pydantic_form.Widget widget=
|
3
|
+
<pydantic_form.Widget :widget="widget" :removable="widget.removable">
|
4
4
|
<details id="{{widget.id}}" open>
|
5
5
|
<summary class="justify-between items-center font-medium cursor-pointer">
|
6
6
|
<H3>{{widget.title}}</H3>
|
7
|
-
<pydantic_form.Error text=
|
7
|
+
<pydantic_form.Error :text="widget.error" />
|
8
8
|
</summary>
|
9
9
|
<div>
|
10
10
|
{% set fnGetName = "get" + widget.id.replace("-", "_") %}
|
@@ -29,7 +29,7 @@
|
|
29
29
|
{% set container_id = "#" + widget.id + "-container" %}
|
30
30
|
{% set add_id = widget.id + "-add" %}
|
31
31
|
{% set vals = 'js:{"name": '+ fnGetName + '(), "token": "' + type.token + '", "removable": true}' %}
|
32
|
-
<Button type="button" hx-target=
|
32
|
+
<Button type="button" :hx-target="container_id" hx-swap="beforeend" :id="add_id" :hx-vals="vals" :hx-get="type.url">
|
33
33
|
Add
|
34
34
|
</Button>
|
35
35
|
</div>
|
@@ -0,0 +1,11 @@
|
|
1
|
+
{# def widget #}
|
2
|
+
|
3
|
+
<pydantic_form.Widget :widget="widget" :removable="widget.removable">
|
4
|
+
<div class="pt-4">
|
5
|
+
<Label :for="widget.id">{{widget.title}}</Label>
|
6
|
+
<pydantic_form.Error :text="widget.error" />
|
7
|
+
<Input :name="widget.name" :value="widget.value" :type="widget.input_type" :id="widget.id"
|
8
|
+
:aria-label="widget.aria_label" :placeholder="widget.placeholder" />
|
9
|
+
<pydantic_form.Hint :text="widget.hint" />
|
10
|
+
</div>
|
11
|
+
</pydantic_form.Widget>
|
@@ -1,24 +1,24 @@
|
|
1
1
|
{# def widget, child, types, parent_type #}
|
2
2
|
|
3
|
-
<pydantic_form.Widget widget=
|
3
|
+
<pydantic_form.Widget :widget="widget">
|
4
4
|
<div id="{{widget.id}}">
|
5
5
|
<details open>
|
6
6
|
<summary class="justify-between items-center font-medium cursor-pointer">
|
7
7
|
<H3>{{widget.title}}</H3>
|
8
|
-
<pydantic_form.Error text=
|
8
|
+
<pydantic_form.Error :text="widget.error" />
|
9
9
|
</summary>
|
10
10
|
<div hx-sync="this" id="{{widget.id}}-child">
|
11
11
|
{% if child %}
|
12
12
|
{{ child }}
|
13
13
|
{% else %}
|
14
14
|
{% for typ in types %}
|
15
|
-
<Button type="button" hx-target="closest div" hx-get=
|
16
|
-
|
15
|
+
<Button type="button" hx-target="closest div" :hx-get="typ.url" :hx-vals="typ.params|tojson" :id="typ.id"
|
16
|
+
onclick={{ "document.getElementById('" + widget.id + "-remove-btn').hidden=false" }}>{{typ.title}}</Button>
|
17
17
|
{% endfor %}
|
18
18
|
{% endif %}
|
19
19
|
</div>
|
20
|
-
<Button type="button" id=
|
21
|
-
|
20
|
+
<Button type="button" :id="widget.id + '-remove-btn'" :hx-target="'#' + widget.id"
|
21
|
+
hx-vals="parent_type.params|tojson" :hx-get="parent_type.url" :hidden="not child">
|
22
22
|
Remove
|
23
23
|
</Button>
|
24
24
|
</details>
|
@@ -3,7 +3,7 @@
|
|
3
3
|
<div id="{{container_id}}">
|
4
4
|
{{ content }}
|
5
5
|
{% if removable %}
|
6
|
-
<Button type="button" onclick=
|
6
|
+
<Button type="button" :onclick="'document.getElementById(' + container_id + ').remove()'">
|
7
7
|
Remove
|
8
8
|
</Button>
|
9
9
|
{% endif %}
|
@@ -1 +0,0 @@
|
|
1
|
-
<Hidden name={csrf_token.name} value={csrf_token.value} />
|
@@ -1,12 +0,0 @@
|
|
1
|
-
{# def widget #}
|
2
|
-
<pydantic_form.Widget widget={widget} removable={widget.removable}>
|
3
|
-
<div class="pt-4">
|
4
|
-
<div class="flex items-center">
|
5
|
-
<Checkbox name={widget.name} type="checkbox" id={widget.id} checked={widget.value} value="1" />
|
6
|
-
<Label for={widget.id} class="ms-2 text-base text-neutral-900 dark:text-white">
|
7
|
-
{{widget.title|safe}}
|
8
|
-
</Label>
|
9
|
-
</div>
|
10
|
-
<pydantic_form.Error text={widget.error} />
|
11
|
-
</div>
|
12
|
-
</pydantic_form.Widget>
|
@@ -1,16 +0,0 @@
|
|
1
|
-
{# def widget #}
|
2
|
-
|
3
|
-
<pydantic_form.Widget widget={widget} removable={widget.removable}>
|
4
|
-
<div class="pt-4">
|
5
|
-
<Label for={widget.id}>{{widget.title}}</Label>
|
6
|
-
<Select name={widget.name} id={widget.id}>
|
7
|
-
{%- for opt in widget.options -%}
|
8
|
-
<Option value={opt.value} id={widget.id + "-" + opt.value} selected={widget.value==opt.value}>
|
9
|
-
{{ opt.text }}
|
10
|
-
</Option>
|
11
|
-
{%- endfor -%}
|
12
|
-
</Select>
|
13
|
-
<pydantic_form.Error text={widget.error} />
|
14
|
-
<pydantic_form.Hint text={widget.hint} />
|
15
|
-
</div>
|
16
|
-
</pydantic_form.Widget>
|
@@ -1,11 +0,0 @@
|
|
1
|
-
{# def widget #}
|
2
|
-
|
3
|
-
<pydantic_form.Widget widget={widget} removable={widget.removable}>
|
4
|
-
<div class="pt-4">
|
5
|
-
<Label for={widget.id}>{{widget.title}}</Label>
|
6
|
-
<pydantic_form.Error text={widget.error} />
|
7
|
-
<Input name={widget.name} value={widget.value} type={widget.input_type} id={widget.id}
|
8
|
-
aria-label={widget.aria_label} placeholder={widget.placeholder} />
|
9
|
-
<pydantic_form.Hint text={widget.hint} />
|
10
|
-
</div>
|
11
|
-
</pydantic_form.Widget>
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/middlewares/reverse_proxy/x_forwarded.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/templating/renderer/widgets/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/templating/renderer/widgets/checklist.py
RENAMED
File without changes
|
{fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/templating/renderer/widgets/dropdown.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{fastlifeweb-0.7.3 → fastlifeweb-0.8.0}/src/fastlife/templating/renderer/widgets/sequence.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|