| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 | 
							- from django.contrib.admin import RelatedFieldListFilter
 
- from django.utils.encoding import smart_text
 
- from django.utils.html import format_html
 
- from django.core.urlresolvers import reverse
 
- try:
 
-     from django.contrib.admin.utils import get_model_from_relation
 
- except ImportError: # Django 1.6
 
-     from django.contrib.admin.util import get_model_from_relation
 
- try:
 
-     from django.forms.utils import flatatt
 
- except ImportError: # Django 1.6
 
-     from django.forms.util import flatatt
 
- class RelatedFieldAjaxListFilter(RelatedFieldListFilter):
 
-     template = 'jet/related_field_ajax_list_filter.html'
 
-     ajax_attrs = None
 
-     def has_output(self):
 
-         return True
 
-     def field_choices(self, field, request, model_admin):
 
-         model = field.remote_field.model if hasattr(field, 'remote_field') else field.related_field.model
 
-         app_label = model._meta.app_label
 
-         model_name = model._meta.object_name
 
-         self.ajax_attrs = format_html('{0}', flatatt({
 
-             'data-app-label': app_label,
 
-             'data-model': model_name,
 
-             'data-ajax--url': reverse('jet:model_lookup'),
 
-             'data-queryset--lookup': self.lookup_kwarg
 
-         }))
 
-         if self.lookup_val is None:
 
-             return []
 
-         other_model = get_model_from_relation(field)
 
-         if hasattr(field, 'rel'):
 
-             rel_name = field.rel.get_related_field().name
 
-         else:
 
-             rel_name = other_model._meta.pk.name
 
-         queryset = model._default_manager.filter(**{rel_name: self.lookup_val}).all()
 
-         return [(x._get_pk_val(), smart_text(x)) for x in queryset]
 
- try:
 
-     from collections import OrderedDict
 
-     from django import forms
 
-     from django.contrib.admin.widgets import AdminDateWidget
 
-     from rangefilter.filter import DateRangeFilter as OriginalDateRangeFilter
 
-     from django.utils.translation import ugettext as _
 
-     class DateRangeFilter(OriginalDateRangeFilter):
 
-         def get_template(self):
 
-             return 'rangefilter/date_filter.html'
 
-         def _get_form_fields(self):
 
-             # this is here, because in parent DateRangeFilter AdminDateWidget
 
-             # could be imported from django-suit
 
-             return OrderedDict((
 
-                 (self.lookup_kwarg_gte, forms.DateField(
 
-                     label='',
 
-                     widget=AdminDateWidget(attrs={'placeholder': _('From date')}),
 
-                     localize=True,
 
-                     required=False
 
-                 )),
 
-                 (self.lookup_kwarg_lte, forms.DateField(
 
-                     label='',
 
-                     widget=AdminDateWidget(attrs={'placeholder': _('To date')}),
 
-                     localize=True,
 
-                     required=False
 
-                 )),
 
-             ))
 
-         @staticmethod
 
-         def _get_media():
 
-             css = [
 
-                 'style.css',
 
-             ]
 
-             return forms.Media(
 
-                 css={'all': ['range_filter/css/%s' % path for path in css]}
 
-             )
 
- except ImportError:
 
-     pass
 
 
  |