Coverage for app/venv/lib/python3.14/site-packages/weblate/utils/state.py: 92%
22 statements
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-07 07:15 +0000
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-07 07:15 +0000
1# Copyright © Michal Čihař <michal@weblate.org>
2#
3# SPDX-License-Identifier: GPL-3.0-or-later
5from __future__ import annotations
7from typing import TYPE_CHECKING
9from django.db.models import IntegerChoices
10from django.utils.translation import pgettext_lazy
12if TYPE_CHECKING: 12 ↛ 13line 12 didn't jump to line 13 because the condition on line 12 was never true
13 from django_stubs_ext import StrOrPromise
16class StringState(IntegerChoices):
17 STATE_EMPTY = 0, pgettext_lazy("String state", "Empty")
18 STATE_FUZZY = 10, pgettext_lazy("String state", "Needs editing")
19 STATE_TRANSLATED = 20, pgettext_lazy("String state", "Translated")
20 STATE_APPROVED = 30, pgettext_lazy("String state", "Approved")
21 STATE_READONLY = 100, pgettext_lazy("String state", "Read-only")
24STATE_EMPTY = StringState.STATE_EMPTY
25STATE_FUZZY = StringState.STATE_FUZZY
26STATE_TRANSLATED = StringState.STATE_TRANSLATED
27STATE_APPROVED = StringState.STATE_APPROVED
28STATE_READONLY = StringState.STATE_READONLY
31STATE_NAMES = {
32 "empty": STATE_EMPTY,
33 "untranslated": STATE_EMPTY,
34 "needs-editing": STATE_FUZZY,
35 "fuzzy": STATE_FUZZY,
36 "translated": STATE_TRANSLATED,
37 "approved": STATE_APPROVED,
38 "readonly": STATE_READONLY,
39 "read-only": STATE_READONLY,
40}
43def get_state_label(
44 state: int, label: StrOrPromise, enable_review: bool
45) -> StrOrPromise:
46 if state == STATE_TRANSLATED and enable_review:
47 return pgettext_lazy("String state", "Waiting for review")
48 return label