- Apply Black formatting to all Python files in core and stiftung modules - Fix import statement ordering with isort - Ensure all code meets automated quality standards - Resolve CI/CD pipeline formatting failures - Maintain consistent code style across the entire codebase
78 lines
2.3 KiB
Python
78 lines
2.3 KiB
Python
"""
|
|
Configuration utilities for the Stiftung application
|
|
"""
|
|
|
|
from django.conf import settings
|
|
|
|
from stiftung.models import AppConfiguration
|
|
|
|
|
|
def get_config(key, default=None, fallback_to_settings=True):
|
|
"""
|
|
Get a configuration value from the database or fall back to Django settings
|
|
|
|
Args:
|
|
key: The configuration key
|
|
default: Default value if not found
|
|
fallback_to_settings: If True, try to get from Django settings using the key in uppercase
|
|
|
|
Returns:
|
|
The configuration value
|
|
"""
|
|
# Try to get from AppConfiguration first
|
|
value = AppConfiguration.get_setting(key, None)
|
|
|
|
# Fall back to Django settings if value is None or empty string
|
|
if not value and fallback_to_settings:
|
|
settings_key = key.upper()
|
|
return getattr(settings, settings_key, default)
|
|
|
|
return value if value is not None else default
|
|
|
|
|
|
def get_paperless_config():
|
|
"""
|
|
Get all Paperless-related configuration values
|
|
|
|
Returns:
|
|
dict: Dictionary containing all Paperless configuration
|
|
"""
|
|
return {
|
|
"api_url": get_config("paperless_api_url", "http://192.168.178.167:30070"),
|
|
"api_token": get_config("paperless_api_token", ""),
|
|
"destinataere_tag": get_config(
|
|
"paperless_destinataere_tag", "Stiftung_Destinatäre"
|
|
),
|
|
"destinataere_tag_id": get_config("paperless_destinataere_tag_id", "210"),
|
|
"land_tag": get_config("paperless_land_tag", "Stiftung_Land_und_Pächter"),
|
|
"land_tag_id": get_config("paperless_land_tag_id", "204"),
|
|
"admin_tag": get_config("paperless_admin_tag", "Stiftung_Administration"),
|
|
"admin_tag_id": get_config("paperless_admin_tag_id", "216"),
|
|
}
|
|
|
|
|
|
def set_config(key, value, **kwargs):
|
|
"""
|
|
Set a configuration value
|
|
|
|
Args:
|
|
key: The configuration key
|
|
value: The value to set
|
|
**kwargs: Additional parameters for AppConfiguration.set_setting
|
|
|
|
Returns:
|
|
AppConfiguration: The configuration object
|
|
"""
|
|
return AppConfiguration.set_setting(key, value, **kwargs)
|
|
|
|
|
|
def is_paperless_configured():
|
|
"""
|
|
Check if Paperless is properly configured
|
|
|
|
Returns:
|
|
bool: True if API URL and token are configured
|
|
"""
|
|
config = get_paperless_config()
|
|
return bool(config["api_url"] and config["api_token"])
|