ó
TR¹Nc           @   s|   d  Z  d d l m Z d d l m Z m Z d d l m Z d d l m	 Z	 d e f d „  ƒ  YZ
 d e	 f d	 „  ƒ  YZ d
 S(   sL   
Storages used to assist in the deprecation of contrib.auth User messages.

iÿÿÿÿ(   t	   constants(   t   BaseStoraget   Message(   t   User(   t   FallbackStoraget   UserMessagesStoragec           B   s8   e  Z d  Z d Z d „  Z d „  Z d „  Z d „  Z RS(   s¼   
    Retrieves messages from the User, using the legacy user.message_set API.

    This storage is "read-only" insofar as it can only retrieve and delete
    messages, not store them.
    t	   _messagesc         C   s5   t  |  j d d ƒ } t | t ƒ r1 | j j ƒ  Sd S(   s…   
        Returns the QuerySet containing all user messages (or ``None`` if
        request.user is not a contrib.auth User).
        t   userN(   t   getattrt   requestt   Nonet
   isinstanceR   t   _message_sett   all(   t   selfR   (    (    sZ   /home/panlixing/Python_Projects/gaeseries/django/contrib/messages/storage/user_messages.pyt   _get_messages_queryset   s    c         O   s   t  d ƒ ‚ d  S(   Ns"   This message storage is read-only.(   t   NotImplementedError(   R   t   argst   kwargs(    (    sZ   /home/panlixing/Python_Projects/gaeseries/django/contrib/messages/storage/user_messages.pyt   add   s    c         O   s_   |  j  ƒ  } | d k r" g  t f Sg  } x* | D]" } | j t t j | j ƒ ƒ q/ W| t f S(   sš   
        Retrieves a list of messages assigned to the User.  This backend never
        stores anything, so all_retrieved is assumed to be False.
        N(   R   R
   t   Falset   appendR   R    t   INFOt   message(   R   R   R   t   querysett   messagest   user_message(    (    sZ   /home/panlixing/Python_Projects/gaeseries/django/contrib/messages/storage/user_messages.pyt   _get    s    
 c         O   s)   |  j  ƒ  } | d k	 r% | j ƒ  n  | S(   sž   
        Removes any messages assigned to the User and returns the list of
        messages (since no messages are stored in this read-only storage).
        N(   R   R
   t   delete(   R   R   R   R   R   (    (    sZ   /home/panlixing/Python_Projects/gaeseries/django/contrib/messages/storage/user_messages.pyt   _store0   s    (   t   __name__t
   __module__t   __doc__t   session_keyR   R   R   R   (    (    (    sZ   /home/panlixing/Python_Projects/gaeseries/django/contrib/messages/storage/user_messages.pyR      s   				t   LegacyFallbackStoragec           B   s   e  Z d  Z e f e j Z RS(   ss   
    Works like ``FallbackStorage`` but also handles retrieving (and clearing)
    contrib.auth User messages.
    (   R   R   R    R   R   t   storage_classes(    (    (    sZ   /home/panlixing/Python_Projects/gaeseries/django/contrib/messages/storage/user_messages.pyR"   ;   s   N(   R    t   django.contrib.messagesR    t$   django.contrib.messages.storage.baseR   R   t   django.contrib.auth.modelsR   t(   django.contrib.messages.storage.fallbackR   R   R"   (    (    (    sZ   /home/panlixing/Python_Projects/gaeseries/django/contrib/messages/storage/user_messages.pyt   <module>   s   0