Customization of message-to-alert mapping
Opened this issue · 2 comments
In bootstrap4/templatetags/bootstrap4.py
, there's a function bootstrap_message_classes
which figures out what classes to assign to a Bootstrap Alert generated from a Django message. Right now, it makes the obvious mappings, except for two:
message_constants.DEBUG
is mapped toalert-warning
, and- messages without a proper level set get
alert-danger
.
Personally, I'd like DEBUG
mapped to alert-secondary
(gray background) and the default to be alert-primary
(darker blue background) because I don't want things that aren't warnings or errors to look like them. Others might want to use alert-light
or alert-dark
. But there's no obvious way to change this. Monkeypatching the function might not work because @register.filter
would still register the old one. Maybe I could alter MESSAGE_LEVEL_CLASSES
, but is that the right way?
I've gotten this to work in my settings.py
, but I have no idea how fragile it is:
from bootstrap4.templatetags import bootstrap4
from django.contrib.messages import constants
bootstrap4.MESSAGE_LEVEL_CLASSES[constants.DEBUG] = 'alert alert-secondary'
bootstrap4.MESSAGE_LEVEL_CLASSES[99] = 'alert alert-primary'
The 99
is the value I use to test the default case. Needless to say, this doesn't really change the default styling, and one would need to find all the messages that didn't use constants
and set values for them in the dict.
This really needs to be something we can set in settings.BOOTSTRAP4
.
Makes sense to be able to set this. I'll also check the django-bootstrap5 version of this issue and see what I can come up with.