o
    ËÉh£	  ã                   @   sT   d dl mZmZ d dlmZ ddlmZ G dd„ deƒZG dd„ deƒZd	d
„ Z	dS )é    )ÚBaseGenericSettingÚBaseSiteSetting)ÚSiteé   )Úregistryc                   @   s    e Zd ZdZdd„ Zdd„ ZdS )ÚSettingProxyzF
    Get a SettingModuleProxy for an app using proxy['app_label']
    c                 C   s
   || _ d S ©N©Úrequest_or_site)Úselfr
   © r   úk/var/www/html/ndineBlogger/venv/lib/python3.10/site-packages/wagtail/contrib/settings/context_processors.pyÚ__init__   s   
zSettingProxy.__init__c                 C   s   t | j|ƒ | |< }|S r   )ÚSettingModuleProxyr
   )r   Ú	app_labelÚvaluer   r   r   Ú__missing__   s   zSettingProxy.__missing__N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   r   r      s    r   c                       s@   e Zd ZdZdd„ Z‡ fdd„Zdd„ Zdd	„ Zd
d„ Z‡  Z	S )r   zB
    Get a specific setting instance using proxy['modelname']
    c                 C   s   || _ || _d S r   )r   r
   )r   r
   r   r   r   r   r      s   
zSettingModuleProxy.__init__c                    s   t ƒ  | ¡ ¡S )z"Get a setting instance for a model)ÚsuperÚ__getitem__Úlower)r   Ú
model_name©Ú	__class__r   r   r      s   zSettingModuleProxy.__getitem__c                 C   s   |   |¡ | |< }|S )z7Get and cache settings that have not been looked up yet)Úget_setting)r   r   r   r   r   r   r   "   s   zSettingModuleProxy.__missing__c                 C   s   d| j › dS )NzSettingModuleProxy(ú))r   )r   r   r   r   Ú__str__'   ó   zSettingModuleProxy.__str__c                 C   sŽ   t  | j|¡}|du rtd| j› d|› dƒ‚t|tƒr#|j| jdS t|tƒrC| jdur?t	| jt
ƒr9| | j¡S | | j¡S tdƒ‚tdƒ‚)z(
        Get a setting instance
        NzCould not find model matching `Ú.z`.r	   z~Site-specific settings cannot be identified because `request` is not available in the context and `use_default_site` is False.zTSetting models should inherit from either `BaseGenericSetting` or `BaseSiteSetting`.)r   Úget_by_natural_keyr   ÚRuntimeErrorÚ
issubclassr   Úloadr
   r   Ú
isinstancer   Úfor_siteÚfor_requestÚNotImplementedError)r   r   ÚModelr   r   r   r   *   s$   ÿ


ÿÿzSettingModuleProxy.get_setting)
r   r   r   r   r   r   r   r   r   Ú__classcell__r   r   r   r   r      s    r   c                 C   s   dt | diS )NÚsettingsr	   )r   )Úrequestr   r   r   r,   J   r    r,   N)
Úwagtail.contrib.settings.modelsr   r   Úwagtail.modelsr   r   Údictr   r   r,   r   r   r   r   Ú<module>   s    6