diff options
Diffstat (limited to 'core')
| -rw-r--r-- | core/config.py | 21 | ||||
| -rw-r--r-- | core/context.py | 4 | 
2 files changed, 21 insertions, 4 deletions
| diff --git a/core/config.py b/core/config.py index 0f09404..b9f6878 100644 --- a/core/config.py +++ b/core/config.py @@ -1,3 +1,20 @@ -class Config: +import pydantic -    pass + +class Config(pydantic.BaseModel): + +    # Basic configuration options +    site_name: str = "takahē" +    identity_max_age: int = 24 * 60 * 60 + +    # Cached ORM object storage +    __singleton__ = None + +    class Config: +        env_prefix = "takahe_" + +    @classmethod +    def load(cls) -> "Config": +        if cls.__singleton__ is None: +            cls.__singleton__ = cls() +        return cls.__singleton__ diff --git a/core/context.py b/core/context.py index 026ac11..17617b9 100644 --- a/core/context.py +++ b/core/context.py @@ -1,7 +1,7 @@ -from django.conf import settings +from core.config import Config  def config_context(request):      return { -        "config": {"site_name": settings.SITE_NAME}, +        "config": Config.load(),      } | 
