î
Þ^Q\¥  ã               @   sc   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 e ƒ Z	 d S)	zDView for a Select2 widget and QuerySetSequence-based business logic.é    )ÚBaseQuerySetSequenceView)ÚSelect2ViewMixin)Úcapfirst)Úsixc               @   s"   e  Z d  Z d Z d d „  Z d S)ÚSelect2QuerySetSequenceViewai  
    Combines support QuerySetSequence and Select2 in a single view.

    Example usage::

        url(
            '^your-generic-autocomplete/$',
            autocomplete.Select2QuerySetSequenceView.as_view(
                queryset=autocomplete.QuerySetSequence(
                    Group.objects.all(),
                    TestModel.objects.all(),
                )
            ),
            name='your-generic-autocomplete',
        )

    It is compatible with the :py:mod:`~dal_select2_queryset_sequence.widgets`
    and the fields of :py:mod:`dal_contenttypes`, suits generic relation
    autocompletes.
    c                se   i  } x? | d D]3 } | j  t | ƒ g  ƒ | t | ƒ j | ƒ q W‡  f d d †  | j ƒ  Dƒ S)zÁ
        Return a list of results usable by Select2.

        It will render as a list of one <optgroup> per different content type
        containing a list of one <option> per model.
        Zobject_listc                sS   g  |  ]I \ } } i d  d 6t  ˆ  j | ƒ ƒ d 6‡  f d d †  | Dƒ d 6‘ q S)NÚidÚtextc                s6   g  |  ], } i ˆ  j  | ƒ d  6t j | ƒ d 6‘ q S)r   r   )Zget_result_valuer   Z	text_type)Ú.0Úresult)Úself© úX/var/www/dbchiro/venv/lib/python3.4/site-packages/dal_select2_queryset_sequence/views.pyú
<listcomp>1   s   	zFSelect2QuerySetSequenceView.get_results.<locals>.<listcomp>.<listcomp>Úchildren)r   Zget_model_name)r	   ZmodelÚresults)r   r   r   r   .   s   	z;Select2QuerySetSequenceView.get_results.<locals>.<listcomp>)Ú
setdefaultÚtypeÚappendÚitems)r   ÚcontextÚgroupsr
   r   )r   r   Úget_results!   s    z'Select2QuerySetSequenceView.get_resultsN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   r      s   r   N)
r   Zdal_queryset_sequence.viewsr   Zdal_select2.viewsr   Zdjango.template.defaultfiltersr   Zdjango.utilsr   r   r   r   r   r   Ú<module>   s
   