yafowil.widget.datetime 2.0.2__tar.gz → 2.0.3__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.
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/.gitignore +0 -1
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/CHANGES.rst +109 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/PKG-INFO +2 -1
- yafowil_widget_datetime-2.0.3/biome.json +31 -0
- yafowil_widget_datetime-2.0.3/include.mk +16 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/pyproject.toml +24 -1
- yafowil_widget_datetime-2.0.3/src/yafowil/widget/datetime/__init__.py +201 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/example.py +54 -49
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/locales/de/LC_MESSAGES/yafowil.widget.datetime.mo +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/locales/de/LC_MESSAGES/yafowil.widget.datetime.po +9 -13
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/locales/en/LC_MESSAGES/yafowil.widget.datetime.po +8 -12
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/locales/yafowil.widget.datetime.pot +11 -10
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/bootstrap5/widget.js +93 -92
- yafowil_widget_datetime-2.0.3/src/yafowil/widget/datetime/resources/bootstrap5/widget.min.js +1 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/default/widget.js +92 -94
- yafowil_widget_datetime-2.0.3/src/yafowil/widget/datetime/resources/default/widget.min.js +1 -0
- yafowil_widget_datetime-2.0.3/src/yafowil/widget/datetime/tests/test_widget.py +1008 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/widget.py +222 -95
- yafowil_widget_datetime-2.0.2/src/yafowil/widget/datetime/__init__.py +0 -192
- yafowil_widget_datetime-2.0.2/src/yafowil/widget/datetime/resources/bootstrap5/widget.min.js +0 -1
- yafowil_widget_datetime-2.0.2/src/yafowil/widget/datetime/resources/default/widget.min.js +0 -1
- yafowil_widget_datetime-2.0.2/src/yafowil/widget/datetime/tests/test_widget.py +0 -782
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/LICENSE.rst +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/README.rst +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/locales/en/LC_MESSAGES/yafowil.widget.datetime.mo +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/bootstrap5/datepicker.min.css +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/bootstrap5/timepicker.min.css +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/default/datepicker.min.css +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/default/timepicker.min.css +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/ar-tn.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/ar.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/az.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/bg.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/bm.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/bn.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/br.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/bs.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/ca.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/cs.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/cy.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/da.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/de.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/el.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/en-AU.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/en-CA.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/en-GB.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/en-IE.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/en-NZ.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/en-ZA.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/eo.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/es.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/et.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/eu.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/fa.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/fi.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/fo.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/fr-CH.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/fr.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/gl.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/he.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/hi.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/hr.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/hu.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/hy.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/id.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/is.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/it-CH.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/it.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/ja.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/ka.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/kk.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/km.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/ko.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/lt.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/lv.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/me.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/mk.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/mn.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/mr.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/ms.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/nl-BE.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/nl.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/no.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/oc.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/pl.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/pt-BR.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/pt.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/ro.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/ru.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/si.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/sk.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/sl.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/sq.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/sr-latn.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/sr.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/sv.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/sw.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/ta.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/tg.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/th.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/tk.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/tr.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/uk.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/uz-cyrl.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/uz-latn.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/vi.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/zh-CN.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/locales/zh-TW.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/vanillajs-datepicker/datepicker.js +0 -0
- {yafowil_widget_datetime-2.0.2 → yafowil_widget_datetime-2.0.3}/src/yafowil/widget/datetime/resources/vanillajs-datepicker/datepicker.min.js +0 -0
|
@@ -1,6 +1,115 @@
|
|
|
1
1
|
Changes
|
|
2
2
|
=======
|
|
3
3
|
|
|
4
|
+
2.0.3 (2026-10-31)
|
|
5
|
+
------------------
|
|
6
|
+
|
|
7
|
+
- Fix the ``datetime`` and ``time`` widgets rendering the preset value after
|
|
8
|
+
the extraction of an empty, not required input. An empty input is rendered
|
|
9
|
+
empty now.
|
|
10
|
+
[rnix]
|
|
11
|
+
|
|
12
|
+
- Fix ``placeholder`` of the ``datetime`` widget being rendered on the time
|
|
13
|
+
input instead of the date input. ``placeholder`` is rendered on the date
|
|
14
|
+
input now, the new ``time_placeholder`` property on the time input. Both
|
|
15
|
+
default to no placeholder.
|
|
16
|
+
[rnix]
|
|
17
|
+
|
|
18
|
+
- Fix the time input of the ``time`` and ``datetime`` widgets with
|
|
19
|
+
``clock='12'`` being too small for the 12-hour clock value like ``03:15PM``.
|
|
20
|
+
The default placeholder of the ``time`` widget is ``hh:mmAM`` with the
|
|
21
|
+
12-hour clock instead of ``hh:mm``, a given ``placeholder`` is kept.
|
|
22
|
+
[rnix]
|
|
23
|
+
|
|
24
|
+
- Fix re-rendering a form after a failed extraction. The ``time`` widget with
|
|
25
|
+
``format='number'`` raised a ``ValueError``/``TypeError``, and the
|
|
26
|
+
``datetime`` widget with a preset value rendered the preset value instead of
|
|
27
|
+
the input. Both render the input as entered now.
|
|
28
|
+
[rnix]
|
|
29
|
+
|
|
30
|
+
- Fix the German translation of ``invalid_minutes_range``, the range is
|
|
31
|
+
``0..59``, not ``0..23``.
|
|
32
|
+
[rnix]
|
|
33
|
+
|
|
34
|
+
- Fix ``clock='12'`` in the ``time`` and ``datetime`` widgets. Values written
|
|
35
|
+
by the 12-hour timepicker like ``03:15PM`` were rejected by the ``time``
|
|
36
|
+
widget, and the ``datetime`` widget silently dropped ``PM``. Both accept the
|
|
37
|
+
picker format and 12 o'clock typed by hand (``12:30am``) now, case
|
|
38
|
+
insensitive, and extract the same value as with the 24-hour clock. The time
|
|
39
|
+
input renders the value in the format of the 12-hour timepicker, e.g.
|
|
40
|
+
``00:30PM`` for half past noon. ``clock`` may be given as string or integer.
|
|
41
|
+
Display mode is unchanged.
|
|
42
|
+
[rnix]
|
|
43
|
+
|
|
44
|
+
- Fix the timepicker ``destroy`` leaving the trigger button, the ``focus``,
|
|
45
|
+
``keypress`` and ``keyup`` handlers on the input and the
|
|
46
|
+
``yafowil-timepicker`` data. The server rendered input is kept.
|
|
47
|
+
[rnix]
|
|
48
|
+
|
|
49
|
+
- Fix the default datepicker ``destroy`` keeping the ``yafowil-datepicker``
|
|
50
|
+
data, ``initialize`` skipped the input afterwards. The datepicker
|
|
51
|
+
``destroy`` no longer removes foreign event handlers and data from the
|
|
52
|
+
input, only its own.
|
|
53
|
+
[rnix]
|
|
54
|
+
|
|
55
|
+
- Fix spellchecking not being disabled on the timepicker input. With jQuery 4
|
|
56
|
+
``.attr('spellcheck', false)`` removes the attribute instead of setting
|
|
57
|
+
``spellcheck="false"``.
|
|
58
|
+
[rnix]
|
|
59
|
+
|
|
60
|
+
- Fix typing a 12 o'clock time into a 12-hour timepicker. ``12:30pm`` raised a
|
|
61
|
+
``TypeError`` on keyup, ``12:30am`` selected the P.M. hour and rewrote the
|
|
62
|
+
input to ``00:30PM``. 12 o'clock selects the ``00`` hour of its period now.
|
|
63
|
+
[rnix]
|
|
64
|
+
|
|
65
|
+
- Fix the default timepicker ``destroy`` leaving its window resize handler
|
|
66
|
+
bound.
|
|
67
|
+
[rnix]
|
|
68
|
+
|
|
69
|
+
- Fix the datepicker ``destroy`` leaving its trigger button in the DOM. The
|
|
70
|
+
bootstrap5 datepicker no longer removes the server rendered input on
|
|
71
|
+
``destroy``.
|
|
72
|
+
[rnix]
|
|
73
|
+
|
|
74
|
+
- Add ``@popperjs/core`` as dev dependency for testing the bootstrap5 widget.
|
|
75
|
+
[rnix]
|
|
76
|
+
|
|
77
|
+
- Extend the JS tests to 100 % coverage, all modules including bundles are
|
|
78
|
+
loaded by the tests now.
|
|
79
|
+
[rnix]
|
|
80
|
+
|
|
81
|
+
- Lint and format the JS code with biome. ``make check`` runs ``biome check``,
|
|
82
|
+
``make format`` runs ``biome check --write`` (see ``include.mk``). Behavior
|
|
83
|
+
unchanged.
|
|
84
|
+
[rnix]
|
|
85
|
+
|
|
86
|
+
- JS tooling: Commit ``pnpm-lock.yaml``. Upgrade ``@web/test-runner`` to 1.0
|
|
87
|
+
and run the JS tests headless in Chromium via Playwright, installed in the JS
|
|
88
|
+
CI workflow. Drop the accidental ``install`` dev dependency. Pin patched
|
|
89
|
+
versions of vulnerable transitive dependencies via ``pnpm.overrides``.
|
|
90
|
+
[rnix]
|
|
91
|
+
|
|
92
|
+
- Modernise the code ruff flags as outdated: ``u''`` prefixes and ``.format()``
|
|
93
|
+
over f-strings. Behaviour unchanged. ``super(Class, self)`` is kept, see
|
|
94
|
+
``cone.app``.
|
|
95
|
+
[rnix]
|
|
96
|
+
|
|
97
|
+
- Sort the imports with ruff (one per line, ``from`` imports first, no
|
|
98
|
+
sections) and format the code with ``ruff format`` (90 characters per line,
|
|
99
|
+
single quotes).
|
|
100
|
+
[rnix]
|
|
101
|
+
|
|
102
|
+
- Add ``qa.ruff`` domain to Makefile and pin the ruff configuration in
|
|
103
|
+
``pyproject.toml``, ``make check`` runs ``ruff check``.
|
|
104
|
+
[rnix]
|
|
105
|
+
|
|
106
|
+
- Drop the Python 2 remnants: ``yafowil.compat`` usage and ``IS_PY2`` branches.
|
|
107
|
+
[rnix]
|
|
108
|
+
|
|
109
|
+
- Declare ``requires-python = ">=3.10"``.
|
|
110
|
+
[rnix]
|
|
111
|
+
|
|
112
|
+
|
|
4
113
|
2.0.2 (2026-10-24)
|
|
5
114
|
------------------
|
|
6
115
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: yafowil.widget.datetime
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.3
|
|
4
4
|
Summary: Datetime Widget for YAFOWIL
|
|
5
5
|
Author-email: Yafowil Contributors <dev@conestack.org>
|
|
6
6
|
License: Simplified BSD
|
|
@@ -15,6 +15,7 @@ Classifier: Programming Language :: Python :: 3.12
|
|
|
15
15
|
Classifier: Programming Language :: Python :: 3.13
|
|
16
16
|
Classifier: Programming Language :: Python :: 3.14
|
|
17
17
|
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
|
|
18
|
+
Requires-Python: >=3.10
|
|
18
19
|
Requires-Dist: bda-intellidatetime>1.2.99
|
|
19
20
|
Requires-Dist: yafowil>3.99
|
|
20
21
|
Provides-Extra: test
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://biomejs.dev/schemas/2.6.3/schema.json",
|
|
3
|
+
"files": {
|
|
4
|
+
"includes": ["js/src/**/*.js", "js/tests/**/*.js"]
|
|
5
|
+
},
|
|
6
|
+
"formatter": {
|
|
7
|
+
"enabled": true,
|
|
8
|
+
"indentStyle": "space",
|
|
9
|
+
"indentWidth": 4,
|
|
10
|
+
"lineWidth": 100
|
|
11
|
+
},
|
|
12
|
+
"linter": {
|
|
13
|
+
"enabled": true,
|
|
14
|
+
"rules": {
|
|
15
|
+
"preset": "recommended",
|
|
16
|
+
"correctness": {
|
|
17
|
+
"noUnusedVariables": "warn"
|
|
18
|
+
},
|
|
19
|
+
"complexity": {
|
|
20
|
+
"noStaticOnlyClass": "off",
|
|
21
|
+
"noThisInStatic": "off"
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"javascript": {
|
|
26
|
+
"formatter": {
|
|
27
|
+
"quoteStyle": "single",
|
|
28
|
+
"semicolons": "always"
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
##############################################################################
|
|
2
|
+
# biome (JS linting and formatting)
|
|
3
|
+
##############################################################################
|
|
4
|
+
|
|
5
|
+
.PHONY: biome-check
|
|
6
|
+
biome-check: $(NODEJS_TARGET)
|
|
7
|
+
@echo "Run biome check"
|
|
8
|
+
@biome check
|
|
9
|
+
|
|
10
|
+
.PHONY: biome-format
|
|
11
|
+
biome-format: $(NODEJS_TARGET)
|
|
12
|
+
@echo "Run biome format"
|
|
13
|
+
@biome check --write
|
|
14
|
+
|
|
15
|
+
CHECK_TARGETS+=biome-check
|
|
16
|
+
FORMAT_TARGETS+=biome-format
|
|
@@ -4,9 +4,10 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "yafowil.widget.datetime"
|
|
7
|
-
version = "2.0.
|
|
7
|
+
version = "2.0.3"
|
|
8
8
|
description = "Datetime Widget for YAFOWIL"
|
|
9
9
|
readme = "README.rst"
|
|
10
|
+
requires-python = ">=3.10"
|
|
10
11
|
license = {text = "Simplified BSD"}
|
|
11
12
|
authors = [{name = "Yafowil Contributors", email = "dev@conestack.org"}]
|
|
12
13
|
classifiers = [
|
|
@@ -66,5 +67,27 @@ consider_namespace_packages = true
|
|
|
66
67
|
addopts = ["--import-mode=importlib"]
|
|
67
68
|
pythonpath = "src"
|
|
68
69
|
|
|
70
|
+
[tool.coverage.run]
|
|
71
|
+
omit = ["*/example.py"]
|
|
72
|
+
|
|
73
|
+
[tool.ruff]
|
|
74
|
+
line-length = 90
|
|
75
|
+
|
|
76
|
+
[tool.ruff.lint]
|
|
77
|
+
select = ["E4", "E7", "E9", "F", "I", "UP"]
|
|
78
|
+
# UP008: zero-argument ``super()`` breaks on ``@plumbing`` decorated classes.
|
|
79
|
+
# UP031: ``%`` formatting is kept.
|
|
80
|
+
ignore = ["UP008", "UP031"]
|
|
81
|
+
|
|
82
|
+
[tool.ruff.lint.isort]
|
|
83
|
+
force-single-line = true
|
|
84
|
+
from-first = true
|
|
85
|
+
no-sections = true
|
|
86
|
+
lines-after-imports = 2
|
|
87
|
+
order-by-type = false
|
|
88
|
+
|
|
89
|
+
[tool.ruff.format]
|
|
90
|
+
quote-style = "single"
|
|
91
|
+
|
|
69
92
|
[tool.zest-releaser]
|
|
70
93
|
create-wheel = true
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
from yafowil.base import factory
|
|
2
|
+
from yafowil.utils import entry_point
|
|
3
|
+
import os
|
|
4
|
+
import webresource as wr
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
resources_dir = os.path.join(os.path.dirname(__file__), 'resources')
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
##############################################################################
|
|
11
|
+
# vanillajs-datepicker
|
|
12
|
+
##############################################################################
|
|
13
|
+
|
|
14
|
+
# webresource ################################################################
|
|
15
|
+
|
|
16
|
+
vanillajs_datepicker_js = wr.ScriptResource(
|
|
17
|
+
name='datepicker-js',
|
|
18
|
+
directory=os.path.join(resources_dir, 'vanillajs-datepicker'),
|
|
19
|
+
path='yafowil-datetime/vanillajs-datepicker',
|
|
20
|
+
resource='datepicker.js',
|
|
21
|
+
compressed='datepicker.min.js',
|
|
22
|
+
)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
##############################################################################
|
|
26
|
+
# locale
|
|
27
|
+
##############################################################################
|
|
28
|
+
|
|
29
|
+
# webresource ################################################################
|
|
30
|
+
|
|
31
|
+
locale_de = wr.ScriptResource(
|
|
32
|
+
name='datepicker-de-js',
|
|
33
|
+
depends='datepicker-js',
|
|
34
|
+
directory=os.path.join(resources_dir, 'locales'),
|
|
35
|
+
path='yafowil-datetime/locales',
|
|
36
|
+
resource='de.js',
|
|
37
|
+
)
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
##############################################################################
|
|
41
|
+
# Default
|
|
42
|
+
##############################################################################
|
|
43
|
+
|
|
44
|
+
# webresource ################################################################
|
|
45
|
+
|
|
46
|
+
resources = wr.ResourceGroup(
|
|
47
|
+
name='yafowil.widget.datetime', directory=resources_dir, path='yafowil-datetime'
|
|
48
|
+
)
|
|
49
|
+
resources.add(vanillajs_datepicker_js)
|
|
50
|
+
resources.add(locale_de)
|
|
51
|
+
resources.add(
|
|
52
|
+
wr.ScriptResource(
|
|
53
|
+
name='yafowil-datetime-js',
|
|
54
|
+
directory=os.path.join(resources_dir, 'default'),
|
|
55
|
+
path='yafowil-datetime/default',
|
|
56
|
+
depends=['jquery-js', 'datepicker-js'],
|
|
57
|
+
resource='widget.js',
|
|
58
|
+
compressed='widget.min.js',
|
|
59
|
+
)
|
|
60
|
+
)
|
|
61
|
+
resources.add(
|
|
62
|
+
wr.StyleResource(
|
|
63
|
+
name='yafowil-datepicker-css',
|
|
64
|
+
directory=os.path.join(resources_dir, 'default'),
|
|
65
|
+
path='yafowil-datetime/default',
|
|
66
|
+
resource='datepicker.min.css',
|
|
67
|
+
)
|
|
68
|
+
)
|
|
69
|
+
resources.add(
|
|
70
|
+
wr.StyleResource(
|
|
71
|
+
name='yafowil-timepicker-css',
|
|
72
|
+
directory=os.path.join(resources_dir, 'default'),
|
|
73
|
+
path='yafowil-datetime/default',
|
|
74
|
+
resource='timepicker.min.css',
|
|
75
|
+
)
|
|
76
|
+
)
|
|
77
|
+
|
|
78
|
+
# B/C resources ##############################################################
|
|
79
|
+
|
|
80
|
+
js = [
|
|
81
|
+
{
|
|
82
|
+
'group': 'yafowil.widget.datetime.common',
|
|
83
|
+
'resource': 'vanillajs-datepicker/datepicker.js',
|
|
84
|
+
'order': 20,
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
'group': 'yafowil.widget.datetime.common',
|
|
88
|
+
'resource': 'locales/de.js',
|
|
89
|
+
'order': 20,
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
'group': 'yafowil.widget.datetime.common',
|
|
93
|
+
'resource': 'default/widget.js',
|
|
94
|
+
'order': 20,
|
|
95
|
+
},
|
|
96
|
+
]
|
|
97
|
+
css = [
|
|
98
|
+
{
|
|
99
|
+
'group': 'yafowil.widget.datetime.common',
|
|
100
|
+
'resource': 'default/datepicker.min.css',
|
|
101
|
+
'order': 20,
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
'group': 'yafowil.widget.datetime.common',
|
|
105
|
+
'resource': 'default/timepicker.min.css',
|
|
106
|
+
'order': 20,
|
|
107
|
+
},
|
|
108
|
+
]
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
##############################################################################
|
|
112
|
+
# Bootstrap 5
|
|
113
|
+
##############################################################################
|
|
114
|
+
|
|
115
|
+
# webresource ################################################################
|
|
116
|
+
|
|
117
|
+
bootstrap5_resources = wr.ResourceGroup(
|
|
118
|
+
name='yafowil.widget.datetime', directory=resources_dir, path='yafowil-datetime'
|
|
119
|
+
)
|
|
120
|
+
bootstrap5_resources.add(vanillajs_datepicker_js)
|
|
121
|
+
bootstrap5_resources.add(locale_de)
|
|
122
|
+
bootstrap5_resources.add(
|
|
123
|
+
wr.ScriptResource(
|
|
124
|
+
name='yafowil-datetime-js',
|
|
125
|
+
directory=os.path.join(resources_dir, 'bootstrap5'),
|
|
126
|
+
path='yafowil-datetime/bootstrap5',
|
|
127
|
+
depends=['jquery-js', 'datepicker-js'],
|
|
128
|
+
resource='widget.js',
|
|
129
|
+
compressed='widget.min.js',
|
|
130
|
+
)
|
|
131
|
+
)
|
|
132
|
+
bootstrap5_resources.add(
|
|
133
|
+
wr.StyleResource(
|
|
134
|
+
name='yafowil-datepicker-css',
|
|
135
|
+
directory=os.path.join(resources_dir, 'bootstrap5'),
|
|
136
|
+
path='yafowil-datetime/bootstrap5',
|
|
137
|
+
resource='datepicker.min.css',
|
|
138
|
+
)
|
|
139
|
+
)
|
|
140
|
+
bootstrap5_resources.add(
|
|
141
|
+
wr.StyleResource(
|
|
142
|
+
name='yafowil-timepicker-css',
|
|
143
|
+
directory=os.path.join(resources_dir, 'bootstrap5'),
|
|
144
|
+
path='yafowil-datetime/bootstrap5',
|
|
145
|
+
resource='timepicker.min.css',
|
|
146
|
+
)
|
|
147
|
+
)
|
|
148
|
+
# B/C resources ##############################################################
|
|
149
|
+
|
|
150
|
+
bootstrap5_js = [
|
|
151
|
+
{
|
|
152
|
+
'group': 'yafowil.widget.datetime.common',
|
|
153
|
+
'resource': 'vanillajs-datepicker/datepicker.js',
|
|
154
|
+
'order': 20,
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
'group': 'yafowil.widget.datetime.common',
|
|
158
|
+
'resource': 'locales/de.js',
|
|
159
|
+
'order': 20,
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
'group': 'yafowil.widget.datetime.common',
|
|
163
|
+
'resource': 'bootstrap5/widget.js',
|
|
164
|
+
'order': 20,
|
|
165
|
+
},
|
|
166
|
+
]
|
|
167
|
+
bootstrap5_css = [
|
|
168
|
+
{
|
|
169
|
+
'group': 'yafowil.widget.datetime.common',
|
|
170
|
+
'resource': 'bootstrap5/datepicker.min.css',
|
|
171
|
+
'order': 20,
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
'group': 'yafowil.widget.datetime.common',
|
|
175
|
+
'resource': 'bootstrap5/timepicker.min.css',
|
|
176
|
+
'order': 20,
|
|
177
|
+
},
|
|
178
|
+
]
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
##############################################################################
|
|
182
|
+
# Registration
|
|
183
|
+
##############################################################################
|
|
184
|
+
|
|
185
|
+
|
|
186
|
+
@entry_point(order=10)
|
|
187
|
+
def register():
|
|
188
|
+
from yafowil.widget.datetime import widget # noqa
|
|
189
|
+
|
|
190
|
+
widget_name = 'yafowil.widget.datetime'
|
|
191
|
+
|
|
192
|
+
# Default
|
|
193
|
+
factory.register_theme('default', widget_name, resources_dir, js=js, css=css)
|
|
194
|
+
factory.register_resources('default', widget_name, resources)
|
|
195
|
+
|
|
196
|
+
# Bootstrap 5
|
|
197
|
+
factory.register_theme(
|
|
198
|
+
['bootstrap5'], widget_name, resources_dir, js=bootstrap5_js, css=bootstrap5_css
|
|
199
|
+
)
|
|
200
|
+
|
|
201
|
+
factory.register_resources(['bootstrap5'], widget_name, bootstrap5_resources)
|
|
@@ -20,11 +20,14 @@ Date input.
|
|
|
20
20
|
|
|
21
21
|
def date_example():
|
|
22
22
|
form = factory('fieldset', name='yafowil.widget.datetime.date')
|
|
23
|
-
form['date'] = factory(
|
|
24
|
-
'
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
23
|
+
form['date'] = factory(
|
|
24
|
+
'#field:datetime',
|
|
25
|
+
props={
|
|
26
|
+
'label': 'Enter date or use date picker',
|
|
27
|
+
'required': 'Date Field is required',
|
|
28
|
+
'datepicker': True,
|
|
29
|
+
},
|
|
30
|
+
)
|
|
28
31
|
return {
|
|
29
32
|
'widget': form,
|
|
30
33
|
'doc': DOC_DATE,
|
|
@@ -53,12 +56,15 @@ Set the 'clock' property to either 12 or 24 hours format (defaults to 24).
|
|
|
53
56
|
|
|
54
57
|
def time_example():
|
|
55
58
|
form = factory('fieldset', name='yafowil.widget.datetime.time')
|
|
56
|
-
form['time'] = factory(
|
|
57
|
-
'
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
59
|
+
form['time'] = factory(
|
|
60
|
+
'#field:time',
|
|
61
|
+
props={
|
|
62
|
+
'label': 'Select time',
|
|
63
|
+
'required': 'Time Field is required',
|
|
64
|
+
'timepicker': True,
|
|
65
|
+
'clock': '12',
|
|
66
|
+
},
|
|
67
|
+
)
|
|
62
68
|
return {
|
|
63
69
|
'widget': form,
|
|
64
70
|
'doc': DOC_TIME,
|
|
@@ -88,18 +94,17 @@ Set the 'minutes_step' property to a number between 1 and 60 (defaults to 5).
|
|
|
88
94
|
|
|
89
95
|
def minutes_example():
|
|
90
96
|
form = factory('fieldset', name='yafowil.widget.datetime.minutes_step')
|
|
91
|
-
form['time'] = factory(
|
|
92
|
-
'
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
}
|
|
97
|
+
form['time'] = factory(
|
|
98
|
+
'#field:time',
|
|
99
|
+
props={
|
|
100
|
+
'label': 'Select time',
|
|
101
|
+
'required': 'Time Field is required',
|
|
102
|
+
'timepicker': True,
|
|
103
|
+
'clock': '24',
|
|
104
|
+
'minutes_step': '15',
|
|
105
|
+
},
|
|
106
|
+
)
|
|
107
|
+
return {'widget': form, 'doc': DOC_MINUTES, 'title': 'Minutes'}
|
|
103
108
|
|
|
104
109
|
|
|
105
110
|
DOC_DATETIME = """
|
|
@@ -123,19 +128,18 @@ Date and time input.
|
|
|
123
128
|
|
|
124
129
|
def datetime_example():
|
|
125
130
|
form = factory('fieldset', name='yafowil.widget.datetime.datetime')
|
|
126
|
-
form['datetime'] = factory(
|
|
127
|
-
'
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
}
|
|
131
|
+
form['datetime'] = factory(
|
|
132
|
+
'#field:datetime',
|
|
133
|
+
props={
|
|
134
|
+
'label': 'Enter date and time',
|
|
135
|
+
'required': 'Datetime Field is required',
|
|
136
|
+
'locale': 'de',
|
|
137
|
+
'datepicker': True,
|
|
138
|
+
'time': True,
|
|
139
|
+
'timepicker': True,
|
|
140
|
+
},
|
|
141
|
+
)
|
|
142
|
+
return {'widget': form, 'doc': DOC_DATETIME, 'title': 'Datetime'}
|
|
139
143
|
|
|
140
144
|
|
|
141
145
|
DOC_DISPLAY = """
|
|
@@ -165,18 +169,19 @@ widget attribute.
|
|
|
165
169
|
def display_example():
|
|
166
170
|
value = datetime.datetime.now()
|
|
167
171
|
form = factory('fieldset', name='yafowil.widget.datetime.display')
|
|
168
|
-
form['datetime'] = factory(
|
|
169
|
-
'
|
|
170
|
-
|
|
171
|
-
'
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
172
|
+
form['datetime'] = factory(
|
|
173
|
+
'#field:datetime',
|
|
174
|
+
value=value,
|
|
175
|
+
mode='display',
|
|
176
|
+
props={
|
|
177
|
+
'label': 'Datetime Picker in Display Mode',
|
|
178
|
+
'locale': 'de',
|
|
179
|
+
'datepicker': True,
|
|
180
|
+
'time': True,
|
|
181
|
+
'timepicker': True,
|
|
182
|
+
},
|
|
183
|
+
)
|
|
184
|
+
return {'widget': form, 'doc': DOC_DISPLAY, 'title': 'Display Mode'}
|
|
180
185
|
|
|
181
186
|
|
|
182
187
|
def get_example():
|
|
@@ -185,5 +190,5 @@ def get_example():
|
|
|
185
190
|
time_example(),
|
|
186
191
|
minutes_example(),
|
|
187
192
|
datetime_example(),
|
|
188
|
-
display_example()
|
|
193
|
+
display_example(),
|
|
189
194
|
]
|
|
Binary file
|
|
@@ -9,7 +9,7 @@ msgid ""
|
|
|
9
9
|
msgstr ""
|
|
10
10
|
"Project-Id-Version: yafowil.widget.datetime 1.5.2\n"
|
|
11
11
|
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
|
12
|
-
"POT-Creation-Date:
|
|
12
|
+
"POT-Creation-Date: 2026-10-24 23:18+0200\n"
|
|
13
13
|
"PO-Revision-Date: 2014-04-30 18:38+0200\n"
|
|
14
14
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
|
15
15
|
"Language-Team: de <LL@li.org>\n"
|
|
@@ -21,17 +21,18 @@ msgstr ""
|
|
|
21
21
|
"Generated-By: Babel 1.3\n"
|
|
22
22
|
|
|
23
23
|
#. Default: Not a valid time input.
|
|
24
|
-
#: src/yafowil/widget/datetime/widget.py:
|
|
24
|
+
#: src/yafowil/widget/datetime/widget.py:47
|
|
25
|
+
#: src/yafowil/widget/datetime/widget.py:94
|
|
25
26
|
msgid "input_not_valid_time"
|
|
26
27
|
msgstr "Eingabe ist keine gültige Zeit"
|
|
27
28
|
|
|
28
29
|
#. Default: Failed to parse time input.
|
|
29
|
-
#: src/yafowil/widget/datetime/widget.py:
|
|
30
|
+
#: src/yafowil/widget/datetime/widget.py:58
|
|
30
31
|
msgid "failed_to_parse_time"
|
|
31
32
|
msgstr "Eingabe konnte nicht als Zeiteingabe identifiziert werden"
|
|
32
33
|
|
|
33
34
|
#. Default: Hours not a number.
|
|
34
|
-
#: src/yafowil/widget/datetime/widget.py:
|
|
35
|
+
#: src/yafowil/widget/datetime/widget.py:64
|
|
35
36
|
msgid "hours_not_a_number"
|
|
36
37
|
msgstr "Stundeneingabe ist keie Zahl"
|
|
37
38
|
|
|
@@ -41,21 +42,16 @@ msgid "minutes_not_a_number"
|
|
|
41
42
|
msgstr "Minuteneingabe ist keine Zahl"
|
|
42
43
|
|
|
43
44
|
#. Default: Hours must be in range 0..23.
|
|
44
|
-
#: src/yafowil/widget/datetime/widget.py:
|
|
45
|
+
#: src/yafowil/widget/datetime/widget.py:136
|
|
45
46
|
msgid "invalid_hours_range"
|
|
46
47
|
msgstr "Stundeneingabe nicht im gültigen Bereich 0..23"
|
|
47
48
|
|
|
48
49
|
#. Default: Minutes must be in range 0..59.
|
|
49
|
-
#: src/yafowil/widget/datetime/widget.py:
|
|
50
|
+
#: src/yafowil/widget/datetime/widget.py:139
|
|
50
51
|
msgid "invalid_minutes_range"
|
|
51
|
-
msgstr "Minuteneingabe nicht im gültigen Bereich 0..
|
|
52
|
+
msgstr "Minuteneingabe nicht im gültigen Bereich 0..59"
|
|
52
53
|
|
|
53
54
|
#. Default: Not a valid date input.
|
|
54
|
-
#: src/yafowil/widget/datetime/widget.py:
|
|
55
|
+
#: src/yafowil/widget/datetime/widget.py:373
|
|
55
56
|
msgid "input_not_valid_date"
|
|
56
57
|
msgstr "Eingabe ist kein gültiges Datum"
|
|
57
|
-
|
|
58
|
-
#. Default: hh:mm
|
|
59
|
-
#: src/yafowil/widget/datetime/widget.py
|
|
60
|
-
msgid "time_format_placeholder"
|
|
61
|
-
msgstr "hh:mm"
|