- Allowed_languages and default_language now part of Tenant Make iso Tenant - Introduction of Translation into Traicie Selection Specialist
60 lines
2.0 KiB
Python
60 lines
2.0 KiB
Python
import json
|
|
|
|
"""
|
|
Utility functions for chat customization.
|
|
"""
|
|
from flask import current_app
|
|
|
|
|
|
def get_default_chat_customisation(tenant_customisation=None):
|
|
"""
|
|
Get chat customization options with default values for missing options.
|
|
|
|
Args:
|
|
tenant_customisation (dict or str, optional): The tenant's customization options.
|
|
Defaults to None. Can be a dict or a JSON string.
|
|
|
|
Returns:
|
|
dict: A dictionary containing all customization options with default values
|
|
for any missing options.
|
|
"""
|
|
# Default customization options
|
|
default_customisation = {
|
|
'primary_color': '#007bff',
|
|
'secondary_color': '#6c757d',
|
|
'background_color': '#ffffff',
|
|
'text_color': '#212529',
|
|
'sidebar_color': '#f8f9fa',
|
|
'sidebar_background': '#2c3e50',
|
|
'gradient_start_color': '#f5f7fa',
|
|
'gradient_end_color': '#c3cfe2',
|
|
'markdown_background_color': 'transparent',
|
|
'markdown_text_color': '#ffffff',
|
|
'sidebar_markdown': '',
|
|
}
|
|
|
|
# If no tenant customization is provided, return the defaults
|
|
if tenant_customisation is None:
|
|
return default_customisation
|
|
|
|
# Start with the default customization
|
|
customisation = default_customisation.copy()
|
|
|
|
# Convert JSON string to dict if needed
|
|
if isinstance(tenant_customisation, str):
|
|
try:
|
|
tenant_customisation = json.loads(tenant_customisation)
|
|
current_app.logger.debug(f"Converted JSON string to dict: {tenant_customisation}")
|
|
except json.JSONDecodeError as e:
|
|
current_app.logger.error(f"Error parsing JSON customisation: {e}")
|
|
return default_customisation
|
|
|
|
# Update with tenant customization
|
|
current_app.logger.debug(f"Tenant customisation - in default creation: {tenant_customisation}")
|
|
if tenant_customisation:
|
|
for key, value in tenant_customisation.items():
|
|
if key in customisation:
|
|
customisation[key] = value
|
|
|
|
return customisation
|