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

1# Copyright © Michal Čihař <michal@weblate.org> 

2# 

3# SPDX-License-Identifier: GPL-3.0-or-later 

4 

5from __future__ import annotations 

6 

7from typing import TYPE_CHECKING 

8 

9from django.db.models import IntegerChoices 

10from django.utils.translation import pgettext_lazy 

11 

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 

14 

15 

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") 

22 

23 

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 

29 

30 

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} 

41 

42 

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