Coverage for app/venv/lib/python3.14/site-packages/weblate/trans/models/variant.py: 93%
14 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 django.db import models
7from weblate.trans.defines import VARIANT_KEY_LENGTH, VARIANT_REGEX_LENGTH
8from weblate.trans.fields import RegexField
11class Variant(models.Model):
12 component = models.ForeignKey(
13 "trans.Component", on_delete=models.deletion.CASCADE, db_index=False
14 )
15 variant_regex = RegexField(max_length=VARIANT_REGEX_LENGTH, blank=True)
16 # This really should be a TextField, but it does not work with unique
17 # index and MySQL
18 key = models.CharField(max_length=VARIANT_KEY_LENGTH)
19 defining_units = models.ManyToManyField(
20 "trans.Unit", related_name="defined_variants"
21 )
23 class Meta:
24 unique_together = (("component", "key", "variant_regex"),)
25 verbose_name = "variant definition"
26 verbose_name_plural = "variant definitions"
28 def __str__(self) -> str:
29 return f"{self.component}: {self.key}"