in pontoon/base/models/entity.py [0:0]
def get_stats(self, locale) -> dict[str, int]:
"""
Get stats for a single (entity, locale) pair.
:arg Locale locale: filter translations for this locale.
:return: a dictionary with stats for the Entity+Locale
"""
approved = 0
pretranslated = 0
errors = 0
warnings = 0
unreviewed = 0
for t in self.translation_set.filter(locale=locale).prefetch_related(
"errors", "warnings"
):
if t.errors.exists():
if t.approved or t.pretranslated or t.fuzzy:
errors += 1
elif t.warnings.exists():
if t.approved or t.pretranslated or t.fuzzy:
warnings += 1
elif t.approved:
approved += 1
elif t.pretranslated:
pretranslated += 1
if not (t.approved or t.pretranslated or t.fuzzy or t.rejected):
unreviewed += 1
return {
"approved": approved,
"pretranslated": pretranslated,
"errors": errors,
"warnings": warnings,
"unreviewed": unreviewed,
}