Source code for shopyoapi.enhance
import json
import os
from flask import current_app
from flask import url_for
from modules.box__default.settings.models import Settings
from modules.box__default.settings.helpers import get_setting
[docs]def get_active_theme_dir():
active_theme_dir = os.path.join(
current_app.config["BASE_DIR"],
"themes",
get_setting("ACTIVE_FRONT_THEME"),
)
return active_theme_dir
[docs]def set_setting(key, value):
setting = Settings.query.filter(Settings.setting == key).first()
if setting:
setting.value = value
setting.update()
[docs]def base_context():
"""
Used to define global template values
Returns
-------
dict
copy of dictionary
"""
theme_dir = os.path.join(
current_app.config["BASE_DIR"],
"themes",
get_setting("ACTIVE_FRONT_THEME"),
)
info_path = os.path.join(theme_dir, "info.json")
with open(info_path) as f:
info_data = json.load(f)
APP_NAME = get_setting("APP_NAME")
SECTION_NAME = get_setting("SECTION_NAME")
SECTION_ITEMS = get_setting("SECTION_ITEMS")
ACTIVE_FRONT_THEME = get_setting("ACTIVE_FRONT_THEME")
ACTIVE_FRONT_THEME_VERSION = info_data["version"]
ACTIVE_FRONT_THEME_STYLES_URL = url_for(
"resource.active_theme_css",
active_theme=ACTIVE_FRONT_THEME,
v=ACTIVE_FRONT_THEME_VERSION,
)
base_context = {
"APP_NAME": APP_NAME,
"SECTION_NAME": SECTION_NAME,
"SECTION_ITEMS": SECTION_ITEMS,
"ACTIVE_FRONT_THEME": ACTIVE_FRONT_THEME,
"ACTIVE_FRONT_THEME_VERSION": ACTIVE_FRONT_THEME_VERSION,
"ACTIVE_FRONT_THEME_STYLES_URL": ACTIVE_FRONT_THEME_STYLES_URL,
}
return base_context.copy()