Skip to content
Snippets Groups Projects
Verified Commit 5db83a71 authored by Nik | Klampfradler's avatar Nik | Klampfradler
Browse files

Move theme colours to dbsettings

parent ce4af0e0
No related branches found
No related tags found
1 merge request!63WIP: Resolve "Add django-dbsettings"
Pipeline #274 passed
......@@ -4,12 +4,26 @@ from django.contrib.auth import get_user_model
from django.db import models
from django.utils.translation import ugettext_lazy as _
import dbsettings
from image_cropping import ImageCropField, ImageRatioField
from phonenumber_field.modelfields import PhoneNumberField
from .mixins import ExtensibleModel, SchoolRelated
class ThemeSettings(dbsettings.Group):
colour_primary = dbsettings.StringValue(default='#007bff')
colour_secondary = dbsettings.StringValue(default='#6c757d')
colour_success = dbsettings.StringValue(default='#28a745')
colour_info = dbsettings.StringValue(default='#17a2b8')
colour_warning = dbsettings.StringValue(default='#ffc107')
colour_danger = dbsettings.StringValue(default='#dc3545')
colour_light = dbsettings.StringValue(default='#f8f9fa')
colour_dark = dbsettings.StringValue(default='#343a40')
theme_settings = ThemeSettings()
class School(models.Model):
"""A school that will have many other objects linked to it.
BiscuIT has multi-tenant support by linking all objects to a school,
......
......@@ -281,20 +281,12 @@ ANY_JS = {
SASS_PROCESSOR_AUTO_INCLUDE = False
SASS_PROCESSOR_CUSTOM_FUNCTIONS = {
'get-colour': 'biscuit.core.util.sass_helpers.get_colour',
'get-theme-setting': 'biscuit.core.util.sass_helpers.get_theme_setting',
}
SASS_PROCESSOR_INCLUDE_DIRS = [
_settings.get('bootstrap.sass_path', JS_ROOT+'/bootstrap/scss/')
]
COLOUR_PRIMARY = _settings.get('theme.colours.primary', '#007bff')
COLOUR_SECONDARY = _settings.get('theme.colours.secondary', '#6c757d')
COLOUR_SUCCESS = _settings.get('theme.colours.success', '#28a745')
COLOUR_INFO = _settings.get('theme.colours.info', '#17a2b8')
COLOUR_WARNING = _settings.get('theme.colours.warning', '#ffc107')
COLOUR_DANGER = _settings.get('theme.colours.danger', '#dc3545')
COLOUR_LIGHT = _settings.get('theme.colours.light', '#f8f9fa')
COLOUR_DARK = _settings.get('theme.colours.dark', '#343a40')
ADMINS = _settings.get('contact.admins', [])
SERVER_EMAIL = _settings.get('contact.from', 'root@localhost')
DEFAULT_FROM_EMAIL = _settings.get('contact.from', 'root@localhost')
......
$theme-colors: (
"primary": adjust-color(get-colour(get-setting(COLOUR_PRIMARY)), $alpha: 1),
"secondary": adjust-color(get-colour(get-setting(COLOUR_SECONDARY)), $alpha: 1),
"success": adjust-color(get-colour(get-setting(COLOUR_SUCCESS)), $alpha: 1),
"info": adjust-color(get-colour(get-setting(COLOUR_INFO)), $alpha: 1),
"warning": adjust-color(get-colour(get-setting(COLOUR_WARNING)), $alpha: 1),
"danger": adjust-color(get-colour(get-setting(COLOUR_DANGER)), $alpha: 1),
"light": adjust-color(get-colour(get-setting(COLOUR_LIGHT)), $alpha: 1),
"dark": adjust-color(get-colour(get-setting(COLOUR_DARK)), $alpha: 1),
"primary": adjust-color(get-colour(get-setting(colour_primary)), $alpha: 1),
"secondary": adjust-color(get-colour(get-setting(colour_secondary)), $alpha: 1),
"success": adjust-color(get-colour(get-setting(colour_success)), $alpha: 1),
"info": adjust-color(get-colour(get-setting(colour_info)), $alpha: 1),
"warning": adjust-color(get-colour(get-setting(colour_warning)), $alpha: 1),
"danger": adjust-color(get-colour(get-setting(colour_danger)), $alpha: 1),
"light": adjust-color(get-colour(get-setting(colour_light)), $alpha: 1),
"dark": adjust-color(get-colour(get-setting(colour_dark)), $alpha: 1),
);
@import "bootstrap";
from colour import web2hex
from sass import SassColor
from .models import theme_settings
def get_colour(html_colour: str) -> SassColor:
rgb = web2hex(html_colour, force_long=True)[1:]
r, g, b = int(rgb[0:2], 16), int(rgb[2:4], 16), int(rgb[4:6], 16)
return SassColor(r, g, b, 255)
def get_theme_setting(setting: str) -> str:
return getattr(theme_settings, setting, '')
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment