ó
ř˘TQc           @  sŔ   d  d l  m Z d  d l m Z d  d l m Z d  d l m Z d  d l m	 Z	 d  d l
 m Z d  d l m Z m Z d  d l m Z d  d	 l m Z d  d
 l m Z d e	 f d     YZ d S(   i˙˙˙˙(   t   unicode_literals(   t   http(   t   models(   t	   EasyModel(   t   DatabrowsePlugin(   t   render_to_response(   t   format_htmlt   format_html_join(   t   urlquote(   t   capfirst(   t
   force_textt   FieldChoicePluginc           B  sM   e  Z d d   Z d   Z d   Z d   Z d   Z d   Z d d  Z	 RS(   c         C  s   | |  _  d  S(   N(   t   field_filter(   t   selfR   (    (    sG   ../Django//lib/python/django/contrib/databrowse/plugins/fieldchoices.pyt   __init__   s    c      
   C  sŽ   |  j  rD t g  | j j D]$ } |  j  |  r | j | f ^ q  St g  | j j D]O } | j rT | j rT | j rT t | t	 j
 t	 j f  rT | j | f ^ qT  Sd S(   u˝   
        Helper function that returns a dictionary of all fields in the given
        model. If self.field_filter is set, it only includes the fields that
        match the filter.
        N(   R   t   dictt   _metat   fieldst   namet   relt   primary_keyt   uniquet
   isinstanceR   t	   AutoFieldt	   TextField(   R   t   modelt   f(    (    sG   ../Django//lib/python/django/contrib/databrowse/plugins/fieldchoices.pyt
   field_dict   s    	;c         C  sB   |  j  |  } | s d St d t d d d   | j   D   S(   Nu    u3   <p class="filter"><strong>View by:</strong> {0}</p>u   , u   <a href="fields/{0}/">{1}</a>c         s  s-   |  ]# } | j  t t | j   f Vq d  S(   N(   R   R
   R	   t   verbose_name(   t   .0R   (    (    sG   ../Django//lib/python/django/contrib/databrowse/plugins/fieldchoices.pys	   <genexpr>&   s    (   R   R   R   t   values(   R   t   requestR   t   siteR   (    (    sG   ../Django//lib/python/django/contrib/databrowse/plugins/fieldchoices.pyt   model_index_html    s    	c         C  s]   | j  |  j | j j  j   k rY d | j j   | | j  j t | j d d f g Sd  S(   Nu   %s%s/%s/%s/t   safeu    (   t   fieldR   R   R   t   urlR   R   t	   raw_value(   R   t   plugin_namet   easy_instance_field(    (    sG   ../Django//lib/python/django/contrib/databrowse/plugins/fieldchoices.pyt   urls(   s
    $c         C  sź   | j  | j |  _  |  _ |  j |  j   |  _ |  j sI t j d   n  | d  k rb |  j |  S| j d d  } | d |  j k rŠ |  j	 | |  j | d | d  St j d   d  S(   Nu"   The requested model has no fields.u   /i   i    u"   The requested page does not exist.(
   R   R    R   R   R   t   Http404t   Nonet   homepage_viewt   splitt
   field_view(   R   R   t   model_databrowseR$   t   url_bits(    (    sG   ../Django//lib/python/django/contrib/databrowse/plugins/fieldchoices.pyt
   model_view/   s    	"c         C  se   t  |  j |  j  } t |  j j    } | j d d    t d i |  j j d 6| d 6| d 6 S(   Nt   keyc         S  s   |  j  S(   N(   R   (   t   k(    (    sG   ../Django//lib/python/django/contrib/databrowse/plugins/fieldchoices.pyt   <lambda>C   s    u$   databrowse/fieldchoice_homepage.htmlu   root_urlu   modelu
   field_list(	   R   R    R   t   listR   R   t   sortR   t   root_url(   R   R   t
   easy_modelt
   field_list(    (    sG   ../Django//lib/python/django/contrib/databrowse/plugins/fieldchoices.pyR+   @   s    c         C  ső   t  |  j |  j  } | j | j  } | d  k	 r | j i | | j 6  } t d i |  j j d 6| d 6| d 6| d 6| d 6 Sg  |  j j	 j
   j | j  j | j  D] } | | j ^ q­ } t d i |  j j d 6| d 6| d 6| d 6 S(   Nu"   databrowse/fieldchoice_detail.htmlu   root_urlu   modelu   fieldu   valueu   object_listu    databrowse/fieldchoice_list.html(   R   R    R   R#   R   R*   t   objectsR   R6   t   _default_managert   distinctt   order_byR   (   R   R   R#   t   valueR7   t
   easy_fieldt   obj_listt   v(    (    sG   ../Django//lib/python/django/contrib/databrowse/plugins/fieldchoices.pyR-   F   s    6DN(
   t   __name__t
   __module__R*   R   R   R!   R(   R0   R+   R-   (    (    (    sG   ../Django//lib/python/django/contrib/databrowse/plugins/fieldchoices.pyR      s   					N(   t
   __future__R    t   djangoR   t	   django.dbR   t(   django.contrib.databrowse.datastructuresR   t   django.contrib.databrowse.sitesR   t   django.shortcutsR   t   django.utils.htmlR   R   t   django.utils.httpR   t   django.utils.textR	   t   django.utils.encodingR
   R   (    (    (    sG   ../Django//lib/python/django/contrib/databrowse/plugins/fieldchoices.pyt   <module>   s   