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
« 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 Any
9from django.db import models
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"))
17class SettingCategory(models.IntegerChoices):
18 UI = 1, "User Interface"
19 MT = 2, "Machine Translation"
22class Setting(models.Model):
23 category = models.IntegerField(choices=SettingCategory)
24 name = models.CharField(max_length=100)
25 value = models.JSONField()
27 objects = SettingQuerySet.as_manager()
29 class Meta:
30 unique_together = [ # noqa: RUF012
31 ("category", "name"),
32 ]
33 verbose_name = "Setting"
34 verbose_name_plural = "Settings"
36 def __str__(self) -> str:
37 return f"{self.get_category_display()}:{self.name}:{self.value}"