Files
Django_kube/venv/lib/python3.11/site-packages/bootstrap5/bootstrap.py
T
Pierre Geeraert bccd344aa7
Gitea Actions Demo / Explore-Gitea-Actions (push) Has been cancelled
adding new form
2025-07-29 09:39:41 +01:00

89 lines
2.7 KiB
Python

from importlib import import_module
from django.conf import settings
BOOTSTRAP5_DEFAULTS = {
"css_url": {
"href": "https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css",
"integrity": "sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3",
"crossorigin": "anonymous",
},
"javascript_url": {
"url": "https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js",
"integrity": "sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p",
"crossorigin": "anonymous",
},
"theme_url": None,
"javascript_in_head": False,
"use_i18n": False,
"horizontal_label_class": "col-md-3",
"horizontal_field_class": "col-md-9",
"set_placeholder": True,
"required_css_class": "",
"error_css_class": "is-invalid",
"success_css_class": "is-valid",
"formset_renderers": {"default": "bootstrap5.renderers.FormsetRenderer"},
"form_renderers": {"default": "bootstrap5.renderers.FormRenderer"},
"field_renderers": {
"default": "bootstrap5.renderers.FieldRenderer",
"inline": "bootstrap5.renderers.InlineFieldRenderer",
"horizontal": "bootstrap5.renderers.HorizontalFieldRenderer",
},
}
def get_bootstrap_setting(name, default=None):
"""Read a setting."""
# Start with a copy of default settings
BOOTSTRAP5 = BOOTSTRAP5_DEFAULTS.copy()
# Override with user settings from settings.py
BOOTSTRAP5.update(getattr(settings, "BOOTSTRAP5", {}))
# Update use_i18n
BOOTSTRAP5["use_i18n"] = i18n_enabled()
return BOOTSTRAP5.get(name, default)
def javascript_url():
"""Return the full url to the Bootstrap JavaScript file."""
return get_bootstrap_setting("javascript_url")
def css_url():
"""Return the full url to the Bootstrap CSS file."""
return get_bootstrap_setting("css_url")
def theme_url():
"""Return the full url to the theme CSS file."""
return get_bootstrap_setting("theme_url")
def i18n_enabled():
"""Return the projects i18n setting."""
return getattr(settings, "USE_I18N", False)
def get_renderer(renderers, **kwargs):
layout = kwargs.get("layout", "")
path = renderers.get(layout, renderers["default"])
mod, cls = path.rsplit(".", 1)
return getattr(import_module(mod), cls)
def get_formset_renderer(**kwargs):
renderers = get_bootstrap_setting("formset_renderers")
return get_renderer(renderers, **kwargs)
def get_form_renderer(**kwargs):
renderers = get_bootstrap_setting("form_renderers")
return get_renderer(renderers, **kwargs)
def get_field_renderer(**kwargs):
renderers = get_bootstrap_setting("field_renderers")
return get_renderer(renderers, **kwargs)