33
from plainbox.i18n import gettext as _
34
33
from plainbox.i18n import gettext_noop as N_
35
34
from plainbox.impl.symbol import SymbolDef
35
from plainbox.impl.unit import concrete_validators
36
36
from plainbox.impl.unit.unit_with_id import UnitWithId
37
from plainbox.impl.unit.validators import CorrectFieldValueValidator
38
from plainbox.impl.unit.validators import PresentFieldValidator
39
from plainbox.impl.unit.validators import TemplateVariantFieldValidator
40
from plainbox.impl.unit.validators import TranslatableFieldValidator
41
from plainbox.impl.validation import Problem
42
from plainbox.impl.validation import Severity
44
38
__all__ = ['CategoryUnit']
109
103
field_validators = {
111
TranslatableFieldValidator,
112
TemplateVariantFieldValidator,
113
PresentFieldValidator,
114
# We want the name to be a single line
115
CorrectFieldValueValidator(
116
lambda name: name.count("\n") == 0,
117
Problem.wrong, Severity.warning,
118
message=_("please use only one line"),
119
onlyif=lambda unit: unit.name is not None),
120
# We want the name to be relatively short
121
CorrectFieldValueValidator(
122
lambda name: len(name) <= 80,
123
Problem.wrong, Severity.warning,
124
message=_("please stay under 80 characters"),
125
onlyif=lambda unit: unit.name is not None),
105
concrete_validators.translatable,
106
concrete_validators.templateVariant,
107
concrete_validators.present,
108
concrete_validators.oneLine,
109
concrete_validators.shortValue,