î
ªÍ XW  ã               @   s‚   d  Z  d d l m Z d d l m Z d d l m Z d d l m Z	 Gd d „  d e j
 ƒ Z e Gd d	 „  d	 e j ƒ ƒ Z d
 S)zn
This module allows importing AbstractBaseSession even
when django.contrib.sessions is not in INSTALLED_APPS.
é    )Úunicode_literals)Úmodels)Úpython_2_unicode_compatible)Úugettext_lazyc               @   s(   e  Z d  Z d d „  Z d d „  Z d S)ÚBaseSessionManagerc             C   s   |  j  j ƒ  } | ƒ  j | ƒ S)zY
        Return the given session dictionary serialized and encoded as a string.
        )ÚmodelÚget_session_store_classÚencode)ÚselfÚsession_dictÚsession_store_class© r   úR/home/ubuntu/projects/ifolica/build/django/django/contrib/sessions/base_session.pyr	      s    zBaseSessionManager.encodec             C   s?   |  j  | |  j | ƒ | ƒ } | r1 | j ƒ  n
 | j ƒ  | S)N)r   r	   ÚsaveÚdelete)r
   Úsession_keyr   Úexpire_dateÚsr   r   r   r      s
    
zBaseSessionManager.saveN)Ú__name__Ú
__module__Ú__qualname__r	   r   r   r   r   r   r      s   r   c               @   s§   e  Z d  Z e j e d ƒ d d d d ƒZ e j e d ƒ ƒ Z e j	 e d ƒ d d ƒZ
 e ƒ  Z Gd	 d
 „  d
 ƒ Z d d „  Z e d d „  ƒ Z d d „  Z d S)ÚAbstractBaseSessionzsession keyÚ
max_lengthé(   Zprimary_keyTzsession datazexpire dateZdb_indexc               @   s.   e  Z d  Z d Z e d ƒ Z e d ƒ Z d S)zAbstractBaseSession.MetaTÚsessionÚsessionsN)r   r   r   ZabstractÚ_Zverbose_nameZverbose_name_pluralr   r   r   r   ÚMeta%   s   r   c             C   s   |  j  S)N)r   )r
   r   r   r   Ú__str__*   s    zAbstractBaseSession.__str__c             C   s
   t  ‚ d  S)N)ÚNotImplementedError)Úclsr   r   r   r   -   s    z+AbstractBaseSession.get_session_store_classc             C   s   |  j  ƒ  } | ƒ  j |  j ƒ S)N)r   ÚdecodeÚsession_data)r
   r   r   r   r   Úget_decoded1   s    zAbstractBaseSession.get_decodedN)r   r   r   r   Z	CharFieldr   r   Z	TextFieldr"   ZDateTimeFieldr   r   Zobjectsr   r   Úclassmethodr   r#   r   r   r   r   r      s   !	r   N)Ú__doc__Ú
__future__r   Z	django.dbr   Zdjango.utils.encodingr   Zdjango.utils.translationr   r   ÚManagerr   ZModelr   r   r   r   r   Ú<module>   s   