î
ªÍ X  ã               @   sl   d  d l  Z  d  d l m Z d  d l m Z d  d l m Z m Z d  d l m	 Z	 Gd d „  d e ƒ Z
 d S)é    N)Úsettings)ÚBaseStorage)ÚMessageDecoderÚMessageEncoder)Úsixc                   s^   e  Z d  Z d Z d Z ‡  f d d †  Z d d „  Z d d „  Z d	 d
 „  Z d d „  Z	 ‡  S)ÚSessionStoragezL
    Stores messages in the session (that is, django.contrib.sessions).
    Z	_messagesc                sT   t  | d ƒ s4 t d t j d  k r* d n d ƒ ‚ t t |  ƒ j | | | Ž d  S)NÚsessionz™The session-based temporary message storage requires session middleware to be installed, and come before the message middleware in the MIDDLEWARE%s list.Z_CLASSESÚ )ÚhasattrÚAssertionErrorr   Z
MIDDLEWAREÚsuperr   Ú__init__)ÚselfÚrequestÚargsÚkwargs)Ú	__class__© úU/home/ubuntu/projects/ifolica/build/django/django/contrib/messages/storage/session.pyr      s    zSessionStorage.__init__c             O   s%   |  j  |  j j j |  j ƒ ƒ d f S)z¹
        Retrieves a list of messages from the request's session.  This storage
        always stores everything it is given, so return True for the
        all_retrieved flag.
        T)Údeserialize_messagesr   r   ÚgetÚsession_key)r   r   r   r   r   r   Ú_get   s    zSessionStorage._getc             O   sB   | r% |  j  | ƒ |  j j |  j <n |  j j j |  j d ƒ g  S)zE
        Stores a list of messages to the request's session.
        N)Úserialize_messagesr   r   r   Úpop)r   ÚmessagesÚresponser   r   r   r   r   Ú_store    s    zSessionStorage._storec             C   s   t  d d ƒ } | j | ƒ S)NÚ
separatorsú,ú:)r   r    )r   Úencode)r   r   Úencoderr   r   r   r   *   s    z!SessionStorage.serialize_messagesc             C   s/   | r+ t  | t j ƒ r+ t j | d t ƒS| S)NÚcls)Ú
isinstancer   Ústring_typesÚjsonÚloadsr   )r   Údatar   r   r   r   .   s    z#SessionStorage.deserialize_messages)
Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   r   r   r   )r   r   r      s   
r   )r&   Zdjango.confr   Z$django.contrib.messages.storage.baser   Z&django.contrib.messages.storage.cookier   r   Zdjango.utilsr   r   r   r   r   r   Ú<module>   s
   