Coverage for app/venv/lib/python3.14/site-packages/weblate/lang/forms.py: 69%

29 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 crispy_forms.helper import FormHelper 

6from crispy_forms.layout import Field, Layout 

7from django import forms 

8from django.conf import settings 

9 

10from weblate.lang.models import Language, Plural 

11from weblate.utils.forms import ContextDiv 

12 

13 

14class LanguageForm(forms.ModelForm): 

15 class Meta: 

16 model = Language 

17 fields = [ # noqa: RUF012 

18 "code", 

19 "name", 

20 "direction", 

21 "population", 

22 ] 

23 

24 def __init__(self, *args, **kwargs) -> None: 

25 super().__init__(*args, **kwargs) 

26 self.helper = FormHelper() 

27 self.helper.form_tag = False 

28 self.helper.layout = Layout( 

29 ContextDiv( 

30 template="lang/language_edit_warning.html", 

31 context={"update_languages": settings.UPDATE_LANGUAGES}, 

32 ), 

33 Field("code"), 

34 Field("name"), 

35 Field("direction"), 

36 Field("population"), 

37 ) 

38 

39 @staticmethod 

40 def get_field_doc(field): 

41 return ("admin/languages", f"language-{field.name}") 

42 

43 

44class PluralForm(forms.ModelForm): 

45 class Meta: 

46 model = Plural 

47 fields = [ # noqa: RUF012 

48 "number", 

49 "formula", 

50 ] 

51 

52 def __init__(self, *args, **kwargs) -> None: 

53 super().__init__(*args, **kwargs) 

54 self.helper = FormHelper() 

55 self.helper.form_tag = False 

56 

57 @staticmethod 

58 def get_field_doc(field): 

59 return ("admin/languages", f"plural-{field.name}")