{# ── DateTimePicker — Flowbite date picker + native time input ───────────── Requires: Flowbite JS loaded via register_flowbite(panel). Submits two separate form values: {key}_date — the date portion (e.g. "2026-04-17") {key}_time — the time portion (e.g. "14:30") Field getters used: field.get_date_format() — e.g. "yyyy-mm-dd" field.get_time_format() — display hint label (e.g. "HH:mm") field.is_autohide() — bool field.has_buttons() — bool field.get_orientation() — "bottom" | "top" etc. field.get_min_date() — optional lower date bound field.get_max_date() — optional upper date bound field.get_min_time() — optional min time (e.g. "08:00") field.get_max_time() — optional max time (e.g. "20:00") #} {% set _key = field.get_key() %} {% set _date_val = '' %} {% set _time_val = '' %} {% if current is mapping %} {% set _date_val = current.get(_key ~ '_date', '') | string %} {% set _time_val = current.get(_key ~ '_time', '') | string %} {% elif current is not none and current != '' and current != 'None' %} {# Try to split a combined "YYYY-MM-DD HH:MM" string #} {% set _combined = current | string %} {% set _space = _combined.find(' ') %} {% if _space > -1 %} {% set _date_val = _combined[:_space] %} {% set _time_val = _combined[_space + 1:] %} {% else %} {% set _date_val = _combined %} {% endif %} {% endif %} {% if _date_val == 'None' %}{% set _date_val = '' %}{% endif %} {% if _time_val == 'None' %}{% set _time_val = '' %}{% endif %}
{# ── Date input ── #}
{# ── Time input ── #}
{% if has_error %}

{{ errors[_key] }}

{% elif field.get_help_text() %}

{{ field.get_help_text() }}

{% endif %}