Commit 4f23a5ab authored by Michal Čihař's avatar Michal Čihař

Simplify fetching secondary translations

Signed-off-by: default avatarMichal Čihař <michal@cihar.com>
parent e693dc37
......@@ -38,9 +38,8 @@ from social.apps.django_app.default.models import UserSocialAuth
from weblate.lang.models import Language
from weblate.trans.models.project import Project
from weblate.trans.models.unit import Unit
from weblate.trans.models.changes import Change
from weblate.trans.util import get_site_url, get_distinct_translations
from weblate.trans.util import get_site_url
from weblate.accounts.avatar import get_user_display
import weblate
from weblate.appsettings import ANONYMOUS_USER_NAME, SITE_TITLE
......@@ -553,23 +552,6 @@ class Profile(models.Model):
'''
return self.user.first_name
def get_secondary_units(self, unit):
'''
Returns list of secondary units.
'''
secondary_langs = self.secondary_languages.exclude(
id=unit.translation.language.id
)
project = unit.translation.subproject.project
return get_distinct_translations(
Unit.objects.filter(
checksum=unit.checksum,
translated=True,
translation__subproject__project=project,
translation__language__in=secondary_langs,
)
)
@receiver(user_logged_in)
def set_lang(sender, **kwargs):
......
......@@ -33,7 +33,9 @@ from weblate.trans.models.changes import Change
from weblate.trans.search import update_index_unit, fulltext_search, more_like
from weblate.trans.filelock import FileLockException
from weblate.trans.util import is_plural, split_plural, join_plural
from weblate.trans.util import (
is_plural, split_plural, join_plural, get_distinct_translations
)
import weblate
FLAG_TEMPLATE = '<span title="%s" class="flag-icon ui-icon ui-icon-%s"></span>'
......@@ -1048,3 +1050,20 @@ class Unit(models.Model):
subproject=self.translation.subproject
)
return self._source_info
def get_secondary_units(self, user):
'''
Returns list of secondary units.
'''
secondary_langs = user.profile.secondary_languages.exclude(
id=self.translation.language.id
)
project = self.translation.subproject.project
return get_distinct_translations(
Unit.objects.filter(
checksum=self.checksum,
translated=True,
translation__subproject__project=project,
translation__language__in=secondary_langs,
)
)
......@@ -578,7 +578,7 @@ def translate(request, project, subproject, lang):
# Show secondary languages for logged in users
if request.user.is_authenticated():
secondary = request.user.profile.get_secondary_units(unit)
secondary = unit.get_secondary_units(request.user)
else:
secondary = None
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment