Coverage for app/venv/lib/python3.14/site-packages/weblate/configuration/models.py: 95%

20 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 Any 

8 

9from django.db import models 

10 

11 

12class SettingQuerySet(models.QuerySet): 

13 def get_settings_dict(self, category: int) -> dict[str, Any]: 

14 return dict(self.filter(category=category).values_list("name", "value")) 

15 

16 

17class SettingCategory(models.IntegerChoices): 

18 UI = 1, "User Interface" 

19 MT = 2, "Machine Translation" 

20 

21 

22class Setting(models.Model): 

23 category = models.IntegerField(choices=SettingCategory) 

24 name = models.CharField(max_length=100) 

25 value = models.JSONField() 

26 

27 objects = SettingQuerySet.as_manager() 

28 

29 class Meta: 

30 unique_together = [ # noqa: RUF012 

31 ("category", "name"), 

32 ] 

33 verbose_name = "Setting" 

34 verbose_name_plural = "Settings" 

35 

36 def __str__(self) -> str: 

37 return f"{self.get_category_display()}:{self.name}:{self.value}"