def get_stats()

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,
        }