U
    {®Þ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   ús/var/www/dating/data/www/fatepal.com/env/lib/python3.8/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__'   s    zSettingModuleProxy.__str__c                 C   s’   t  | j|¡}|dkr.td| j› d|› dƒ‚t|tƒrF|j| jdS t|tƒr†| jdk	r~t	| jt
ƒrr| | j¡S | | j¡S tdƒ‚tdƒ‚dS )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   Zget_by_natural_keyr   ÚRuntimeErrorÚ
issubclassr   Úloadr
   r   Ú
isinstancer   Zfor_siteZfor_requestÚNotImplementedError)r   r   Z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   s    r'   N)
Zwagtail.contrib.settings.modelsr   r   Zwagtail.modelsr   r   Údictr   r   r'   r   r   r   r   Ú<module>   s
   6