31 lines
635 B
Python
31 lines
635 B
Python
from dataclasses import field
|
|
from datetime import date
|
|
|
|
from nicegui import binding
|
|
from nicegui import ui
|
|
|
|
|
|
@binding.bindable_dataclass
|
|
class ReportFilters:
|
|
start_on: date = field(default_factory=date.today)
|
|
page_size: int = 25
|
|
|
|
|
|
filters = ReportFilters()
|
|
|
|
ui.date().bind_value(
|
|
filters,
|
|
"start_on",
|
|
forward=date.fromisoformat, # control str -> model date
|
|
backward=date.isoformat, # model date -> control str
|
|
)
|
|
|
|
ui.label().bind_text_from(
|
|
filters,
|
|
"start_on",
|
|
backward=lambda value: f"Starting {value:%d %B %Y}",
|
|
)
|
|
|
|
if __name__ in {"__main__", "__mp_main__"}:
|
|
ui.run(port=8888, reload=True)
|