{# Optional Libraries with CDN Fallback ===================================== Include these blocks in pages that need Chart.js or Flatpickr. Usage in a page template: {% extends "admin/base.html" %} {# For Flatpickr CSS (in head) #} {% block flatpickr_css %} {% include 'shared/includes/optional-libs.html' with context %} {{ flatpickr_css_loader() }} {% endblock %} {# For Chart.js #} {% block chartjs_script %} {% include 'shared/includes/optional-libs.html' with context %} {{ chartjs_loader() }} {% endblock %} {# For Flatpickr JS #} {% block flatpickr_script %} {% include 'shared/includes/optional-libs.html' with context %} {{ flatpickr_loader() }} {% endblock %} #} {# Chart.js Loader with CDN Fallback ================================= Loads Chart.js from CDN, falls back to local copy if CDN fails. #} {% macro chartjs_loader() %} {% endmacro %} {# Flatpickr CSS Loader with CDN Fallback ====================================== Loads Flatpickr CSS from CDN, falls back to local copy if CDN fails. #} {% macro flatpickr_css_loader() %} {% endmacro %} {# Flatpickr JS Loader with CDN Fallback ===================================== Loads Flatpickr JS from CDN, falls back to local copy if CDN fails. #} {% macro flatpickr_loader() %} {% endmacro %} {# Combined Loaders ================ Convenience macros to load multiple libraries at once. #} {# Load Chart.js + Flatpickr together #} {% macro all_optional_libs_css() %} {{ flatpickr_css_loader() }} {% endmacro %} {% macro all_optional_libs_js() %} {{ chartjs_loader() }} {{ flatpickr_loader() }} {% endmacro %}