Advertisement
Guest User

Untitled

a guest
Mar 29th, 2017
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.51 KB | None | 0 0
  1. """
  2. list_filter = (('article__product', SearchableFilter),
  3. ('article', SearchableFilter))
  4.  
  5. def lookup_allowed(self, lookup, value):
  6. return lookup in [
  7. 'article__id__exact',
  8. 'article__product__id__exact',
  9. ] or super(LicenseAdmin, self).lookup_allowed(lookup, value)
  10. """
  11.  
  12. from django.contrib.admin import RelatedFieldListFilter
  13. from django.core.urlresolvers import reverse
  14.  
  15.  
  16. class SearchableFilter(RelatedFieldListFilter):
  17. template = 'admin/searchable_filter.html'
  18.  
  19. def choices(self, cl):
  20. ch = list(super(SearchableFilter, self).choices(cl))
  21. return ch[:1] + list(sorted(ch[1:], key=lambda x: x['display'].strip()))
  22.  
  23.  
  24. def admin_link(obj, name=None):
  25. if isinstance(obj, str):
  26. def _admin_link(instance):
  27. from django.db.models import Manager
  28. instance = getattr(instance, obj)
  29. if isinstance(instance, Manager):
  30. instance = instance.all()
  31. return admin_link(instance)
  32. _admin_link.allow_tags = True
  33. _admin_link.short_description = str(obj).replace('_', ' ').capitalize()
  34. return _admin_link
  35. if hasattr(obj, '__iter__'):
  36. return '<br>'.join(map(admin_link, obj))
  37. if obj:
  38. return '<a class="changelink" style="color: #334" href="%s">%s</a>' % (
  39. reverse('admin:%s_%s_change' % (
  40. obj._meta.app_label,
  41. obj._meta.module_name,
  42. ), args=(
  43. obj.pk,
  44. )),
  45. name or obj)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement