# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.conf import settings
from django.core.urlresolvers import reverse
from cms.utils.i18n import get_current_language
class AllTranslationsAdminMixin(object):
"""To use this, apply this mixin to your Admin class, then add
'all_translations' to your list_display list."""
def all_translations(self, obj):
"""This is an adapter for the functionality that was in HVAD but not
in Parler.
"""
available = list(obj.get_available_languages())
langs = []
for lang, _ in settings.LANGUAGES:
if lang in available:
langs.append(lang)
available.remove(lang)
langs += available
for idx, lang in enumerate(langs):
change_form_url = reverse(
'admin:{app_label}_{model_name}_change'.format(
app_label=obj._meta.app_label.lower(),
model_name=obj.__class__.__name__.lower(),
), args=(obj.id, )
)
link = '{lang}'.format(
url=change_form_url,
lang=lang,
)
if lang == get_current_language():
link = "{0}".format(link)
langs[idx] = link
return ', '.join(langs)
all_translations.short_description = 'available translations'
all_translations.allow_tags = True